将多行合并为一行(复杂)

将多行合并为一行(复杂)

我有一个相当大的电子表格,需要将其与另一个电子表格合并(可能使用 xlookup),但首先,我想清理这个电子表格。

每个条目的行数各不相同(从 1 到 3 或可能是 4),并且每列中值的位置也是可变的。

我想将每个唯一条目(最左边的列)的这些行合并为一列。数据包括文本和数字。第二列只是第一列的重复,没有重复项。可以根据方便删除或使用其中任何一列。

我更新了我的数据以包含字母,但链接到 imgur 时出现错误。

示例数据

答案1

此解决方案涉及使用仅在 O365 或 Office 2021 中可用的 FILTER 函数。由于您仅标记了 Excel,因此此解决方案很可能不适合您。

请参阅下面的屏幕截图。

在 K2 和 L2

=UNIQUE(B2:B11)

在 M2

=FILTER(D$2:D$11,($B$2:$B$11=$K2)*(NOT(ISBLANK(D$2:D$11))))

将其沿着表格拖动。

在此处输入图片描述

当然,这是基于这样的假设:每个条目的每个垂直单元格块中只有一个单元格被填充,其他单元格为空白。如果事实并非如此,此解决方案将溢出数据并失败。


编辑1

根据以下评论进行修改。

使用 TEXTJOIN

=TEXTJOIN(",",TRUE,FILTER(D$2:D$11,($B$2:$B$11=$K2)*(NOT(ISBLANK(D$2:D$11)))))

参见下面的截图。参考条目 3

在此处输入图片描述

事实上,现在可以简单地创建这个公式。

=TEXTJOIN(",",TRUE,FILTER(D$2:D$11,$B$2:$B$11=$K2))

如果有空白,TEXTJOIN 将自动处理空白。

相关内容