2009-12-08 5 views
1

Мне нужна формула для извлечения последних двух слов в ячейке с использованием openoffice. Например, ячейка содержит слова: «наслаждайтесь остальной частью дня». Я хотел бы извлечь «ваш день», используя формулу. Я знаю, как извлечь последнее слово:Извлечь последние два слова в ячейке с использованием openoffice

=RIGHT(A1;LEN(A1)-FIND("*";SUBSTITUTE(A1;" ";"*";LEN(A1)-LEN(SUBSTITUTE(A1;" ";""))))) 

который приводит к «дню». Но мне нужна формула для двух последних слов.

+0

Не программирование, может быть, это принадлежит SuperUser. – Lazarus

+2

Хотя формулы электронной таблицы OO - это ограниченный язык программирования, это программный язык ИМО. – Piskvor

ответ

1

SEARCH поддерживает регулярные выражения, поэтому используйте

=RIGHT(A1, LEN(A1) - SEARCH("[^ ]+ +[^ ]+$", A1) + 1) 

Когда я использовать точку с запятой, как показано ниже, Calc молча заменяет запятые, но OP сообщает успех ввода его таким образом: Сходные

=RIGHT(A1; LEN(A1) - SEARCH("[^ ]+ +[^ ]+$"; A1) + 1) 
+0

спасибо за ваш ответ, но он дал мне ошибку: #NAME? (Недействительное имя), пожалуйста, помогите – sami

+0

Какое значение '= SEARCH (" [^] + [^] + $ "," apple orange banana ")' дает вам? С версией 3.1.1 я получаю '7'. Имеет ли значение в 'A1' несколько разделителей в качестве разделителей? –

+0

= ПОИСК ("[^] + [^] + $", "яблочный оранжевый банан") дает мне ту же ошибку, что и раньше. Я использую openoffice 2.4. И нет разделителей в качестве разделителей. – sami