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

Google Sheets下拉框值计算总分:IF函数实现及优化方案咨询

Google Sheets 实现等级分值相乘计算

一、用IF函数实现的公式

要对应Low=1、Medium=2、High=3的规则,可以通过嵌套IF分别判断两列等级后相乘:

=IF(B2="Low",1,IF(B2="Medium",2,IF(B2="High",3,0)))*IF(C2="Low",1,IF(C2="Medium",2,IF(C2="High",3,0)))
  • 每个IF嵌套依次匹配等级,匹配不到时返回0(避免空值导致计算错误)
  • 将公式放在D2单元格,下拉填充即可批量计算每行总分

二、修正你原有的SWITCH公式

注意你提供的SWITCH公式里等级和分值对应反了(原公式把High对应1),符合需求的正确写法是:

=(SWITCH(B2, "Low",1, "Medium",2, "High",3,,0))*(SWITCH(C2, "Low",1, "Medium",2, "High",3,,0))

三、更优解决方案

1. 用MATCH函数简化公式

利用等级的固定顺序,直接匹配数组中的位置得到对应分值,公式更简洁:

=MATCH(B2,{"Low","Medium","High"},0)*MATCH(C2,{"Low","Medium","High"},0)
  • MATCH(B2,{"Low","Medium","High"},0)会返回B2内容在数组中的位置,恰好对应需求的分值
  • 无需嵌套,可读性和维护性更强

2. 辅助列+VLOOKUP(适合等级/分值需频繁修改的场景)

  1. 在表格空白区域建立映射表(比如E1:F3):
EF
Low1
Medium2
High3
  1. 使用VLOOKUP匹配分值并相乘:
=VLOOKUP(B2,E:F,2,FALSE)*VLOOKUP(C2,E:F,2,FALSE)
  • 后续调整分值或新增等级时,直接修改映射表即可,无需改动公式

3. 数组公式批量计算(无需下拉填充)

如果数据量较大,用ARRAYFORMULA一次性完成所有行的计算:

=ARRAYFORMULA(IF(B2:B="",,MATCH(B2:B,{"Low","Medium","High"},0)*MATCH(C2:C,{"Low","Medium","High"},0)))
  • 公式放在D2后,会自动对B2:B、C2:C范围内的所有行计算总分,空行自动留空

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 13:12:02