1

Вот макет моих данных:

Скриншот

Столбец I содержит категории продуктов питания, а столбец H содержит коды для этих категорий.

Столбец E имеет подкатегории, с которыми мне нужно работать. Он содержит название категории и порядковый номер, отличающий подкатегорию.

В столбцах F и G мне нужно найти код и имя родительской категории из столбцов H и I. На изображении столбец G уже заполнен.

Фактические данные имеют 348 категорий и 1000 подкатегорий.

Я попытался использовать Vlookup, который дает мне # N/A, ошибка значения недоступна. Например, я попробовал это для значения столбца G:

=VLOOKUP(E4,H4:I6,2,FALSE)  

Как мне найти значения для столбцов F и G для каждого значения в столбце E?

1 ответ1

1

У вас есть два столбца для заполнения. Начнем с названия категории в столбце G. Попытка сделать это с VLOOKUP была бы запутанной, потому что значения в столбце E не совпадают со значениями в столбце I. Однако вам повезло из-за соглашения об именах. Имена подкатегорий столбца E содержат имя категории в качестве первой части, а порядковый номер всегда состоит из трех цифр. Мы можем использовать это для непосредственного извлечения названия категории.

В Excel есть строковые функции для такого рода манипуляций со строками символов. LEFT(строка, число) даст вам это количество самых левых символов в строке. Точно так же RIGHT(строка, число) даст вам это число самых правых символов. Поэтому, если вы хотите извлечь порядковый номер подкатегории для E4, это будет: RIGHT(E4,3).

Другой строковой функцией является LEN, которая дает вам длину (количество символов) в строке. Чтобы извлечь название категории для G4, которая является всеми символами, кроме последних четырех (то есть пробел плюс порядковый номер), вы можете использовать:

=LEFT(E4,LEN(E4)-4)

Теперь у вас есть имя категории, и вы можете использовать его для поиска кода соответствующей категории. К сожалению, VLOOKUP имеет ограничение, заключающееся в том, что сравнение всегда выполняется в крайнем левом столбце диапазона поиска. Ваша таблица настроена с кодом в крайнем левом столбце. Вместо этого мы можем использовать комбинацию INDEX и MATCH. MATCH найдет соответствующее значение, а INDEX выберет соответствующее значение из другого столбца. В F4 мы можем использовать:

=INDEX(H4:H6,MATCH(G4,I4:I6,0))

INDEX возвращает значение из диапазона H4:H6 для строки в этом диапазоне, заданной функцией MATCH. MATCH идентифицирует строку в I4:I6, где значение является точным соответствием значению в G4 (0 в конце обозначает точное совпадение, поэтому последовательность данных не важна). В этом примере Fruit соответствует первой строке в пределах диапазона, поэтому INDEX возвращает X040001 из первой строки своего диапазона.

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