Excel中如何按数据类别匹配结果列计算得分(返回0/1/2)?
解决Excel多类别+结果匹配得分的问题
嘿,我来帮你搞定这个得分计算的难题~ 你之前用VLOOKUP不好使,是因为它默认只能基于单一条件匹配第一列的首个结果,没法同时兼顾「类别」和「结果值」两个维度的匹配需求。下面给你几个实用的方案,按需选择就行:
方案1:兼容旧版Excel的多条件匹配(INDEX+MATCH)
这是最通用的写法,不管你用的是哪个Excel版本基本都能生效。假设你的得分规则表是这样的:
- $A$2:$A$100:存放所有类别(比如「媒体」「板块A」「板块B」等)
- $B$2:$B$100:对应类别的结果值(比如「通过」「待审核」「不通过」)
- $C$2:$C$100:对应的得分(0/1/2)
现在要在目标单元格(比如F2)计算当前行类别(D2)+结果(E2)的得分,公式如下:
=IFERROR(INDEX($C$2:$C$100, MATCH(1, ($A$2:$A$100=D2)*($B$2:$B$100=E2), 0)), 0)
注意事项:
- 如果你用的是Excel 2019及更早版本,输入完公式后需要按 Ctrl+Shift+Enter 触发数组计算(新版本直接回车就行)
IFERROR是用来处理没有匹配到的情况,这里默认返回0,你可以改成你需要的提示或数值- 一定要用绝对引用($符号)锁定规则表的区域,不然下拉公式时区域会跑偏
方案2:Excel 365/2021+专属的简洁写法(XLOOKUP)
如果你用的是新版本Excel,XLOOKUP的多条件写法会更直观,不需要手动触发数组:
=XLOOKUP(1, ($A$2:$A$100=D2)*($B$2:$B$100=E2), $C$2:$C$100, 0)
最后一个参数0是没有匹配到时候的默认值,同样可以自定义。
方案3:规则简单时用IFS嵌套(适合类别/结果少的场景)
如果你的得分规则不多(比如只有2-3个类别,每个类别下的结果对应得分很明确),也可以用IFS直接写规则,不用单独做得分规则表:
=IFS( D2="媒体" && E2="通过", 2, D2="媒体" && E2="待审核", 1, D2="媒体" && E2="不通过", 0, D2="板块A" && E2="通过", 1, D2="板块A" && E2="待审核", 0, TRUE, 0 # 所有未匹配的情况默认返回0 )
这种写法的好处是不用维护额外的规则表,但类别/结果多了的话公式会变得很长,不好维护。
内容的提问来源于stack exchange,提问作者Logannn96
相关产品推荐
相关产品推荐

