我在表格中有一个数据集。我试图压扁一列,以便我可以看到所有值,在一个单元格中分隔。我用层次结构尝试了这个,但到目前为止还没能解决。样本数据集如下所示。
有人可以建议这是否可行?
╔════════╦════════╦═══════╦═════════════════╗
║ CaseID ║ TestID ║ Batch ║ Flattened List ║
╠════════╬════════╬═══════╬═════════════════╣
║ A0001 ║ T1 ║ A ║ T1| T1 | T2 ║
║ A0001 ║ T1 ║ B ║ T1| T1 | T2 ║
║ A0001 ║ T2 ║ A ║ T1| T1 | T2 ║
║ A0002 ║ T1 ║ A ║ T1 | T1 ║
║ A0002 ║ T1 ║ B ║ T1 | T1 ║
║ A0003 ║ T1 ║ A ║ T1 ║
║ A0004 ║ T4 ║ A ║ T4 ║
╚════════╩════════╩═══════╩═════════════════╝
答案 0 :(得分:0)
我在同样的问题上已经多次努力,但是我无法找到一个简单的解决方案是PowerPivot。 在数据库中肯定是可行的(我用过的最简单的是 Oracle / PostgreSQL 中提供的LISTAGG aggreage function - 如果该选项可用)。 Microsoft's SQL Server's approach并不是那么冷静,但工作方式大致相同。
如果您仅限于Excel,那么最快速,最简单的方法是使用VBA宏,或者只使用其中一个可用扩展。我个人使用来自AbleBits的Excel附加软件包(没有任何从属关系)。
组合行功能完全符合您的要求。它查找唯一ID(示例中为Case ID),然后如果有多个与之关联的记录(Test ID),它会将它们连接成一个由您选择的分隔符分隔的值数组。
下面是逐屏记录的过程,显示了如何转换数据。但是有一个缺点 - 如果您的数据集足够大(想想数百行),那么这将不是最快的解决方案,我不确定这可以自动化到什么程度。强>
数据来源:
合并行屏幕:
这是最终结果: