Очень хочу поделиться простым способом редактирования dbf файлов.
Во первых не нужно устанавливать сторонние программы непонятных авторов. Заморачиваться с программированием, когда нужно добавить в таблицу информацию, скажем из exсel.
Берём хорошо знакомый и бесплатный OpenOffice. Открываем, требующий добавления информации или просто редактирования, файл dbf. Выбирая кодировку, скажем кирилица. Редактируем и сохраняем в формате dbf или excel,очень просто и не требует знаний программирования.
Теперь несколько полезных функций для excel, которые упрощают работу с анализом информации и также позволяют избежать написания программ.
=ИНДЕКС(Лист2!$C$1:Лист2!$C$8728;ПОИСКПОЗ(B1;Лист2!$A$1:Лист2!$A$8728;0);1)
аналог в OpenOffice
=INDEX(Лист2.$С$1:$С$8728;MATCH(B1;Лист2.$A$1:$A$8728;0);1)
Также все аналоги функций можно посмотреть на Wiki
Соответствие команд Excel и OOo Calc
Пример. Выбираем Телефоны в первую таблицу из второй при совпадении ФИО:
С ячейкой b1 на текущем листе сравнивается диапазон ячеек листа2 по столбцу А с 1 по 8728 ячейку. Далее, при нахождении, устанавливается значение из столбца C листа2 с тем же номером. Данным поиском можно сравнить например две таблицы.
Ещё одна очень полезная функция:
ЕСЛИ(C1=0;A1;СЦЕПИТЬ(A1;B1))
Тут проверяется,если значение в ячейке c1=0, то записываемых в результат значение из А1, иначе используем другой результат. В данном примере это соединение данных двух ячеек А1 и В1 с помощью функции "Сцепить".
Чтобы избежать ошибок, вызванных наличием двух пробелов между элементами строки, можно сперва удалить лишние пробелы функцией СЖПРОБЕЛЫ.
Например: СЖПРОБЕЛЫ ($B$2)
Есть таблица в excel, где Фамилия Имя Отчество человека находятся в одной ячейке через пробел. Как разделить эти данные на три ячейки (столбца)
Выделить ячейку или диапазон ячеек с ФИО.
Данные -> Текст по столбцам. С разделителями -> Разделитель пробел -> Готово
Можно разделить используя функции ПОИСК, ПСТР.
Чтобы избежать ошибок, вызванных наличием двух пробелов между элементами строки, можно сперва удалить лишние пробелы функцией СЖПРОБЕЛЫ.
Если принять, что исходные данные записаны в A1, то функция получения Ф может выглядеть вот так:
=ПСТР (СЖПРОБЕЛЫ ($A$1); 1; ПОИСК (" "; СЖПРОБЕЛЫ ($A$1); 1))
Чтобы получить И, придется использовать нечто подобное:
=ПСТР (СЖПРОБЕЛЫ ($A$1); ПОИСК (" "; СЖПРОБЕЛЫ ($A$1); 1) + 1; ПОИСК (" "; СЖПРОБЕЛЫ ($A$1); ПОИСК (" "; СЖПРОБЕЛЫ ($A$1); ПОИСК (" "; СЖПРОБЕЛЫ ($A$1); 1)+1)) - ПОИСК (" "; СЖПРОБЕЛЫ ($A$1); 1))
Функция ЛЕВСИМВ(A2;15) возвращает указанное число знаков с начала текстовой строки. В нашем случае это 15 первых символов ячейки А2.
Буду очень рад, если кому-то поможет данная статья.