如何将SQL中的CASE WHEN判断逻辑转换为Excel公式
Excel实现指定归属判断逻辑的方法
核心判断规则
先修正原SQL代码漏写单引号的语法笔误,实际判定规则为:满足以下任意1条即标记为Yes,否则标记为No:
- COL_Category 取值为'A'或'B'
- COL_Name 包含字符串"Apple"
- COL_Name 包含字符串"Ball"
可直接套用的Excel公式
假设表格表头在第1行,COL_Category对应A列,COL_Name对应B列,结果填在C列,在第一条数据(第2行)对应的C2单元格输入以下公式:
=IF(OR(A2="A",A2="B",ISNUMBER(SEARCH("Apple",B2)),ISNUMBER(SEARCH("Ball",B2))),"Yes","No")
输入完成后,选中C2单元格,拖动单元格右下角的填充柄向下拉到所有数据行,即可批量完成全表计算。
公式逻辑对照
IF(判断条件, 满足返回值, 不满足返回值)完全对应SQL中CASE WHEN ... THEN ... ELSE ... END的分支判断结构OR()对应SQL中的OR逻辑运算符,括号内任意一个条件成立则整体判定为真A2="A",A2="B"两个判断组合,对应SQL中COL_Category in ('A','B')的枚举值匹配逻辑ISNUMBER(SEARCH("关键词",目标单元格))对应SQL中COL_Name like '%关键词%'的模糊包含匹配:SEARCH函数不区分大小写,找到关键词会返回其在文本中的起始位置,找不到则返回错误值,套ISNUMBER即可判断文本是否包含指定关键词,和SQL默认LIKE的匹配行为一致
样例计算结果
按照公式计算给出的测试数据,结果完全符合预期:
| COL_Category | COL_Name | Yes/No? |
|---|---|---|
| A | Apple | Yes |
| B | Cat | Yes |
| C | Dog | No |
| C | Apple | Yes |
| D | Cat | No |
内容的提问来源于stack exchange,提问作者excel_noob
相关产品推荐
相关产品推荐

