Excel 2016无SWITCH函数时将评级文本转数字的方案求助
解决方案:Excel 2016替代SWITCH函数实现文本转数字
别担心,Excel 2016虽然没有SWITCH函数,但咱们有几个实用的替代方案,完全能帮你把High/Medium/Poor转换成对应的数字3/2/1,而且都兼容你的版本。
方案1:嵌套IF函数(最通用,无需额外设置)
这是最基础的方法,所有Excel版本都支持,逻辑清晰易懂:
基于现有F2单元格的公式:
=IF(F2="High",3,IF(F2="Medium",2,IF(F2="Poor",1,"")))
- 逻辑:先判断F2是否为
High,是则返回3;否则判断是否为Medium,返回2;再否则判断是否为Poor,返回1;如果都不匹配,返回空文本(你可以改成0或"无效值"按需调整)。
合并VLOOKUP与IF的公式(减少单元格依赖)
如果你不想单独用F2存VLOOKUP结果,可以直接把两个公式合并,一步到位:
=IF(VLOOKUP("Quality",INDIRECT("'PURCHASING'!"&V2),2,FALSE)="High",3,IF(VLOOKUP("Quality",INDIRECT("'PURCHASING'!"&V2),2,FALSE)="Medium",2,IF(VLOOKUP("Quality",INDIRECT("'PURCHASING'!"&V2),2,FALSE)="Poor",1,"")))
- 注意:这个公式会重复执行3次VLOOKUP,如果你处理的是大数据量,可能会稍慢,此时建议还是先用F2存VLOOKUP结果再用第一个公式。
方案2:LOOKUP函数(更简洁,适合固定顺序的匹配)
利用LOOKUP的向量匹配功能,写法更简洁:
=LOOKUP(F2,{"Poor","Medium","High"},{1,2,3})
- 关键注意点:
{"Poor","Medium","High"}这个查找范围必须按字母升序排列(因为LOOKUP默认近似匹配,升序才能精准对应),如果你的文本顺序不符合,这个方案可能失效。 - 好处:比嵌套IF少写很多代码,看起来更清爽。
方案3:CHOOSE+MATCH组合(灵活无顺序要求)
这个组合既简洁又不需要考虑文本顺序,精准匹配更可靠:
=CHOOSE(MATCH(F2,{"High","Medium","Poor"},0),3,2,1)
- 逻辑:
MATCH(F2,{"High","Medium","Poor"},0)会返回F2在数组中的位置(比如High返回1,Medium返回2),然后CHOOSE根据这个位置返回对应的数字(1对应3,2对应2,3对应1)。 - 如果你想处理无效值(比如F2出现其他文本),可以用
IFERROR包裹:
=IFERROR(CHOOSE(MATCH(F2,{"High","Medium","Poor"},0),3,2,1),"无效值")
内容的提问来源于stack exchange,提问作者J. Doe
相关产品推荐
相关产品推荐

