首页 > 解决方案 > 如何从多行数组中提取唯一组合列表,其中只有每两个连续行是组合的基础?

问题描述

我试图从多行表中提取(并计算)每两行之间的所有唯一组合。

具有预期结果的示例

我通过创建中间表找到了一种方法:1)我使用 JOIN 在每个“城市”和“区域”行之间创建组合。2)我通过每 7 行输入一个 TRANSPOSE 函数(因为有 7 列)将结果重新排列为一列(根据以下 UNIQUE 函数的需要)。3)然后我在第三个表中使用 UNIQUE 和 COUNTIF 来获得最终结果。

在第一张纸上链接到带有数据和所需结果的示例,在第二张纸上链接我的解决方案:Google 表格文件

由于我的最终工作表将相当大(预计约 2000 行,40 列,约 4000 个唯一组合),我自己的解决方案的主要问题是手动步骤将城市/区域组合重新排列为一列作为唯一的准备功能。

有没有办法在我的解决方案没有中间步骤的情况下实现相同的最终结果?

标签: arrayssortinggoogle-sheetsuniquecombinations

解决方案


C11:

=ARRAYFORMULA(QUERY(TRANSPOSE(SPLIT(QUERY( TRANSPOSE( QUERY("☯"&QUERY(TO_TEXT(B1:H8),"skipping 2",0)&" "&QUERY(B2:H8,"skipping 2",0),,2^99)),,2^99),"☯"))," Select Col1, count(Col1) group by Col1",0))
  • 创建两个带有查询跳过的数组,一个包含引用,另一个包含区域

  • 使用查询标头加入带有分隔符的数组

  • SPLIT 和 TRANSPOSE 创建单列

  • QUERY 创建频率计数。


推荐阅读