在Power BI中使用DAX为含空值的手机号文本添加短横线分隔符
DAX 手机号格式化完整实现方案
基础版(仅按长度判断格式化)
直接填入你给出的IF逻辑空位即可,使用LEFT、MID、RIGHT函数拆分10位手机号后拼接短横线:
Formatted Phone Number = IF( LEN('dataset'[Phone Number]) = 10, LEFT('dataset'[Phone Number], 3) & "-" & MID('dataset'[Phone Number], 4, 3) & "-" & RIGHT('dataset'[Phone Number], 4), 'dataset'[Phone Number] )
增强版(增加纯数字校验)
如果你的数据中存在10位但包含非数字字符的无效内容,可以新增校验逻辑避免错误格式化:
Formatted Phone Number = VAR OriginalPhone = 'dataset'[Phone Number] VAR IsValid10Digit = LEN(OriginalPhone) = 10 && NOT(ISERROR(VALUE(OriginalPhone))) RETURN IF( IsValid10Digit, LEFT(OriginalPhone, 3) & "-" & MID(OriginalPhone, 4, 3) & "-" & RIGHT(OriginalPhone, 4), OriginalPhone )
注意事项
- 两个版本都会保留所有不符合条件的原始值,包括空值、长度不符的号码、带其他格式的号码,不会做额外修改
- 如果需要先清理手机号中的非数字字符(比如空格、括号、加号),可以在
OriginalPhone变量后新增替换逻辑批量清除无效字符后再做判断
内容的提问来源于stack exchange,提问作者user35131
相关产品推荐
相关产品推荐

