You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Tableau中实现全名部分字符的掩码隐藏?

在Tableau中实现姓名部分字符隐藏的方法

完全可以实现你要的效果,通过创建计算字段拆分并处理姓名的每个组成部分即可,具体操作如下:

1. 拆分姓名的三个模块

原姓名格式为Surname, FirstName MiddleName,先用SPLIT函数拆分出姓氏、名字、中间名:

  • 姓氏:TRIM(SPLIT([FullName], ",", 1))
  • 名字:TRIM(SPLIT(SPLIT([FullName], ",", 2), " ", 1))
  • 中间名:TRIM(SPLIT(SPLIT([FullName], ",", 2), " ", 2))

2. 单个姓名模块的处理逻辑

对每个模块,保留前2个字符和最后1个字符,中间用X填充(填充数量为原字符串长度减3);如果字符串长度≤3,直接保留原内容(避免不合理截断):

IF LEN([目标字段]) > 3 THEN
  LEFT([目标字段], 2) + REPEAT("X", LEN([目标字段]) - 3) + RIGHT([目标字段], 1)
ELSE
  [目标字段]
END

3. 拼接处理后的完整姓名

把三个处理后的模块按原格式拼接,完整计算字段代码如下:

// 处理姓氏
IF LEN(TRIM(SPLIT([FullName], ",", 1))) > 3 THEN
  LEFT(TRIM(SPLIT([FullName], ",", 1)), 2) + REPEAT("X", LEN(TRIM(SPLIT([FullName], ",", 1))) - 3) + RIGHT(TRIM(SPLIT([FullName], ",", 1)), 1)
ELSE
  TRIM(SPLIT([FullName], ",", 1))
END
+ ", "
+
// 处理名字
IF LEN(TRIM(SPLIT(SPLIT([FullName], ",", 2), " ", 1))) > 3 THEN
  LEFT(TRIM(SPLIT(SPLIT([FullName], ",", 2), " ", 1)), 2) + REPEAT("X", LEN(TRIM(SPLIT(SPLIT([FullName], ",", 2), " ", 1))) - 3) + RIGHT(TRIM(SPLIT(SPLIT([FullName], ",", 2), " ", 1)), 1)
ELSE
  TRIM(SPLIT(SPLIT([FullName], ",", 2), " ", 1))
END
+ " "
+
// 处理中间名
IF ISNULL(TRIM(SPLIT(SPLIT([FullName], ",", 2), " ", 2))) THEN
  ""
ELSEIF LEN(TRIM(SPLIT(SPLIT([FullName], ",", 2), " ", 2))) > 3 THEN
  LEFT(TRIM(SPLIT(SPLIT([FullName], ",", 2), " ", 2)), 2) + REPEAT("X", LEN(TRIM(SPLIT(SPLIT([FullName], ",", 2), " ", 2))) - 3) + RIGHT(TRIM(SPLIT(SPLIT([FullName], ",", 2), " ", 2)), 1)
ELSE
  TRIM(SPLIT(SPLIT([FullName], ",", 2), " ", 2))
END

4. 应用计算字段

将上述代码创建为新的计算字段(比如命名为隐藏部分字符的姓名),拖到视图中就能看到目标效果。

补充调整

如果需要修改首尾保留的字符数量,只需调整LEFT的第二个参数(比如改成1就是保留首1位),同时对应修改LEN([目标字段]) - 3中的数值(比如保留首1尾1,就改成LEN([目标字段]) - 2)。

内容的提问来源于stack exchange,提问作者user6751695

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 05:33:27