Open Office Calc: Как найти набор значений (как любая цифра) в строке?

343
Addem

По образцу решения, которое я нашел для Excel, я попробовал следующее в Open Office Calc и получил ошибку:

=FIND(, A1) 

Цель состоит в том, чтобы найти координаты в строке в A1, где встречаются числа 1 или 2. Есть ли другой синтаксис для достижения этой цели в Calc или нужно подходить к нему совсем по-другому? Я знаю, что мог бы отдельно искать 1, а затем 2, поэтому не использовал бы заданные скобки - но если бы аргумент find_text был очень большим, это было бы непрактично, верно?

1
Я использую LibreOffice, который разветвляется на Open Office и в целом довольно похож. Ваша формула отлично работала в LO Calc. За прошедшие годы у Open Office были свои взлеты и падения, переходы из рук в руки, проблемы с обслуживанием и т. Д. Я думаю, что LibreOffice в настоящее время является более надежным и стабильным. Вы можете просто попробовать переключиться. Все ваши существующие файлы должны быть совместимыми, так что не стоит терять их при попытке. fixer1234 5 лет назад 1
@ fixer1234: ошибка, вероятно, вызвана только запятыми, а не точками с запятой. Когда я тестировал `= FIND (; A1)` в LO Calc 6.0.3.2, он дал те же результаты, что и Apache OpenOffice: он находит первый аргумент (`1`), но игнорирует все остальные (` 2` в этом случае). Так что он не делает то, что, по сообщениям, делает Excel. Jim K 5 лет назад 2
@ JimK, черт возьми, если ты не прав. Я не выглядел достаточно сложно. Узнал что-то новое. Благодарю. Кстати, просто отсутствие совпадения с первым значением приводит к ошибке, поэтому проблема с запятой / точкой с запятой может даже не применяться (в моем случае она установлена ​​в соглашениях Excel). fixer1234 5 лет назад 1

1 ответ на вопрос

2
Jim K

В регулярном выражении фигурные скобки используются для указания количества повторений символа. Я предполагаю, что Excel интерпретирует аргумент как массив и проверяет каждую возможность. Однако LibreOffice и Apache OpenOffice проверяют только первое значение.

Следующее выражение кажется мне более понятным, подобно re.search в Python.

=SEARCH("1|2";A1) 

Или для сопоставления с любой цифрой:

=SEARCH("[0-9]";A1) 

Документация: ПОИСК .

Убедитесь, что регулярные выражения включены. Из вики - Regular_Expressions_in_Calc :

Используются ли регулярные выражения в диалоговом окне « Сервис - Параметры» - «OpenOffice.org Calc» - «Вычислить ».

Похожие вопросы