如何在 PowerBI 中 anonymize/mask 部分字符串?
How to anonymize/mask part of string in PowerBI?
假设我正在为名为 'Air Holland' 的客户创建一个饼图,对于这个客户,我想在饼图中显示与其他客户的重叠,包括名为 'Air Hungary'、'Air Ireland' 和 'Air Iceland'。由于我客户的隐私规定,我只能显示部分姓名,例如他们名字的前三个或四个字母。 'Air Holland' 因此变为 'Air xxxxxxx'
现在为了在我的饼图中实现这一点,我创建了一个新的 CustomerNameMasked 列,它采用客户名称,并将除前四个字符之外的所有字符替换为 'x'。理想情况下,我想在我的饼图中使用 CustomerName 作为图例,然后使用 CustomerNameMasked 作为标签,这样饼图是使用 CustomerName 创建的,但会显示屏蔽的名称。
但是,据我所知,这样的标签是不可能的,所以现在我使用 CustomerNameMasked 作为我的 Legend 列。但是由于这些名称不是唯一的(例如 'Air Hungary' 和 'Air Holland' 在 CustomerNameMasked 列中都是 'Air xxxxxxx'),因此不同的客户被放在一起。
关于如何创建独特的隐蔽客户名称有什么想法吗?或者另一种解决方法,以确保我的饼图正确显示每个客户的数据,但图例显示屏蔽名称?
防止匿名名称在可视化中合并的一种方法是确保它们不相同。
添加计算列:
Anonymised = "Airline " & RANKX('MyTable','MyTable'[CustomerName],,ASC,Dense)
结果:
Airline 1
Airline 2
Airline 3
...
如果你喜欢x
的:
添加一个Anonymised_Name
table,
Name Anonymised Name
"Air Holland" "Air xxxxxxx"
"Air Hungary" "Air xxxxxxx "
"Air Iceland" "Air xxxxxxx "
使用"fake space"(小键盘上的alt+0160)防止PowerBI吞掉它。添加关系并在可视化中使用此列。
我更喜欢前面的选项,因为它更容易区分和跟踪各个客户。
如果不关心"x"的人数是否与真实姓名相符:
Anonymised_Name_2 = "Air XXXXXXX" & REPT(" ",
RANKX('MyTable','MyTable'[CustomerName],,ASC,Dense))
(又是假的space alt+0160)
根据您对报告的处理方式,存在真实客户姓名的重大风险 "leaking",因此理想情况下,您希望在导入数据之前将其匿名化。
假设我正在为名为 'Air Holland' 的客户创建一个饼图,对于这个客户,我想在饼图中显示与其他客户的重叠,包括名为 'Air Hungary'、'Air Ireland' 和 'Air Iceland'。由于我客户的隐私规定,我只能显示部分姓名,例如他们名字的前三个或四个字母。 'Air Holland' 因此变为 'Air xxxxxxx'
现在为了在我的饼图中实现这一点,我创建了一个新的 CustomerNameMasked 列,它采用客户名称,并将除前四个字符之外的所有字符替换为 'x'。理想情况下,我想在我的饼图中使用 CustomerName 作为图例,然后使用 CustomerNameMasked 作为标签,这样饼图是使用 CustomerName 创建的,但会显示屏蔽的名称。
但是,据我所知,这样的标签是不可能的,所以现在我使用 CustomerNameMasked 作为我的 Legend 列。但是由于这些名称不是唯一的(例如 'Air Hungary' 和 'Air Holland' 在 CustomerNameMasked 列中都是 'Air xxxxxxx'),因此不同的客户被放在一起。
关于如何创建独特的隐蔽客户名称有什么想法吗?或者另一种解决方法,以确保我的饼图正确显示每个客户的数据,但图例显示屏蔽名称?
防止匿名名称在可视化中合并的一种方法是确保它们不相同。
添加计算列:
Anonymised = "Airline " & RANKX('MyTable','MyTable'[CustomerName],,ASC,Dense)
结果:
Airline 1
Airline 2
Airline 3
...
如果你喜欢x
的:
添加一个Anonymised_Name
table,
Name Anonymised Name
"Air Holland" "Air xxxxxxx"
"Air Hungary" "Air xxxxxxx "
"Air Iceland" "Air xxxxxxx "
使用"fake space"(小键盘上的alt+0160)防止PowerBI吞掉它。添加关系并在可视化中使用此列。
我更喜欢前面的选项,因为它更容易区分和跟踪各个客户。
如果不关心"x"的人数是否与真实姓名相符:
Anonymised_Name_2 = "Air XXXXXXX" & REPT(" ",
RANKX('MyTable','MyTable'[CustomerName],,ASC,Dense))
(又是假的space alt+0160)
根据您对报告的处理方式,存在真实客户姓名的重大风险 "leaking",因此理想情况下,您希望在导入数据之前将其匿名化。