将多个电子邮件地址(在单独的单元格中)合并到一个单元格中(以逗号分隔)Google 表格或 Excel

将多个电子邮件地址(在单独的单元格中)合并到一个单元格中(以逗号分隔)Google 表格或 Excel

我正在尝试将多个带有电子邮件地址的单元格合并为一个单元格,其中电子邮件以逗号分隔。

我用过这个公式:

=P2 & ", " & Q2 & ", " & R2 & ", " & AD2 & ", " & AE2 & ", " & AF2

但只有两个单元格有电子邮件,因此结果如下:

, [email protected], , , [email protected],

我该如何修复它?(删除多余的逗号;绕过空单元格;其他解决方案。)

答案1

您可以使用IF如下函数:

=IF(P2<>"",P2&", ","") & IF(Q2<>"",Q2&", ","") & IF(R2<>"",R2&", ","") & IF(AD2<>"",AD2&", ","") & IF(AE2<>"",AE2&", ","") & IF(AF2<>"",AF2,"")

这可能会在末尾有一个多余的逗号,您可以使用以下命令将其删除:

=IF(RIGHT(string,1)=",",LEFT(string,LEN(string)-1),string)

其中string是前一个公式的输出(或任何其他字符串)。

总结成一个丑陋的公式,它看起来就像这样:

=IF(RIGHT(IF(P2<>"",P2&", ","") & IF(Q2<>"",Q2&", ","") & IF(R2<>"",R2&", ","") & IF(AD2<>"",AD2&", ","") & IF(AE2<>"",AE2&", ","") & IF(AF2<>"",AF2,""),1)=",",LEFT(IF(P2<>"",P2&", ","") & IF(Q2<>"",Q2&", ","") & IF(R2<>"",R2&", ","") & IF(AD2<>"",AD2&", ","") & IF(AE2<>"",AE2&", ","") & IF(AF2<>"",AF2,""),LEN(IF(P2<>"",P2&", ","") & IF(Q2<>"",Q2&", ","") & IF(R2<>"",R2&", ","") & IF(AD2<>"",AD2&", ","") & IF(AE2<>"",AE2&", ","") & IF(AF2<>"",AF2,""))-1),IF(P2<>"",P2&", ","") & IF(Q2<>"",Q2&", ","") & IF(R2<>"",R2&", ","") & IF(AD2<>"",AD2&", ","") & IF(AE2<>"",AE2&", ","") & IF(AF2<>"",AF2,""))

答案2

方案一:首先,为每个可能的邮件地址列添加辅助列,使用IF公式在每个非空字符串后附加逗号,否则返回空字符串。例如,P2 的辅助列公式为=IF(P2<>"", P2&",", "")。然后将上述辅助列连接在一起。

选项 2:像以前一样连接所有字符串,然后使用正则表达式将多个逗号替换为一个逗号,如建议的那样https://stackoverflow.com/questions/26280008/excel-how-do-i-replace-text-by-using-a-wildcard

答案3

一种稍微不那么曲折的方法是使用这个公式,它避免了删除任何内容的需要,因为它只会在引用的单元格包含任何内容时才被添加:

=IF(P2<>"",","&P2,"")&IF(Q2<>"",","&Q2,"")&IF(R2<>"",","&R2,"")&IF(AD2<>"",","&AD2,"")&IF(AE2<>"",","&AE2,"")&IF(AF2<>"",","&AF2,"")

相关内容