如何使用以逗号分隔的列表形式文本列表版本填充单元格?

如何使用以逗号分隔的列表形式文本列表版本填充单元格?

假设我在一个单元格中有以下数据(注意:带有减号和换行符的列表式文本):

- 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 之前的减号。

相关内容