Копирование частичной ячейки в другую ячейку в OpenOffice Calc

11

Ячейка A1 говорит 0001 Джон Смит Ячейка A2 говорит 0002 Билл Снайдер

Я хочу в основном разделить это, поэтому один столбец просто показывает числа (0001, 0002 и т. Д.), А затем другой столбец просто показывает имя.

Первая часть проста. Используя функцию "= LEFT (A1; 4)", я могу получить 0001. Как я могу получить имя? Например, использование «RIGHT (A1; 99)» приведет к захвату всей строки «0001 John Smith». Поскольку каждое имя отличается по длине, я не уверен, что делать. Могу ли я как-то сказать, чтобы он взял всю строку, КРОМЕ первых 4 символов? Или как-то сказать, чтобы он взял последние 2 СЛОВА вместо количества символов, как он спрашивает?


источник

Ответы:

12

Чтобы получить подстроку, исключая первые 4 символа (плюс пробел), вы можете использовать MIDфункцию:

MID(A1,6,LEN(A1))

Это приведет к тому, что «Джон Смит Клетка А2 говорит 0002 Билл Снайдер» . Вы также можете имитировать разбиение текста с помощью FINDфункции, например, эта формула выведет «0001» :

LEFT(A1,FIND(" ",A1)-1)

Далее, это выведет Джона (если исходный текст находится в ячейке A1, а предыдущая формула в B1 ):

MID(A1,LEN(B1)+2,FIND(" ",A1,LEN(B1)))

Вот:

  • А1 - оригинальный текст
  • LEN (B1) +2 - начальная позиция (длина кода 0001 + разделитель + 1)
  • НАЙТИ ("", А1, LEN (B1)) - конечная позиция (т.е. следующий пробел)

И вы можете уточнить это дальше, чтобы получить последние 2 слова :)

barti_ddu
источник
В приведенных выше примерах используются запятые, когда OpenOffice 4.1 требуется точка с запятой. Например, ЛЕВЫЙ (А1, НАЙТИ ("", А1) -1) должен быть ЛЕВЫМ (А1; НАЙТИ (""; А1) -1)
Фрэнк Коэн