如何在 Excel 中将数据组连接成行

如何在 Excel 中将数据组连接成行

我有一张表,其中一列是我想要保留的值,另一列是我想要将每个重复的行值连接成一个相应的列(如果有人有更好的方法来解释它,请编辑它)

下表解释了我要做的事情。有没有办法使用公式和可能的中间表来做到这一点。

我可以使用 sum if 来计算每个值的总数,但我想知道是否有一个 concat if。

excel 数据表

答案1

如果您的初始表是Table3,并且标签指示没有对 Excel 版本的限制,则输入到单个单元格中的此公式将产生您想要的结果:

=LET(
    v, SORT(
        UNIQUE(Table3[Value])
    ),
    g, Table3[Group],
    HSTACK(
        v,
        BYROW(
            v,
            LAMBDA(vals,
                TEXTJOIN(
                    ",",
                    ,
                    SORT(
                        FILTER(
                            g,
                            Table3[Value] =
                                vals
                        )
                    )
                )
            )
        )
    )
)

在此处输入图片描述

您需要查看各种功能的帮助,以便更好地理解其工作原理。但基本上,

  • 创建唯一的、排序的值列表
  • 过滤表格中的每个值
    • 将每个值的组连接起来(使用 TextJoin)

答案2

评论中建议的答案Destroy666包括一个“老派”答案和一个“现代”答案(使用 Power Query)。下面是一个介于两者之间的答案,现代功能,但不是 Power Query(根据数据的大小以及您需要处理数据的频率,这可能会过度使用)。

以下公式适用于您的样本数据的范围。请更改范围以适应:

对于要分组的值:

=SORT( UNIQUE( A1:A13 ))

对于分组:

=TEXTJOIN( ", ", FALSE, SORT( FILTER( $B$1:$B$13, $A$1:$A$13 = $D2 )))

复制并粘贴分组列。

相关内容