проверить, содержит ли ячейка с несколькими числами определенное значение - PullRequest
1 голос
/ 26 октября 2019
I have a column A with the values 
Col A

A1   1:2:3:3
A2   2:3:4:5
A3   1:04:05

В Excel из ColumnA я должен проверить среди ячеек A1, A2, A3, содержит ли какая-либо из ячеек число 5 или 05. Если true, он должен возвращать true. Как получить формулу в Excel для вышеупомянутого условия? Я пробовал с поиском ("5", A1), но он не работает?

Какую формулу можно использовать, пожалуйста, руководство.

Ответы [ 3 ]

2 голосов
/ 28 октября 2019

Если вы используете Excel 2013 или более позднюю версию, вы можете использовать следующую формулу:

=SUMPRODUCT(--(FILTERXML("<b><a>["&SUBSTITUTE(A1,":","]</a><a>[")&"]</a></b>","//a")={"[5]","[05]"}))>0

Перетащите ее вниз, чтобы применить поперек.

Логика заключается в использовании функции SUBSTITUTE для преобразования каждой строки в действительный сценарий xml, например "<b><a>[1]</a><a>[2]</a><a>[3]</a><a>[3]</a></b>" для 1:2:3:3,

, а затем FILTERXML функция для преобразования строки в диапазон значений, разделенных знаком двоеточия :, например {"[1]";"[2]";"[3]";"[3]"}. Я добавил специальные символы [ и ] для каждого значения в диапазоне для цели точного соответствия,

, наконец, сравните диапазон с {"[5]","[05]"} и используйте SUMPRODUCT , чтобы выяснить,если есть хотя бы одно совпадение или TRUE из сравнения. Если >0 то есть найдено хотя бы одно совпадение, возвращается TRUE, в противном случае FALSE.


РЕДАКТИРОВАТЬ # 2

Еслиу вас нет доступа к функции FILTERXML , вы также можете попробовать следующую формулу:

=SUMPRODUCT(IFERROR(FIND({"[5]","[05]"},"["&SUBSTITUTE(A1,":","][")&"]"),0))>0

Логика аналогична, сначала используйте функцию SUBSTITUTE для преобразования строки 1:2:3:3 в "[1][2][3][3]", затем используйте функцию FIND , чтобы выяснить, содержит ли строка какую-либо из следующих {"[5]","[05]"}, и, наконец, используйте функцию SUMPRODUCT для возвратарезультат, если >0, то TRUE иначе FALSE.

Дайте мне знать, если у вас есть какие-либо вопросы. Вот строки, которые я протестировал:

| Strings            | Result |
|--------------------|--------|
| 1:2:3:3            | FALSE  |
| 2:3:4:5            | TRUE   |
| 1:04:05            | TRUE   |
| 005:50:15:25:55    | FALSE  |
| 505:550:500:05a:O5 | FALSE  |
1 голос
/ 26 октября 2019

попробуйте это:

enter image description here

"*" - это подстановочный знак ...

Или:

enter image description here

1 голос
/ 26 октября 2019

Чтобы увидеть, существует ли 5 в наборе ячеек, используйте:

=ISNUMBER(SEARCH(":5:",";" & TEXTJOIN(":",TRUE,A1:A3) & ":"))

Это найдет 5 , но избегайте таких вещей, как 55.

enter image description here

Чтобы проверить 05 , сделайте очевидную замену в формуле.

РЕДАКТИРОВАТЬ # 1:

Для проверки одной ячейки , используйте:

=ISNUMBER(SEARCH(":" & "5" & ":",":" & A2 & ":"))

enter image description here

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