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

Excel:行数未知的列中如何仅对特定文本使用AND函数实现条件判断?

问题描述

需要在另一工作表中创建公式,对Sheet1的数据进行判断,需同时满足以下前提条件:

  • A列等于"User1"
  • C列以"01"开头

在满足前提的基础上,根据B列的值返回对应结果:

  • B列为"Urlaub" → 返回"CM"
  • B列为"Krankenstand" → 返回"CO"
  • B列为"Sonstige" → 返回"CP"
  • 不满足前提条件或B列是其他值时,忽略(返回空值)

用户尝试过的公式存在逻辑问题,无法正确过滤其他用户和B列的非指定值,尝试的公式如下:

=IF(AND('Sheet1'!A:A="User1",LEFT('Sheet1'!C:C,2)="01",'Sheet1'!B:B="Urlaub"),"CM",
IF(AND('Sheet1'!A:A="User1",LEFT('Sheet1'!C:C,2)="01",'Sheet1'!B2="Krankenstand"),"CO","CP"))
解决方案

适用于Excel 365/2021(支持动态数组)

使用SWITCH函数简化多条件判断,配合IF过滤前提条件,公式如下:

=IF(AND('Sheet1'!A:A="User1",LEFT('Sheet1'!C:C,2)="01"),
SWITCH('Sheet1'!B:B,"Urlaub","CM","Krankenstand","CO","Sonstige","CP",""),"")

逻辑说明:

  1. 先通过AND校验是否满足A列是User1且C列以"01"开头的核心前提
  2. 满足前提时,用SWITCH匹配B列的三个指定值,返回对应结果;B列是其他值时返回空值
  3. 不满足前提时直接返回空值

适用于旧版Excel(不支持动态数组)

需逐行输入公式(以目标工作表第2行为例,完成后下拉填充至所有行):

=IF(AND('Sheet1'!A2="User1",LEFT('Sheet1'!C2,2)="01"),
IF('Sheet1'!B2="Urlaub","CM",IF('Sheet1'!B2="Krankenstand","CO",IF('Sheet1'!B2="Sonstige","CP",""))),"")

逻辑说明:

  1. 逐行判断当前行是否符合前提条件
  2. 符合前提时,通过嵌套IF依次匹配B列的三个指定值,返回对应结果;其他情况返回空值
  3. 不符合前提时返回空值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 12:25:16