2

我在表中有一个数据集。我试图展平一列,以便我可以看到所有值,分隔在一个单元格中。我已经用层次结构尝试过这个,但到目前为止还没有解决。示例数据集如下。

任何人都可以建议这是否可能?

╔════════╦════════╦═══════╦═════════════════╗
║ 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              ║
╚════════╩════════╩═══════╩═════════════════╝
4

1 回答 1

0

我在完全相同的问题上挣扎了很多次,但是我找不到一个简单的解决方案是 PowerPivot。它在数据库中当然是可行的(我用过的最简单的一个是Oracle / PostgreSQL中可用的LISTAGG 聚合函数——如果该选项可用的话)。Microsoft 的 SQL Server 的方法并没有那么草率,但工作方式几乎相同。

如果您仅限于 Excel,那么最快和最简单的方法是使用 VBA 宏,或者只是使用可用的扩展之一。我个人使用AbleBits的 Excel 附加包(没有从属关系)。

组合行功能完全符合您的要求。它查找唯一 ID(在您的示例中为案例 ID),然后如果有多个与其关联的记录(测试 ID),它将它们加入到由您选择的分隔符分隔的值数组中。

下面是逐屏记录的过程,显示了它如何转换数据。但是有一个缺点 -如果您的数据集足够大(想想数十万行),那么这将不是最快的解决方案,我也不确定这可以在多大程度上实现自动化。

数据源:

在此处输入图像描述

组合行屏幕:

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

这是最终结果:

在此处输入图像描述

于 2014-08-15T06:17:59.303 回答