You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Sheets中计算数据集2-5长度组合的出现频率

在Google Sheets中统计同行多列不同长度数值组合的频率

以下是针对5列数据集,分别生成二元、三元、四元、五元组合频率表的简便实现方案,所有方案基于Google Sheets内置函数,无需脚本。

假设你的数据集范围为B2:F16(表头在B1:F1,共15行数据),若数据范围不同,只需修改公式中的data参数即可。


1. 二元组合频率表

统计所有同行内无序数对的出现次数(同一行内的数对仅算一次,不区分顺序)

公式

=LET(
  data, B2:F16,
  allPairs, FLATTEN(BYROW(data, LAMBDA(row, 
    LET(
      arr, row,
      pair1, TEXTJOIN("|", TRUE, SORT(CHOOSECOLS(arr,1,2))),
      pair2, TEXTJOIN("|", TRUE, SORT(CHOOSECOLS(arr,1,3))),
      pair3, TEXTJOIN("|", TRUE, SORT(CHOOSECOLS(arr,1,4))),
      pair4, TEXTJOIN("|", TRUE, SORT(CHOOSECOLS(arr,1,5))),
      pair5, TEXTJOIN("|", TRUE, SORT(CHOOSECOLS(arr,2,3))),
      pair6, TEXTJOIN("|", TRUE, SORT(CHOOSECOLS(arr,2,4))),
      pair7, TEXTJOIN("|", TRUE, SORT(CHOOSECOLS(arr,2,5))),
      pair8, TEXTJOIN("|", TRUE, SORT(CHOOSECOLS(arr,3,4))),
      pair9, TEXTJOIN("|", TRUE, SORT(CHOOSECOLS(arr,3,5))),
      pair10, TEXTJOIN("|", TRUE, SORT(CHOOSECOLS(arr,4,5))),
      {pair1; pair2; pair3; pair4; pair5; pair6; pair7; pair8; pair9; pair10}
    )
  ))),
  uniquePairs, UNIQUE(allPairs),
  counts, BYROW(uniquePairs, LAMBDA(pair, COUNTIF(allPairs, pair))),
  splitPairs, BYROW(uniquePairs, LAMBDA(pair, SPLIT(pair, "|"))),
  HSTACK(splitPairs, counts)
)

说明

  • 用BYROW遍历每行,生成该行所有10种二元组合
  • SORT确保数对无序(如10|17和17|10被视为同一组合)
  • TEXTJOIN将组合转为字符串便于统一处理,最后拆分回多列并拼接频率统计结果
  • 手动在公式上方插入表头:Num_1、Num_2、Frequency

2. 三元组合频率表

统计同行内所有三元组合的出现次数

公式

=LET(
  data, B2:F16,
  allCombs, FLATTEN(BYROW(data, LAMBDA(row, 
    LET(
      arr, row,
      combs, {
        TEXTJOIN("|", TRUE, CHOOSECOLS(arr,1,2,3)),
        TEXTJOIN("|", TRUE, CHOOSECOLS(arr,1,2,4)),
        TEXTJOIN("|", TRUE, CHOOSECOLS(arr,1,2,5)),
        TEXTJOIN("|", TRUE, CHOOSECOLS(arr,1,3,4)),
        TEXTJOIN("|", TRUE, CHOOSECOLS(arr,1,3,5)),
        TEXTJOIN("|", TRUE, CHOOSECOLS(arr,1,4,5)),
        TEXTJOIN("|", TRUE, CHOOSECOLS(arr,2,3,4)),
        TEXTJOIN("|", TRUE, CHOOSECOLS(arr,2,3,5)),
        TEXTJOIN("|", TRUE, CHOOSECOLS(arr,2,4,5)),
        TEXTJOIN("|", TRUE, CHOOSECOLS(arr,3,4,5))
      },
      combs
    )
  ))),
  uniqueCombs, UNIQUE(allCombs),
  counts, BYROW(uniqueCombs, LAMBDA(comb, COUNTIF(allCombs, comb))),
  splitCombs, BYROW(uniqueCombs, LAMBDA(comb, SPLIT(comb, "|"))),
  HSTACK(splitCombs, counts)
)

说明

  • 遍历每行生成所有10种三元组合,用TEXTJOIN统一格式
  • 提取唯一组合后统计出现次数,拆分回多列并拼接结果
  • 手动添加表头:Num_1、Num_2、Num_3、Frequency

3. 四元组合频率表

统计同行内所有四元组合的出现次数

公式

=LET(
  data, B2:F16,
  allCombs, FLATTEN(BYROW(data, LAMBDA(row, 
    LET(
      arr, row,
      combs, {
        TEXTJOIN("|", TRUE, CHOOSECOLS(arr,1,2,3,4)),
        TEXTJOIN("|", TRUE, CHOOSECOLS(arr,1,2,3,5)),
        TEXTJOIN("|", TRUE, CHOOSECOLS(arr,1,2,4,5)),
        TEXTJOIN("|", TRUE, CHOOSECOLS(arr,1,3,4,5)),
        TEXTJOIN("|", TRUE, CHOOSECOLS(arr,2,3,4,5))
      },
      combs
    )
  ))),
  uniqueCombs, UNIQUE(allCombs),
  counts, BYROW(uniqueCombs, LAMBDA(comb, COUNTIF(allCombs, comb))),
  splitCombs, BYROW(uniqueCombs, LAMBDA(comb, SPLIT(comb, "|"))),
  HSTACK(splitCombs, counts)
)

说明

  • 每行生成5种四元组合,处理逻辑与三元组合一致
  • 手动添加表头:Num_1、Num_2、Num_3、Num_4、Frequency

4. 五元组合频率表

统计完整行(五元组合)的出现次数

公式

=QUERY(B2:F16, "select B,C,D,E,F, count(B) group by B,C,D,E,F order by count(B) desc label count(B)'Frequency'", 0)

说明

  • 用QUERY函数直接分组统计相同行的出现次数,按频率降序排列
  • 公式自动生成表头,无需手动添加

内容的提问来源于stack exchange,提问作者Zee Kay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 08:30:54