假设我在一个单元格中有以下数据(注意:带有减号和换行符的列表式文本):
- val1
- val2
- val3
如何使用上述列表式文本的逗号分隔列表版本填充另一个单元格?
也就是说,我想在单元格 B1 中有类似这样的内容:
A | 乙 | |
---|---|---|
1 | 上方有列表形式的文本 | 值 1、值 2、值 3 |
奖励1
那么如何制作类似于上面的例子的东西,但是来自这个类似列表的文本(注意:添加了“string:”)
string:
- val1
- val2
- val3
单元格 B1 中的这个?
- string: val1, val2, val3
奖励2
并从这个类似列表的文本(注意:添加了多个“字符串:”)
stringA:
- val1A
- val2A
- val3A
stringB:
- val1B
- val2B
- val3B
单元格 B1 中的这个?
- stringA: val1A, val2A, val3C
- stringB: val1B, val2B, val3C
答案1
快速而粗略:组合两个 REGEX 以删除尾随的减号,用逗号替换换行符。在 B1 中输入以下公式以获得所需结果:
=REGEX(REGEX(A1;"\n- ";", ";"g"); "- "; "")
以下是相同公式及其解释:
=REGEX( # Outer regex: removes trailing "-"
REGEX( # Inner regex: replaces line feed followed by "- "
A1; # Text to transform
"\n- "; # Regex pattern: Line feed followed by "- "
", "; # Replacement
"g" # Flag: global
); # End of inner Regex; result is input text for outer regex
"- "; # Regex pattern (plain text "- ")
"" # Replacement: delete matching text
)
由于“\n- ”与 val1 之前的“-”符号不匹配,因此我合并了两个正则表达式。因此,“内部正则表达式”处理 val2 和 val3 的换行符和减号;“外部正则表达式”处理 val1 之前的减号。