Итак, вот пример. 2 файла, 111.xls и 222.xls. Выглядят примерно так:
Файл 111.xls
Лист1:
A B C
1 Индекс Ключ Значение
2 12 50092 1.1.1.12
3 3 50583 1.1.1.3
4 10 50843 1.1.1.10
5 9 51222 1.1.1.9
6 19 51373 1.1.1.19
7 17 51417 1.1.1.17
8 7 51712 1.1.1.7
9 18 53722 1.1.1.18
10 4 53905 1.1.1.4
11 16 54994 1.1.1.16
12 6 55059 1.1.1.6
13 11 55614 1.1.1.11
14 13 55731 1.1.1.13
15 2 55764 1.1.1.2
16 5 55907 1.1.1.5
17 20 55921 1.1.1.20
18 14 56699 1.1.1.14
19 1 57296 1.1.1.1
20 8 57622 1.1.1.8
21 15 58997 1.1.1.15
Файл 222.xls
Лист1:
A B
1 57296 1.1.1.1 <- В этих ячейках формула:
2 55764 1.1.1.2 =ВПР(A1,[111.xls]Лист1!$B:$C,2,ЛОЖЬ)
3 50583 1.1.1.3
4 53905 1.1.1.4
5 55907 1.1.1.5
6 55059 1.1.1.6
7 51712 1.1.1.7
8 57622 1.1.1.8
9 51222 1.1.1.9
10 50843 1.1.1.10
11 55614 1.1.1.11
12 50092 1.1.1.12
13 55731 1.1.1.13
14 56699 1.1.1.14
15 58997 1.1.1.15
16 54994 1.1.1.16
17 51417 1.1.1.17
18 53722 1.1.1.18
19 51373 1.1.1.19
20 55921 1.1.1.20
В первом файле 1-й столбец — просто числа от 1 до 20, 2-й столбец — числа, по которым мы выбираем значения из 3 столбца.
Во втором файле первый столбец — числа. Для каждого числа из 1 столбца находится строка в первом файле, где есть это число. Из этой строки берется значение и помещается в ячейку напротив числа.
Т. е., в ячейке A1 — число 57296. В первом файле оно расположено в строке 19, столбце B. Из строки 19, столбца C берётся значение 1.1.1.1. Оно помещается в ячейку B1.
Что означает формула:
ВПР — вертикальный просмотр. В английском варианте — vlookup.
A1 — из этой ячейки берется число, которое ищем в первом файле.
[111.xls]Лист1!$B:$C — просматриваем файл 111.xls, Лист1, столбцы от B до C.
2 — после того, как нашли число в первом столбце просматриваемого интервала (B), берём значение из второго столбца (C).
ЛОЖЬ — означает, что в файле 111.xls данные НЕ ОБЯЗАТЕЛЬНО отсортированы.
При этом просматриваются все значения, и когда встретится совпадение, формула дает ответ.
В этом примере данные отсортированы, и вместо ЛОЖЬ можно написать ИСТИНА или оставить пустое место — работать будет быстрее. Но если в первом файле отсортировать таблицу по первому полю, то в столбце B данные будут не по порядку, и надо в формуле писать ЛОЖЬ, иначе будет неправильно работать. У вас в примере данные не по порядку -> надо написать ЛОЖЬ.
В вашем случае формула должна выглядеть так:
=ВПР(A1,[111.xls]Лист1!$D:$?,?,ЛОЖЬ), ну, вместо ? надо подставить правильную букву и число.
Не умею я объяснять... Если что — спрашивайте.
Пользователь решил продолжить мысль 03 Февраля 2011, 02:05:00:
В этом примере всё получилось даже без макросов, просто с помощью формул на рабочем листе.
Одно только неясно: какое «некоторое значение» надо вписать в 5 столбец? Если это значение вычисляется только из содержимого строки с нужным числом из первого файла и некоторых констант, то всё ОК, а если там используются другие данные, то надо смотреть.
А с помощью макросов в Экселе можно не только с разными документами работать. Там можно почти всё!