如何用Excel公式通过字符串末尾字符识别产品类别?
Excel 产品类别识别公式实现
核心兼容版公式(支持所有Excel版本)
假设产品编号位于A2单元格,在B2输入以下公式后下拉填充:
=IF(LOWER(RIGHT(A2,3))="abc","Book",IF(OR(IFERROR(SUMPRODUCT(--MID(RIGHT(A2,3),ROW(1:3),1)),0)=17,IFERROR(SUMPRODUCT(--MID(RIGHT(A2,2),ROW(1:2),1)),0)=17),"Keyboard",IF(OR(IFERROR(SUMPRODUCT(--MID(RIGHT(A2,3),ROW(1:3),1)),0)=18,IFERROR(SUMPRODUCT(--MID(RIGHT(A2,2),ROW(1:2),1)),0)=18),"Mouse","Unknown")))
公式逻辑拆解
- Book规则匹配(优先级最高):
LOWER(RIGHT(A2,3))="abc":提取最后3位字符并转为小写,同时匹配ABC/ABc/abc三种大小写格式,满足则返回Book。
- Keyboard规则匹配:
- 分别计算末尾3位、末尾2位数字的和(用
IFERROR处理非数字场景,返回0避免公式报错),只要任一和为17,返回Keyboard。
- 分别计算末尾3位、末尾2位数字的和(用
- Mouse规则匹配:
- 逻辑同Keyboard,只要末尾3位/2位数字和为18,返回
Mouse。
- 逻辑同Keyboard,只要末尾3位/2位数字和为18,返回
- 默认值:
- 不满足任何规则时返回
Unknown,可根据需求改为空值(将"Unknown"替换为"")。
- 不满足任何规则时返回
Excel 365简化版公式(利用正则精准提取)
如果使用Excel 365/2021版本,可通过正则提取末尾连续的2-3位数字,避免非数字字符干扰:
=LET( last3, RIGHT(A2,3), end_nums, REGEXEXTRACT(A2,"\d{2,3}$"), num_sum, IFERROR(SUMPRODUCT(--MID(end_nums,ROW(INDIRECT("1:"&LEN(end_nums))),1)),0), IF(LOWER(last3)="abc","Book",IF(num_sum=17,"Keyboard",IF(num_sum=18,"Mouse","Unknown"))) )
示例验证
| 产品编号 | 识别结果 |
|---|---|
| XYZ98 | Keyboard |
| ABC198 | Mouse |
| TESTabc | Book |
| XXX123 | Unknown |
内容的提问来源于stack exchange,提问作者QED_Millenium
相关产品推荐
相关产品推荐

