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

按行权重排序同频次彩票号码的Excel公式优化需求

修改Excel公式实现频次+首次行号排序

原公式已经完成了号码频次统计和降序排序,但缺少相同频次下按首次出现行号升序的二次排序逻辑,以下是修改后的公式及说明:

=LET(
    data, A1:F27,
    flatten, TEXTSPLIT(TEXTJOIN(";",,data),,";"),
    numUq, UNIQUE(flatten),
    -- 获取每个唯一号码的出现频次
    freq, DROP(FREQUENCY(XMATCH(flatten, numUq), UNIQUE(XMATCH(flatten, numUq))), -1),
    -- 获取每个唯一号码首次出现的行号(取最小行号)
    firstRow, MAP(numUq, LAMBDA(x, MIN(ROW(data)*(data=x)))),
    -- 按「频次降序→首次行号升序」排序
    SORT(HSTACK(numUq, freq, firstRow), {2,3}, {-1,1})
)

关键修改点:

  • 新增data变量统一引用数据区域,方便后续维护
  • 新增firstRow变量:通过MAP遍历每个唯一号码,用ROW(data)*(data=x)标记出该号码出现的所有行号,再取最小值得到首次出现的行号
  • 修改SORT的排序参数:{2,3}指定按第2列(频次)和第3列(首次行号)排序,{-1,1}对应频次降序、行号升序的规则

如果不需要保留首次行号列,可以在最后套一层DROP去掉第3列:

=LET(
    data, A1:F27,
    flatten, TEXTSPLIT(TEXTJOIN(";",,data),,";"),
    numUq, UNIQUE(flatten),
    freq, DROP(FREQUENCY(XMATCH(flatten, numUq), UNIQUE(XMATCH(flatten, numUq))), -1),
    firstRow, MAP(numUq, LAMBDA(x, MIN(ROW(data)*(data=x)))),
    DROP(SORT(HSTACK(numUq, freq, firstRow), {2,3}, {-1,1}),,3)
)

这样就能实现示例中13和35频次相同时,13因首次出现行号更靠前而排在前面的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 04:30:52