Шаблоны строк в Excel (или Calc)? - PullRequest
0 голосов
/ 28 января 2019

Существует ли какая-либо система шаблонов строк в Excel или OpenOffice / LibreOffice Calc?По сути, у меня есть текстовый шаблон, который ссылается на некоторые другие ячейки и хочет получить окончательный объединенный результат, например:

My name is [A1]. 
I have been working at [A2] for [A3] years.
Welcome to you all.

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

Я знаю о конкатенации строк, но, похоже, она не поддерживает многострочную строку и escape-последовательность в стиле C, например "\ n", что требует от меня цепочки CHAR (10)который становится громоздким:

="My name is "& A1 & CHAR(10) &
"I have been working at " & A2 & " for " & A3 & " years." & CHAR(10) &
"Welcome to you all."

Ответы [ 2 ]

0 голосов
/ 28 января 2019

Как вы отметили в своем комментарии, это похоже на вопрос SuperUser.В подобных ситуациях я делаю метод последовательной замены:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE("My name is %name. I've been working at %company for %years years. Welcome to you all.", 
    "%name", A1), 
    "%company", A2), 
    "%years", A3)

Я думаю, что этот метод становится понятнее, если у вас (1) есть строка шаблона в именованной ссылке и (2) либо есть заменаЗначения также в именованных ссылках или используйте таблицу:

enter image description here

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(template_string,
    "%name", [@Name]),
    "%company",[@Company]),
    "%years",[@Years])
0 голосов
/ 28 января 2019

На самом деле, вам разрешено вставлять разрывы строк в строку (Alt + Enter)

Попробуйте эту формулу и не забудьте активировать Wrap text для ячейки.

="My name is "& A1 & "
I have been working at " & A2 & " for " & A3 & " years.
Welcome to you all."

Result

...