У вас есть два столбца для заполнения. Начнем с названия категории в столбце 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
из первой строки своего диапазона.