Формула Excel, чтобы найти значение из поля в списке и вернуть соответствующее значение - PullRequest
2 голосов
/ 01 мая 2019

Я пытаюсь создать формулу Excel, которая ищет значение в ячейке в списке различных поисковых слов. Когда найдено, он должен вернуть значение для этой строки.

Значение слова поиска:

Grocery     31    
Pub         42    
Restaurant  45    
Taxi        58    
Bus         58    

Полагаю, псевдокод будет выглядеть примерно так:

=IF((A1 IS IN C1:C10);D1:D10;"blank")

Я создал эту формулу, но ее трудно поддерживать. Я хочу использовать список вместо изменения формулы.

=IF(OR(    (ISNUMBER(SEARCH("GROCERY", E3))), "31", 
(IF(OR(    (ISNUMBER(SEARCH("PUB", E3))), "42", 
(IF(OR(    (ISNUMBER(SEARCH("Restaurant", E3))), "45", 
(IF(ISNUMBER(SEARCH("Taxi", E3)), "58", "")))))))`

Ответы [ 2 ]

2 голосов
/ 01 мая 2019

INDEX / AGGREGATE найдет и вернет правильное значение:

=INDEX(F:F,AGGREGATE(15,7,ROW($E$1:$E$5)/(ISNUMBER(SEARCH($E$1:$E$5,A1))),1))

enter image description here

2 голосов
/ 01 мая 2019

Скажем, наш текст для поиска находится в A1 , а наша маленькая таблица поиска находится в D1 до E5 :

enter image description here

В B1 введите формулу массива:

=IFERROR(VLOOKUP(TEXTJOIN(",",TRUE,IF(ISNUMBER(SEARCH($D$1:$D$5,A1)),$D$1:$D$5,"")),$D$1:$E$5,2,TRUE),"")

enter image description here

AsВы видите, формула сканирует столик;находит Pub и возвращает соответствующее числовое значение.

Формулы массива необходимо вводить с помощью Ctrl + Shift + Введите , а не просто Enter .Если это сделано правильно, формула появится в фигурных скобках вокруг нее в строке формул.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...