Используйте функцию VLOOKUP для поиска по нескольким критериям синонимов текста.

Используйте функцию VLOOKUP для поиска по нескольким критериям синонимов текста.

https://i.stack.imgur.com/1GIk4.png

Здравствуйте, мне нужно использовать VLOOKUP для поиска среди нескольких критериев, нескольких синонимов и вывода значения на основе входных данных таблицы. Например, изображение 1 — это список синонимов, которые будут иметь последующее значение в другой таблице. Я хотел бы, чтобы функция искала ЛЮБОЕ из этих имен и выводила значение в соответствующем столбце VLOOKUP для каждого образца. Я попробовал это:

=VLOOKUP(OR(C$2=TRUE,C$3=TRUE,C$4=TRUE,C$5=TRUE,C$6=TRUE,C$7=TRUE,C$8=TRUE)=TRUE,'[Worksheet2.xlsx]BD-7 1'!$F$1:$G$73,2)

но мне не везет. Похоже, VLOOKUP не ценит использование нескольких критериев. Спасибо за любую помощь!

решение1

  1. VLOOKUP() находит ОДИН элемент (первый аргумент) в списке,
  2. список находится в первом столбце массива, который у вас есть в качестве второго аргумента,
  3. третий аргумент указывает, какой столбец выбрать из вашего массива, 1= возвращает соответствующий элемент
  4. и последний аргумент должен быть ЛОЖЬЮ, чтобы попытаться найти ТОЧНОЕ совпадение.

Теперь с учетом сказанного: вы можете ввести любой (отдельный) из синонимов или даже шаблон соответствия[1], чтобы найти.

Возвращаемое значение или элемент может находиться в любом столбце справа от первого (включенного в определение массива) или в первом столбце.

[1] *для нескольких возможных символов, ?для одного

решение2

Ваше решение в комментариях к Hannuответу должно работать нормально. Нижеследующее можно считать немного более прозрачным, и оно позволит перехватывать больше ошибок. (Однако перехват большего количества ошибок может скрыть проблемы, которые вы предпочли бы обнаружить и решить, хотя это не обязательно должно беспокоить, если ваши данные (значения поиска ИЛИ наборы данных возвращаемых значений) являются приличными и, скорее всего, всегда будут такими.)

=SUM(IFERROR(VLOOKUP(C1:C3,C13:D14,2,FALSE),0))

Он IFERROR()перехватывает неудачные поиски и присваивает им нулевое значение, не добавляя ничего к желаемой сумме, а затем SUM()просто суммирует их все.

(Возможно, это будет быстрее, а возможно и нет. Вероятно, это не проблема, если поиск происходит в одном месте, но если рассчитывать для всего набора данных, это может иметь значение, в зависимости от его размера.)

Связанный контент