Страницы: 1
RSS
Копирование данных из одного файла в другой
 
Здравствуйте! Нужно дополнить файл 2 по данным файла 1. Если человек из файла 2 есть в файле 1 (проверку можно сделать по колонке PKU, у всех людей ПКУ уникально), то нужно скопировать из файла 1 данные из колонок SEM и ZAR в соответствующие колонки в файл 2. Если человека из файла 2 нет в файле 1, то в колонку DUBL ставится 1. Как можно это сделать формулой или макросом?
 
Может ВПР?

Приложил файл. Листы - аналоги файлов.
 
Grr, открываю ваш файл в 2010 офисе и, после того как я нажимаю на "разрешить редактирование", появляются значения "#ИМЯ?".
Изменено: Lyuker - 21.05.2015 19:11:18
 
На основании файла Grr попробовала через формулу ИНДЕКС+ПОИСКПОЗ
Изменено: Vika_22 - 21.05.2015 15:06:41
 
Vika_22, получается на больших списках, если убрать некоторые $ в ссылках, например:
Код
=ЕСЛИ(ЕСЛИОШИБКА(ИНДЕКС(ФАЙЛ1!$A$1:$I5;ПОИСКПОЗ(ФАЙЛ2!D2;ФАЙЛ1!$A1:$A5;0););1)=1;1;"0")
но в формулу еще надо впихнуть проверку пку на формат или преобразование пку в нужный формат. У меня в примере не знаю какой формат, с таким форматом все получается. но если перевести у какого-нибудь человека пку в числовой формат, то значение получится не правильным.
 
Lyuker,  а можно файл с примером, где не получается. Сейчас попробовала поменять форматы пку - у меня все работает.
Вопрос: а зачем $ убирать? в Вашем примере диапазон в пять строк, поэтому и $A$1:$I$5, соответственно для диапазона в 100 строк будет $A$1:$I$100. А если у Вас значение пку в первой таблице соответствует 30-му значению во второй таблице, а диапазон поиска $A1:$A5, тогда действительно, формула будет не правильно считать.

Если, конечно, есть вероятность, что в файле 1 и файле 2 какие-то значения пку будут в текстовом формате, проще заменять их числовыми с помощью бинарного отрицания, формула (напоминаю: формула массива через Ctrl+Shift+Enter) будет такая:
Код
{=ЕСЛИ(ЕСЛИОШИБКА(ИНДЕКС(ФАЙЛ1!$A$1:$I$5;ПОИСКПОЗ(--ФАЙЛ2!D2;--ФАЙЛ1!$A$1:$A$5;0););1)=1;1;"")}
Изменено: Vika_22 - 22.05.2015 09:55:31
 
Цитата
Vika_22 написал: а зачем $ убирать?
А правда, не надо ) Буду ставить 1000 строк, больше не будет.

Цитата
Vika_22 написал: а можно файл с примером, где не получается
Ок.
"--" устраняют ошибку.
В итоге меня устраивает формула:
Код
{=ЕСЛИОШИБКА(ИНДЕКС(Лист1!$A$1:$I$1000;ПОИСКПОЗ(--Лист2!D2;--Лист1!$A$1:$A$1000;0);8);"0")}
Спасибо!
 
Lyuker,  пожалуйста. Рада, что смогла помочь:)
Страницы: 1
Наверх