非Office365环境下如何用单个公式实现多列排名求和再总排名?
单公式实现多列排名求和后总排名(非Office365适用)
需求说明
之前找过类似问题的解法,但针对非Office365用户的方案都不管用。现有数据集包含区域、PTQ、增长率(% Growth)、**增长额($ Growth)**列,需要:
- 对PTQ、增长率、增长额三列分别独立降序排名(数值越高排名越靠前)
- 将每个区域的三个排名值相加
- 对求和结果进行降序排名(总和越小,总实力排名越靠前)
- 用单个公式完成,避免重复操作,且三列排名权重完全均等
数据集
| 区域 | PTQ | 增长率 | 增长额 |
|---|---|---|---|
| TR ARIZONA | 103.0 | 17.5 | 201330 |
| TR IDAHO UTAH | 75.5 | -6.3 | -69976 |
| TR LA HAWAII | 99.4 | 19.2 | 194840 |
| TR LA NORTH | 125.0 | 32.7 | 241231 |
| TR NORTHERN CALIFORNIA | 102.3 | 26.2 | 308824 |
| TR NORTHWEST | 91.1 | -0.6 | -4801 |
| TR SAN FRANSISCO | 76.9 | -16.7 | -158387 |
| TR SOUTHERN CALIFORNIA | 106.9 | 30.8 | 495722 |
| TR TUCSON | 100.3 | 7.6 | 34888 |
解决方案公式
假设数据在A2:D10区域,在总排名列(比如E2单元格)输入以下公式,下拉填充到所有行即可(非Office365版本直接回车,无需数组快捷键):
=SUMPRODUCT(--((RANK($B$2:$B$10,$B$2:$B$10,0)+RANK($C$2:$C$10,$C$2:$C$10,0)+RANK($D$2:$D$10,$D$2:$D$10,0))<(RANK(B2,$B$2:$B$10,0)+RANK(C2,$C$2:$C$10,0)+RANK(D2,$D$2:$D$10,0))))+1
公式解释
- 单列独立排名:
RANK(B2,$B$2:$B$10,0)对PTQ列做降序排名(0代表数值越高排名越靠前),同理处理增长率和增长额列 - 排名求和:把当前区域的三个单列排名直接相加,得到该区域的排名总分
- 总排名计算:用
SUMPRODUCT统计所有区域的排名总分中,比当前区域总分小的数量,加1后就是总实力排名(总分越小,排名越靠前) - 权重均等:三列排名无额外加权,直接相加,确保权重完全一致
验证结果
按公式计算后,各区域总排名如下:
- TR LA NORTH(排名总和1+1+2=4)
- TR SOUTHERN CALIFORNIA(排名总和2+2+1=5)
- TR NORTHERN CALIFORNIA(排名总和3+3+3=9)
- TR ARIZONA(排名总和4+4+4=12)
- TR LA HAWAII(排名总和5+5+5=15)
- TR TUCSON(排名总和6+6+6=18)
- TR NORTHWEST(排名总和7+7+7=21)
- TR IDAHO UTAH(排名总和8+8+8=24)
- TR SAN FRANSISCO(排名总和9+9+9=27)
内容的提问来源于stack exchange,提问作者Aliyu Umar
相关产品推荐
相关产品推荐

