我搜索了网站,但似乎看不到任何符合我问题的内容。
我有7列
用户ID SESSION1 会议2 会议3 session4 session5 届会议6
在会话1-6中,将有一个P或A来表示用户是“出席”还是“缺席”。 基于这个主数据,我在右侧创建了另外6列,将相同的标题和输入IF语句说成= IF(B2 =“P”,“”,B $ 1),这样它就会显示会话如果用户不在该会话中,则为ID。
然后,我需要让所有用户在一列中缺少会话,并且需要用逗号分隔。 我无法解决的问题是如何在没有重复的逗号的情况下获取它,其中单元格是空白的。
有什么想法吗?
由于 詹姆斯
答案 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),"")
希望这有帮助。