在Excel中连接单元格忽略空白单元格

时间:2012-04-23 09:42:39

标签: excel if-statement concatenation

我搜索了网站,但似乎看不到任何符合我问题的内容。

我有7列

用户ID SESSION1 会议2 会议3 session4 session5 届会议6

在会话1-6中,将有一个P或A来表示用户是“出席”还是“缺席”。 基于这个主数据,我在右侧创建了另外6列,将相同的标题和输入IF语句说成= IF(B2 =“P”,“”,B $ 1),这样它就会显示会话如果用户不在该会话中,则为ID。

然后,我需要让所有用户在一列中缺少会话,并且需要用逗号分隔。 我无法解决的问题是如何在没有重复的逗号的情况下获取它,其中单元格是空白的。

有什么想法吗?

由于 詹姆斯

1 个答案:

答案 0 :(得分:1)

选择链接C Pearson Concatenation page处给出的StringConcat UDF。将代码从Function StringConcat(Sep As String, ParamArray Args()) As Variant复制到最后,并将其粘贴到VBA中的常规模块中。如果您不知道如何操作,请参阅this link which explains it all.

此UDF将忽略空格,并使用您选择的分隔符/分隔符连接任何给定范围。

您的解决方案就变成了

=StringConcat(", ",H2:M2)

如果不清楚,请告诉我。

替代解决方案:

或者,按如下方式修改公式。

在单元格H2中,输入以下公式

,而不是=IF(B2="P","",B$1)
=IF(B2="A",B$1&", ","")

将此公式复制到M2,并根据需要减少任意数量的行。 现在,在单元格N2中,输入以下公式:

=IF(LEN(H2&I2&J2&K2&L2&M2)>2,LEFT(H2&I2&J2&K2&L2&M2,LEN(H2&I2&J2&K2&L2&M2)-2),"")

希望这有帮助。