Искать в нескольких столбцах текст, содержащийся в другом столбце, возвращать значение - PullRequest
0 голосов
/ 11 февраля 2020

Прошу прощения, если это глупый вопрос или его уже задавали, но я все время искал и не нашел аналогичного вопроса / решения. Мне нужно искать в двух возможных столбцах (A и B) текст, содержащийся в другом столбце (E). Если текст, содержащийся в столбце A или B, находится в столбце E, мне нужно, чтобы значение в столбце C появилось в столбце F.

Текст в столбцах A и B не будет идентичен тексту в столбце E (если бы я не задавал этот вопрос). И могут быть или не быть данные в столбце B (не уверен, добавляет ли это какую-либо сложность, но просто для ясности).

Я пробовал все виды комбинаций INDEX (MATCH и ISNUMBER (SEARCH, et c. Но безрезультатно. Я почти уверен, что для этого есть простое решение. Любая помощь будет принята с благодарностью!

![enter image description here

Ответы [ 2 ]

1 голос
/ 11 февраля 2020

Вы можете использовать следующую формулу массива:

{=INDEX(F$2:$F$6,MATCH(1,--(MMULT(--ISNUMBER(SEARCH(IF(ISBLANK(B2),A2,A2:B2),$E$2:$E$6)),TRANSPOSE(COLUMN(IF(ISBLANK(B2),A2,A2:B2))^0))>0),0))}

Формула массива после редактирования подтверждается нажатием ctrl + shift + enter

enter image description here

РЕДАКТИРОВАНИЕ:

Обратный поиск - от столбца C к столбцу F. Также формула массива.

{=INDEX($C$2:$C$9,MATCH(1,--(MMULT(--ISNUMBER(SEARCH(IF(ISBLANK($A$2:$B$9), $A$2:$B$9 & "#",$A$2:$B$9),E2)),TRANSPOSE(COLUMN($A$1:$B$1)^0))>0),0))}

In В выражении $A$2:$B$9 & "#" вместо # можно указать любой символ, который не используется в тексте поиска

enter image description here

0 голосов
/ 11 февраля 2020

Не уверен, что есть более простой способ, но с некоторой проверкой вы можете легко придумать что-то вроде

=IF(OR(IF(A3<>"",ISNUMBER(SEARCH(A3,E3)),FALSE),IF(B3<>"",ISNUMBER(SEARCH(B3,E3)),FALSE)),C3,F3)

Это проверяет, что и A3, и B3 не пусты (<> "" ,. .., ЛОЖЬ) и вернуть ложь, если так. Это делает дважды проверку для A3 и B3; Поиск, если ячейка содержится в ячейке E3. Если любой из двух приведенных выше является ИСТИННЫМ, тогда весь ЕСЛИ является истинным, и он вернет C3, как вам нужно. Вы не упомянули, что вам требуется в случае, если строка не была найдена, поэтому в моем примере она возвращает значение в F3 (но вы можете заменить его на что угодно).

Надеюсь, эта помощь!

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