Excel条件拼接

3

我有几列数据,想要根据条件语句进行合并。我的数据列如下:

Col 1    Col 2    Col 3    Col 4    Col 5
  73      NA       NA       NA       NA 

我试图将不含有“NA”或为空的单元格连接起来。我有以下代码:

=IF(OR(B2<>"",B2<>"NA"),CONCATENATE(A2,",",B2),IF(OR(C2<>"",C2<>"NA"),CONCATENATE(A2,",",B2,",",C2),IF(OR(D2<>"",D2<>"NA"),CONCATENATE(A2,",",B2,",",C2,",",D2),IF(OR(E2<>"",E2<>"NA"),CONCATENATE(A2,",",B2,",",C2,",",D2,",",E2),0))))

期望的输出是:
73

然而,我一直在遇到这个问题。
 73, NA

注意:第一列始终会有一个数字。

你使用的 Excel 版本是哪个? - Scott Craner
你需要在所有语句中使用AND()而不是OR()。 - Scott Craner
@ScottCraner 我正在使用来自Office 365的Excel。 - Sage Mohan
请参见我的Edit#2,那里有一个更简短的公式。 - Scott Craner
@ScottCraner,如果列为空,则第二次编辑的结果为73,0,0,0,0。 - Sage Mohan
我觉得我解决了这个问题。 - Sage Mohan
3个回答

4
尝试使用以下方法:
=LEFT(IF(AND(A1<>"",A1<>"NA"),A1 & ",","") & IF(AND(B1<>"",B1<>"NA"),B1 & ",","") &IF(AND(C1<>"",C1<>"NA"),C1 & ",","") &IF(AND(D1<>"",D1<>"NA"),D1 & ",","") &IF(AND(E1<>"",E1<>"NA"),E1 & ",",""),LEN(IF(AND(A1<>"",A1<>"NA"),A1 & ",","") & IF(AND(B1<>"",B1<>"NA"),B1 & ",","") &IF(AND(C1<>"",C1<>"NA"),C1 & ",","") &IF(AND(D1<>"",D1<>"NA"),D1 & ",","") &IF(AND(E1<>"",E1<>"NA"),E1 & ",","") )-1)

在此输入图片描述


编辑:

看起来你的数据是按列顺序加载的。你可以简化公式:

=A1 & IF(AND(B1<>"",B1<>"NA"),"," & B1,"")& IF(AND(C1<>"",C1<>"NA"),"," & C1,"")& IF(AND(D1<>"",D1<>"NA"),"," & D1,"")& IF(AND(E1<>"",E1<>"NA"),"," & E1,"")

编辑 #2

如果您正在使用Office 365 Excel,则可以使用TextJoin作为数组公式:

=TEXTJOIN(",",TRUE,IF((A1:E1<>"NA")*(A1:E1<>""),A1:E1,""))

作为一个数组公式,当您退出编辑模式时,需要使用Ctrl-Shift-Enter进行确认。如果正确完成,则Excel将在公式周围放置{}

在第二次编辑中,如果列为空,则结果为“73,0,0,0,0”。 - Sage Mohan

1
在Excel 2016+中,TEXTJOIN函数允许使用范围作为参数,与数组公式结合使用后,它可以成为一个条件连接函数或"CONCATENATEIF"。
=TEXTJOIN(", ", TRUE, IF(A1:D1<>"NA", A1:D1, ""))

不要只按下 Enter,而是按下Shift + Ctrl + Enter。这将把它保存为数组公式,而不是简单的公式。在公式框中会显示不同。

{=TEXTJOIN(", ", TRUE, IF(A1:D1<>"NA", A1:D1, ""))}

这里有关于数组公式的更多信息。 数组公式的指南和示例


0

B2是“NA”,在你的OR中反转逻辑。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接