我的 Excel 工作表中有一些数据,如下所示:
身份证 | 团体 |
---|---|
A | 1 |
B | 1 |
B | 2 |
C | 2 |
D | 3 |
每个组都表示该组中的所有 ID 都相互关联。请注意,尽管 A 和 C 位于不同的组中,但通过 B,A 和 C 彼此相关。 A 和 C 通过 B “菊花链”在一起。我想在此数据集中查找所有组,考虑菊花链。理想的输出表如下所示:
身份证 | 超级组 |
---|---|
A | 1,2 |
B | 1,2 |
C | 1,2 |
D | 3 |
我尝试通过电源查询来解决这个问题,但我只能以我最少的经验解决这个问题。从我在网上可以获得的信息来看,我应该能够通过一些巧妙的加入来获得我想要的结果,但我无法理解它的逻辑。
既然你只是问逻辑,所以我只提出一种方法,我相信你可以找到正确的Excel公式或Power Query来自己实现。
假设组数据如下所示:
第一步是按组编号对 ID 进行分组:
我在这里使用的公式是
FILTER()
和 TRANSPOSE()
下一步是找出不同组对组合的共同 ID。
下表表示B同时属于Group1和Group2,F同时属于Group2和Group3,E、I同时属于Group2和Group4,C同时属于Group3和Group4。
因此以下组对之间具有菊花链: (1,2) (2,3) (2,4), (3,4).
我用来找出两组之间共同元素的公式是这样的: 从 Excel 中的两个列表中提取公共值
最后一步是列出之间具有“菊花链”的组对的所有 GroupId。
例如,由于 (1,2) 之间有菊花链,我们可以使用
FILTER()
或 XLOOKUP()
找出 Group1 或 Group2 中的所有 GroupId。