答案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 将自动处理空白。