问题描述
好吧,我的主要问题是保护正在跟踪的表的隐私,我们要掩盖不满足阈值的值。
因此,如果值小于5,则显示veil_text,例如“ *”。
如此简单:
Val = Count(Orders [EmployeeID])
Val_Veiled = if([Val]
Val和Val Veiled都是度量。
State | Val | Val_Veiled
NJ | 10 | 10
NY | 15 | 15
PA | 3 | *
VA | 1 | *
AK | (blank) | *
Total | 29 | 29
甚至可以用于:
State | Val | Val_Veiled
PA | 3 | *
VA | 1 | *
Total | 4 | *
存在以下问题:
State | Val | Val_Veiled
NY | 15 | 15
PA | 3 | *
Total | 18 | 18
对于最后一种情况,我想揭开总数的面纱,因为否则您可以轻松确定PA的值是什么。
类似地,我们要确保它在以下方面正确运行:
State | Val | Val_Veiled
NY | 15 | 15
AK | (blank) | *
PA | 3 | *
Total | 18 | 18
从理想上讲,我不希望将解决方案与状态相关联,我希望仅将其与[Val]相关联,但是我不知道这样做是否可行。因此,如果还有[Val]度量被突破的另一列,我希望它仍然保留面纱逻辑。 IE如果我跨地区,按商店或按产品划分它,所有可行的方法,都可以完美地实现价值,而不是总价值。
如果唯一的方法是将逻辑绑定到突破列,那么我现在可以处理它。但是我不确定如何突破合计的范围,检查所选值的合计以进行比较以确定是否还需要掩盖合计。
解决方法
如果我理解您的要求正确,那么以下措施应能达到您的目的。总体而言,逻辑就是您要寻找的。但是,如果没有获得预期的输出,您可以在最后一个RETURN步骤中调整组合-
mask_val =
VAR total_val = SUM(your_table_name[val])
VAR total_row = COUNTROWS(your_table_name)
VAR count_blank_row =
CALCULATE(
COUNTROWS(your_table_name),FILTER(
your_table_name,your_table_name[val] = BLANK()
)
)
VAR count_less_val =
CALCULATE(
COUNTROWS(your_table_name),your_table_name[val] < 5
&& your_table_name[val] >= 1
)
)
RETURN IF(
count_less_val = 1
|| (count_less_val = 0 && count_blank_row >= 1)
|| total_row = count_less_val,"*",total_val
)
以下是您解释的不同情况的示例输出-