2

У меня есть лист Excel (источник), который имеет простые идентификационные номера в столбце A (от 01 до 40000). На другом листе (дочерний) у меня есть те же самые идентификационные номера в столбце A, но с добавленными дополнительными 01 или 02; например, 0101 или 0102, 250001 или 250002 и т. д. Поэтому этот список идентификационных номеров почти вдвое длиннее. В колонке B есть цифры.

Я пытаюсь извлечь данные из столбца B на дочернем листе, и на основе того, имеет ли он "01" или "02", поместить рисунок в столбец B или C исходного листа.

Моя идея состоит в том, чтобы использовать INDEX/MATCH, но я не уверен, как будет написано совпадение, чтобы учесть NOT EXACT MATCH значения поиска. MATCH(A1 & "01", ребенок!A1:A100000,).

Любые советы и ссылки с благодарностью.

Майк.

3 ответа3

2

Это должно работать, но будет зависеть от соответствия типов данных.

Если данные в child являются числовыми, это не сработает, потому что n&"01" - это строка. В этом случае вам нужно обернуть ваши A1&"01" в формулу VALUE() чтобы преобразовать их в число в каждом месте, где оно используется.

Без дальнейших подробностей я оставил это в остальной части ответа, но этого достаточно просто добавить.


Если вы можете отсортировать данные на втором листе, вы сможете сделать это с помощью прямой VLOOKUP , как таковой:

=VLOOKUP( A1 & "01" , child!$A$1:$A$10000 , 2 , FALSE )

Это вернет значение столбца B из совпавшей строки, если найдено соответствие ###01 , или #N/A противном случае. Так что вам нужно будет обернуть его в IF чтобы справиться с этим (пример с переводом строки для удобства чтения):

=IF( ISNA( VLOOKUP(A1&"01",child!$A$1:$A$10000,2,FALSE) ) ,
                             "" , VLOOKUP(A1&"01",child!$A$1:$A$10000,2,FALSE) )

Эта формула подойдет вам для столбца B , вам нужно то же самое, но с &"02" в столбце C

0

В Б1:

=IF(ISNA(MATCH(A1&"01",child!$A$1:$A$10000,FALSE)),"",VLOOKUP(A1&"01",child!$A$1:$C$10000,2,FALSE)

В С1:

=IF(ISNA(MATCH(A1&"02",child!$A$1:$A$10000,FALSE)),"",VLOOKUP(A1&"02",child!$A$1:$C$10000,3,FALSE)

и заполните по мере необходимости.

0

Казалось бы, имена ваших листов не совпадают. Функционально ваш дочерний лист на самом деле является источником. Используя ваши имена, однако:

Будь проще. Используйте vlookup. Эти уравнения будут тянуть данные в "исходный" лист:

В колонке B:

=vlookup(a4&"01",child!a$4:b$13,1,0)

В колонке С:

=vlookup(a4&"02",child!$a$4:b$13,1,0)

Это предполагает, что данные начинаются в строке 4 обоих листов. Вам нужно будет расширить диапазон данных child!a$4:b$13 чтобы охватить все ваши данные на дочернем листе. Затем заполните уравнения вниз.

Некоторая обработка ошибок может потребоваться для управления поведением #n/a :

=if(isna(vlookup(a4&"02",child!a$4:b$13,1,0)),"",vlookup(a4&"02",child!a$4:b$13,1,0))

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .