Если вы используете 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 |