Excel中如何统计下划线后的数字位数?新手求助公式
Excel实现下划线后数字判断及位数统计公式
适用Excel 365/2021及以上版本(函数更简洁)
假设目标文本在A1单元格,直接使用以下公式:
=IF(ISNUMBER(--TEXTAFTER(A1,"_",-1)),LEFT(A1,LEN(A1)-LEN(TEXTAFTER(A1,"_",-1)))&"\d{"&LEN(TEXTAFTER(A1,"_",-1))&"}","无末尾数字")
公式说明:
TEXTAFTER(A1,"_",-1):精准提取最后一个下划线之后的文本片段--TEXTAFTER(...):将提取的文本转为数值,用于判断是否为纯数字ISNUMBER(...):判断下划线后的内容是否为有效数字- 若符合条件,通过
LEFT截取前缀部分,再拼接成前缀_\d{位数}的格式;若不符合,返回"无末尾数字"
适用旧版Excel(无TEXTAFTER函数)
同样假设文本在A1单元格,使用兼容公式:
=IF(ISNUMBER(--RIGHT(A1,LEN(A1)-FIND("@",SUBSTITUTE(A1,"_","@",LEN(A1)-LEN(SUBSTITUTE(A1,"_","")))))),LEFT(A1,FIND("@",SUBSTITUTE(A1,"_","@",LEN(A1)-LEN(SUBSTITUTE(A1,"_","")))))&"\d{"&LEN(A1)-FIND("@",SUBSTITUTE(A1,"_","@",LEN(A1)-LEN(SUBSTITUTE(A1,"_",""))))&"}","无末尾数字")
公式说明:
SUBSTITUTE(A1,"_","@",LEN(A1)-LEN(SUBSTITUTE(A1,"_",""))):把最后一个下划线替换为特殊符号@,定位最后下划线的位置FIND("@",...):获取最后下划线的位置,以此拆分前缀和末尾内容- 后续判断、拼接逻辑与365版本一致
示例验证
| 原文本 | 公式返回结果 |
|---|---|
| aff_ua_affli_key_cm_12548210 | aff_ua_affli_key_cm_\d{8} |
| aff_ua_affli_key_cm_125211 | aff_ua_affli_key_cm_\d{6} |
| aff_ua_affli_key_cm_1254212 | aff_ua_affli_key_cm_\d{7} |
| aff_ua_affli_key_cm_test | 无末尾数字 |
内容的提问来源于stack exchange,提问作者KBS
相关产品推荐
相关产品推荐

