2

我已经搜索了该站点,但似乎看不到任何适合我的问题的内容。

我有 7 列

用户 ID 会话 1 会话 2 会话 3 会话 4 会话 5 会话 6

在会话 1-6 中,将有一个 P 或 A 来表示用户是“在场”还是“不在场”。基于此主数据,我在其右侧创建了另外 6 个列,它们将具有相同的标题并输入 IF 语句来表示 =IF(B2="P","",B$1) 以便显示会话如果用户不在该会话中,则为 ID。

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

有任何想法吗?

谢谢詹姆斯

4

1 回答 1

1

获取链接C Pearson Concatenation page中给出的 StringConcat UDF 。从头到尾复制代码Function StringConcat(Sep As String, ParamArray Args()) As Variant,并将其粘贴到 VBA 中的通用模块中。如果您不知道如何执行此操作,请参阅此链接,该链接解释了这一切。

此 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),"")

希望这可以帮助。

于 2012-04-23T12:53:57.337 回答