Excel技术咨询:无需嵌套IF,基于双字段计算Risk Score
搞定Excel无嵌套IF计算风险评分的实用方案
嘿,我来帮你解决这个问题!不用嵌套IF完全能实现,咱们先理清楚逻辑,再给你几个好用的方法:
首先得先明确一个通用的评分规则(你可以根据实际需求调整):
- 把“Impact of Risk”的「高/中/低」对应成权重:高=3,中=2,低=1
- 最终“Risk Score” = 风险可能性(转成小数) × 影响权重 × 100(这样结果落在0-300区间,等级区分更清晰)
方法1:用LOOKUP直接搞定,无需辅助表
这个方法最简洁,不用额外建表,直接写公式就行:
=LOOKUP(B2,{"低","中","高"},{1,2,3}) * (A2/100) * 100
举个例子:如果A2是70%(风险可能性),B2是「高」,那计算出来就是70×3=210分。
B2是你的“Impact of Risk”单元格,A2是“Likelihood of Risk”单元格LOOKUP直接把文本型的「低/中/高」映射成对应权重,完全替代嵌套IF的繁琐逻辑
方法2:辅助表+VLOOKUP,方便后续改规则
如果以后需要经常调整评分权重,这个方法更灵活:
- 找个空白区域(比如D、E列)建个映射表:
Impact Weight 低 1 中 2 高 3 - 在Risk Score单元格输入公式:
=VLOOKUP(B2,$D$2:$E$4,2,FALSE) * (A2/100) * 100
- 加
$是固定映射表的区域,下拉公式时不会跑偏 - 以后要改权重直接改辅助表就行,不用动公式,维护起来超方便
方法3:用XLOOKUP(Excel 365/2021及以上版本)
如果你的Excel是新版本,XLOOKUP比VLOOKUP更顺手,不用纠结区域顺序:
=XLOOKUP(B2,{"低","中","高"},{1,2,3}) * (A2/100) * 100
直接指定查找值和对应的返回值数组,逻辑更直观
对了,你提到觉得Index Match可能不太适用,其实它也能实现(比如=INDEX({1,2,3},MATCH(B2,{"低","中","高"},0))),但上面的几种方法在可读性和易用性上会更优一些。
内容的提问来源于stack exchange,提问作者user3314445
相关产品推荐
相关产品推荐

