3

Есть ли в LO Calc функция, которая найдет ячейку с заданным текстом?

Появляются функции поиска и поиска, чтобы указать местоположение в строке. То есть, если я ищу текст "a" в двух ячейках, одна из которых содержит "xxxa", а другая содержит "bbb", ответ будет 4.

Это не то, что мне нужно. Мне нужно найти, в какой ячейке находится рассматриваемый текст.

2 ответа2

5

Просто используйте функцию MATCH() . Поскольку он поддерживает регулярные выражения, вы можете использовать MATCH() для поиска частичных строк.

Вот пример:

Массив поиска - A1:A4 , критерий поиска - .*a.* (Это регулярное выражение, синтаксис см. Ссылку выше). Результат формулы =MATCH(".*a.*";A1:A4;0) равен 2 , поскольку вторая ячейка в массиве поиска - это первая ячейка, которая соответствует шаблону поиска.

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

Относительно регулярного выражения: вот список символов регулярного выражения. Выражение .*a.* Состоит из:

  • буквальным a соответствующий единый символ;
  • a сопоставляя любой символ;
  • звездочка . , квантификатор, означающий "ноль или более" относительно предыдущего символа.

Таким образом, шаблон регулярного выражения соответствует каждому содержимому ячейки, содержащему a , перед которым следует любое количество других символов. Чтобы ознакомиться с регулярными выражениями, проверьте RegExr или онлайн-тестер регулярных выражений.

1

Вот обходной путь, который использует вспомогательный столбец.

пример

Вы можете скрыть столбец B. Ячейка B1 содержит:

=ISNUMBER(SEARCH("a",A1))*ROW()

Скопируйте это вниз по столбцу по мере необходимости. Это обеспечивает номер строки, если ячейка содержит "а", иначе ноль. Адрес ячейки, который вы хотите, находится в D1:

=ADDRESS(SUM(B1:B3),1)

Сумма совпадающей строки и группы нулей дает вам строку, и столбец известен. Вы можете использовать эти значения непосредственно внутри формулы, а не создавать текстовое представление адреса.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .