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

基于筛选日期的排名求助:从A20开始排名并处理Prob列重复值

Excel 按日期筛选并实现同值递增排名的解决方案

核心公式(适用于所有Excel版本)

假设:

  • 目标筛选日期在C2单元格
  • 日期数据列是C列(数据从C20开始)
  • "Prob"数值列是D列(数据从D20开始)
  • 数据范围到第100行(可根据实际数据量修改行号)

在A20单元格输入以下公式,下拉填充至所有需要排名的行:

=IF(C20=$C$2, SUMPRODUCT(($C$20:$C$100=$C$2)*($D$20:$D$100>$D20)) + COUNTIFS($C$20:C19, $C$2, $D$20:D19, $D20) + 1, "")

公式拆解

  • IF(C20=$C$2, ..., ""):仅当当前行日期与C2的目标日期匹配时计算排名,不匹配的行留空
  • SUMPRODUCT(...):统计所有匹配目标日期的行中,Prob值大于当前行的数量,作为排名的基础基数
  • COUNTIFS(...):统计当前行之前(且匹配目标日期)出现过的相同Prob值的数量,确保同值排名依次递增
  • 末尾+1:让排名从1开始计数

示例效果

以目标日期2024-05-20为例,数据表现如下:

排名(A列)日期(C列)Prob(D列)
12024-05-2080
22024-05-2080
2024-05-1990
32024-05-2070

匹配日期的行正常生成排名,相同Prob值的排名依次递增,不匹配日期的行自动留空。

Excel 365/2021 动态数组简化公式

如果使用支持动态数组的Excel版本,可直接在A20输入以下公式,无需手动下拉填充,公式会自动扩展到所有行:

=IF(C20:C100=$C$2, SUMPRODUCT((C20:C100=$C$2)*(D20:C100>D20:C100)) + BYROW(ROW(C20:C100), LAMBDA(r, COUNTIFS(C20:INDEX(C:C,r-1), $C$2, D20:INDEX(D:D,r-1), INDEX(D:D,r)))) + 1, "")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 01:05:26