Tableau 10字符串操作:统一客户姓名格式的实现方法
解决Tableau 10中客户姓名格式统一的问题
嘿,在Tableau 10里搞定这种姓名格式统一的问题不难,我之前也遇到过类似情况,用计算字段就能轻松解决,给你详细说下怎么操作:
核心思路
我们可以针对目标客户ID(1000)创建计算字段,结合字符串处理函数批量修正两种异常格式:去掉姓名里的逗号,同时移除结尾的Jr后缀,其他客户的数据保持不变。
具体步骤和实现方式
新建计算字段
在Tableau的数据面板上右键,选择「创建计算字段」,给这个字段起个好记的名字,比如统一后姓名。编写处理逻辑
这里有两种方法,你可以根据自己对函数的熟悉程度选择:方法一:用基础字符串函数(对正则不熟悉的话选这个)
先判断姓名是否以
Jr结尾,去掉后缀后再替换掉逗号,代码如下:IF [客户ID] = 1000 THEN // 先移除结尾的"Jr"后缀 LET 无后缀姓名 = LEFT([姓名], LEN([姓名]) - IF ENDSWITH([姓名], " Jr") THEN 3 ELSE 0 END) // 再替换逗号并清理多余空格 TRIM(REPLACE(无后缀姓名, ", ", " ")) ELSE // 其他客户保留原姓名 [姓名] END方法二:用正则表达式(更简洁高效)
正则可以一次性匹配并替换两种异常格式,代码更紧凑:
IF [客户ID] = 1000 THEN REGEXP_REPLACE([姓名], "(, )|( Jr$)", "") ELSE [姓名] END简单解释下这个正则:
(, )匹配姓名里的「逗号+空格」,替换为空( Jr$)匹配结尾的「空格+Jr」($表示匹配字符串末尾),替换为空- 竖线
|表示“或”的逻辑,一次性搞定两种格式问题
验证效果
把新创建的统一后姓名字段拖到视图里,检查客户ID1000的三个姓名变体:Brown Joe、Brown Joe Jr、Brown, Joe,是不是都变成了标准的Brown Joe~
小提示
如果之后遇到类似的其他后缀(比如Sr、III),可以直接扩展正则表达式,比如改成(, )|( (Jr|Sr|III)$)就行,灵活性很强。
内容的提问来源于stack exchange,提问作者Maxine Bisong
相关产品推荐
相关产品推荐

