【问题标题】:How to extract list of unique combinations from multiline array, where only every two consecutive rows are the basis for combinations?如何从多行数组中提取唯一组合列表,其中只有每两个连续行是组合的基础?
【发布时间】:2020-04-11 15:47:45
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: arrays sorting google-sheets unique combinations


    【解决方案1】:

    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 以创建频率计数。

    【讨论】:

    • 谢谢,这可行,除了 TEXTJOIN 的 50k 限制。按照您答案中的链接,我将所有三个查询中的标题计数设置为 9^99。但我仍然从 TEXTJOIN 收到 50k 限制错误。
    • @Morphan 编辑删除限制
    猜你喜欢
    • 1970-01-01
    • 2022-12-14
    • 2012-10-06
    • 1970-01-01
    • 2017-05-26
    • 2016-08-18
    • 1970-01-01
    • 1970-01-01
    • 2023-01-09
    相关资源
    最近更新 更多