excel做多条件判断,最顺手的常规操作是先用 and 或者 or 把多个条件合并成真假结果,再传给 if 输出对应文字。如果要分的档位特别多,直接用 ifs 写起来会清爽很多。这次操作演示用的是microsoft 365版本的excel,如果你用的是wps或者旧版excel,先确认下软件支不支持 ifs 这类函数再动手。
接下来我们用积分校验、成绩分档、订单查询三个常见场景一步步讲:先学怎么判断两个条件同时成立,再做分数自动分级,最后把逻辑延伸到多条件查找、数据汇总。要是你输入公式后发现逗号识别报错,一般是系统区域设置的分隔符不一样,把公式里的逗号全换成分号就能解决。
第一步:用 IF 和 AND 判断同时满足
先点选要出结果的单元格,输入 =IF(AND(B2>20,B2。公式里的 <code>AND(B2>20,B2 会先校验积分是不是大于20同时小于30,两个条件全对的话,<code>IF 就返回“达标”,但凡有一个条件不满足就返回“不达标”。输完下拉填充整列,每行的结果都会自动匹配对应行的积分数据。

第二步:用 IFS 处理多档条件
要是需要把分数拆成A、B、C、D、F好几个等级,一层层嵌套IF写出来又乱又难排查错误。直接在等级列输入 =IFS(B2=90,"A"),再下拉填充就行。IFS 的运行逻辑是从左到右挨个校验条件,碰到第一个符合的就直接返回对应结果,不用往后跑,所以写的时候分数区间必须按从低到高或者从高到低排整齐,别乱序。

第三步:把判断标准放到表格里
等级规则后续大概率会调整,直接把数值写死在公式里,后面改起来特别麻烦。你可以把分数阈值和对应等级单独放在旁边的参考表里,用绝对引用把参考区域锁死,比如 =IFS(B2=$E,$F)。下拉填充的时候,代表当前行分数的B2会跟着行号自动变,$E、$F 这类带$的参考单元格位置完全不会偏移。

第四步:把多条件判断扩展到查询和汇总
多条件判断不止能用来输出文字结果,查价、核订单、统计汇总数据都能用。比如要同时匹配商品、尺码、颜色三个条件找对应售价,直接写 =SUMIFS(Table1[Price],Table1[Item],H5,Table1[Size],H6,Table1[Color],H7) 就行。它会先把完全符合三个条件的记录全筛出来,再返回对应的价格或者总金额。如果只是想确认有没有这条记录,换成 =IF(COUNTIFS(Table1[Item],H5,Table1[Size],H6,Table1[Color],H7)>0,"有记录","未找到") 就可以。

常用函数语法
| 函数 | 语法 | 适合场景 |
|---|---|---|
IF |
=IF(logical_test,value_if_true,value_if_false) |
一个判断结果对应两个输出。 |
AND |
=AND(logical1,[logical2],...) |
多个条件必须全部成立。 |
OR |
=OR(logical1,[logical2],...) |
多个条件满足任意一个即可。 |
IFS |
=IFS(logical_test1,value_if_true1,[logical_test2,value_if_true2],...) |
按多个条件分档输出结果。 |
COUNTIFS |
=COUNTIFS(criteria_range1,criteria1,[criteria_range2,criteria2],...) |
判断同时满足多条件的记录有几条。 |
SUMIFS |
=SUMIFS(sum_range,criteria_range1,criteria1,[criteria_range2,criteria2],...) |
按多个条件汇总金额、数量、价格。 |
参数怎么填
| 参数 | 说明 | 填写要点 |
|---|---|---|
logical_test |
要判断的条件。 | 可以写 B2>=60、A2="华东"、AND(B2>20,C2="已付款")。 |
value_if_true |
条件成立时返回的内容。 | 返回文字要加英文双引号,返回数字不用加。 |
value_if_false |
条件不成立时返回的内容。 | 可以继续嵌套 IF,但分档多时优先考虑 IFS。 |
criteria_range |
参与条件判断的区域。 |
COUNTIFS、SUMIFS 里的多个条件区域大小必须一致。 |
criteria |
具体条件。 | 文本条件用引号;与单元格拼接比较符时写成 ">="&H2。 |
sum_range |
需要汇总的数值区域。 | 只在 SUMIFS 中使用,通常是金额、数量、价格列。 |
容易出错的地方
几个高频出错点要注意:第一,返回的文本内容忘了加英文双引号,公式直接报错。第二,IFS 的条件顺序写乱,前面覆盖范围大的条件先被命中,后面细分的条件永远跑不到。第三,下拉填充的时候参考区域没加 $ 锁死,规则跟着行号乱跑,算出来的结果看着像随机出的。第四,COUNTIFS 和 SUMIFS 的多个条件区域选的行数不一样,很容易返回 #VALUE!。
给大家几个直接就能套用的扩展场景:判断销售额大于等于 10000 且回款状态为“已回款”,写 =IF(AND(B2>=10000,C2="已回款"),"发奖金","暂不发");判断客户等级是否满足任意一个重点条件,写 =IF(OR(D2="VIP",E2>=5),"重点跟进","普通跟进");判断订单是否重复存在,写 =IF(COUNTIFS(A:A,A2,B:B,B2)>1,"重复","唯一")。所有这类公式的核心逻辑都一样,先把所有条件转换成真/假的布尔值,再对应返回你要的结果就行。











