У меня есть столбец со значениями, разделенными запятыми, и мне нужно найти, присутствует ли определенный текст. Проблема в том, что функция FIND() и связанные с ней функции не имеют способа сопоставить точный текст, поэтому, если я ищу число 1, функции сопоставляются с 11. Любая идея будет оценена по достоинству.
Заранее спасибо.
решение1
Поскольку значения разделены запятыми, просто найдите также запятые (и добавьте запятую в начало и конец искомой строки).
eg: =FIND(","&F1&",",","&A1&",")
решение2
Чтобы найти в ячейке 1, а не 11, можно использовать регулярное выражение.
Поскольку вы используете значения, разделенные запятыми, ваше регулярное выражение должно соответствовать трем вещам:
1,
в начале текста (^
якорь), или,1,
в любом месте текста или,1
в конце текста ($
якорь).
В нем содержится чрезвычайно полная информацияэтот ответ Stack Overflowобъясняя, как это сделать в Excel.
В общих чертах вам нужно будет добавить ссылку на библиотеку регулярных выражений и написать пользовательскую функцию для вашего регулярного выражения. Затем вы сможете использовать свою пользовательскую функцию в формулах рабочего листа так же, как вы используете встроенные функции Excel, такие как FIND()
.
решение3
Если ваш формат такой, как вы показали, вы можете попробовать эту формулу:
=IF(VALUE(LEFT(D4,FIND(",",D4,1)-1))=E4,"left",IF(VALUE(RIGHT(D4,LEN(D4)-FIND(",",D4,1))) = E4,"right",""))
решение4
Предположим, что вы можете обоснованно ожидать, что количество записей в этой ячейке будет ниже некоторого известного максимума (скажем, 5), и они состоят из чисел, как в вашем примере (11,13):
- Разделите столбец на 5 новых, каждый из которых будет содержать текст между двумя запятыми.
- Составьте числа из текста.
- Теперь вы можете сравнивать числа с числами. Предположим, что E — это исходный столбец, как в вашем примере:
Формула в первом вспомогательном столбце будет выглядеть так:
=LEFT(E5;FIND(",",E5)-1)
Формула во втором вспомогательном столбце будет иметь вид:
=MID(E5;FIND(",";E5)+1;FIND(",";E5;FIND(",";E5)+1)-FIND(",";E5)-1)
и так далее.