Excel(或Calc)中的字符串模板?

Excel(或Calc)中的字符串模板?,excel,openoffice-calc,libreoffice-calc,Excel,Openoffice Calc,Libreoffice Calc,Excel或OpenOffice/LibreOffice Calc中是否有某种字符串模板系统?基本上,我有一个文本模板,它引用了一些其他单元格,并希望生成最终的合并结果,例如: My name is [A1]. I have been working at [A2] for [A3] years. Welcome to you all. (模板变量不需要直接是单元格引用;它可以是函数参数,因此复制公式并不困难。) 我知道字符串连接,但它似乎不支持多行字符串或类似“\n”的C样式转义序列,需要

Excel或OpenOffice/LibreOffice Calc中是否有某种字符串模板系统?基本上,我有一个文本模板,它引用了一些其他单元格,并希望生成最终的合并结果,例如:

My name is [A1]. 
I have been working at [A2] for [A3] years.
Welcome to you all.
(模板变量不需要直接是单元格引用;它可以是函数参数,因此复制公式并不困难。)

我知道字符串连接,但它似乎不支持多行字符串或类似“\n”的C样式转义序列,需要我链接CHAR(10),这会变得很麻烦:

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

实际上,您可以在字符串中插入换行符(Alt+Enter)

尝试此公式,不要忘记为单元格激活
换行文本

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

正如您在评论中指出的,这类似于超级用户问题。我在这种情况下所做的是连续替换法:

=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)在命名引用中也有替换值,或者使用表,则此方法会更清晰:


可能是的副本,因此它可以在Excel中工作。但不幸的是,我的LibreOffice Calc无法被说服接受它。Ctrl-Enter是输入换行符的一种方式,输入公式后,换行符变成一个空格。您是否有类似Excel的“换行文本”选项?只是问一下,因为如果没有激活该选项,Excel也会使它看起来像标准空间。我尝试使用“换行文本”格式化单元格。文本换行,但换行符转换为空格的行为没有改变。我在一些论坛上看到,Ctrl+Enter仅在直接在单元格中键入时有效,而在使用顶部的输入行时无效。旧消息,但值得一试。是的,我在单元格中直接键入时使用了Ctrl+Enter。它确实起作用,Calc确认它并将光标向下移动一行。但按Enter键后,换行符将转换为空格。
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(template_string,
    "%name", [@Name]),
    "%company",[@Company]),
    "%years",[@Years])