Как проверить, содержит ли ячейка Excel слово - PullRequest
0 голосов
/ 07 апреля 2020

Я ищу формулу Excel, которая либо считает, либо возвращает истину, если ячейка содержит шаблон слова (в основном, хотелось бы знать, существует ли такая ячейка), но формула должна распознавать ячейку как действительную, только если

Требование 1: полный шаблон слова должен присутствовать и как отдельное слово в проверяемой ячейке (например, если ab12 является шаблоном, ab123 недопустим, только ab12 допустим)

Требование 2: соответствующее слово может находиться либо в начале, либо в конце, либо в середине проверяемой ячейки

Требование 3: проверяемые входные ячейки могут содержать это совпадающее слово и могут содержать префикс / суффикс как "" (пробел) или разрыв строки / подача. Следовательно, формула должна идентифицировать эту ячейку как действительную для обоих этих сценариев ios

Пример шаблона слова: ab-1_cd_1234

В данный момент я попробовал обе формулы ниже (также пробовал с " "," * "," ~ "в критериях), но не сработало:

Формула 1: = ISNUMBER (ПОИСК (A2, B2))

          Here, A2 is the pattern, B2 is the input to verify and will be verified in full B column

Формула 2: = COUNTIF ($ B: $ B, "*" & A2 & "*")

          Here, B:B is the input column and A2 is the pattern

Кроме того, я узнал, что в слове <и> есть подстановочный знак, который определяет начало и конец слова, но То же самое не работает в Excel.

Так что было бы здорово, если бы я мог получить любую формулу, которая работает в Excel

Ответы [ 2 ]

1 голос
/ 07 апреля 2020

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

=SUMPRODUCT(--($A$2=FILTERXML("<a><b>" & SUBSTITUTE(SUBSTITUTE(B2,CHAR(10),"</b><b>")," ","</b><b>") & "</b></a>","//b")))>0

Редактировать

Чтобы решить проблему с пустыми строками:

=SUMPRODUCT(--($A$2 & "#"=FILTERXML("<a><b>" & SUBSTITUTE(SUBSTITUTE(B2,CHAR(10),"#</b><b>")," ","#</b><b>") & "#</b></a>","//b")))>0

enter image description here

Редактировать 2: Для подсчета количества ячеек, содержащих шаблон, вы можете использовать формулу массива:

=SUMPRODUCT(--(IFERROR(SEARCH(" " & A2 & " "," " & SUBSTITUTE($B$2:$B$10,CHAR(10)," ") & " "),0)>0))

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

enter image description here

1 голос
/ 07 апреля 2020

Пожалуйста, попробуйте эту формулу, где A3 - это текст для поиска, а текст для поиска находится в A1.

=IF(ISERROR(FIND(" "&$A$1&" "," "&SUBSTITUTE(A3,CHAR(10)," ")&" ")),"",TRUE)

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