PowerPivot 取消识别单元格数据
PowerPivot de-identifying cell data
我在想办法解决这个问题时遇到了麻烦。我读过 Russo/Ferrari 本书,用谷歌搜索并尝试了一些东西,但
我不认为这是可能的,因为我正在尝试的东西在行或过滤器评估上下文中都无法实现。
问题来了:
我有一个数据集,其中包含敏感的人口统计和非人口统计属性,这些属性本身是非识别的。
例如:
性别
种族
语言
地点
进气类型
数据集本身足够大,如果我们按 2 或 3 个属性分组,单个单元格值仍然包含足够大的值,无法识别。一旦我开始包含其他属性,该集合就不再是非识别性的。
我希望发生的事情是:
a) 对于 'detail' 或最低级别的属性,如果值的总和小于 5,那么它应该显示“<5”。
b) 对于最低级别以上的任何级别,我希望单元格值是任何细节值的总和,其中该值 >=5,如果不是,则为 5;以“<”符号为前缀。
这是我希望看到的示例:
Sum (hidden) IsFilteredIntakeSource Required output
City 1 69 FALSE <74
Suburb 1 59 FALSE <62
Intake source 1 2 TRUE <5
Intake source 2 57 TRUE 57
Suburb 2 10 FALSE <12
Intake source 1 7 TRUE 7
Intake source 2 3 TRUE <5
这是我所在的位置,我目前只是将其用于计算字段:
IsFilteredIntakeSource:=ISFILTERED(Intake[Intake source])
De-ident type 2:=if([IsFilteredIntakeSource],if([Intakes]<5,"<5",FORMAT([Intakes], "#")),"De-identified sum")
这给了我这个:
Sum (hidden) IsFilteredIntakeSource De-ident type 2
City 1 69 FALSE De-identified sum
Suburb 1 59 FALSE De-identified sum
Intake source 1 2 TRUE <5
Intake source 2 57 TRUE 57
Suburb 2 10 FALSE De-identified sum
Intake source 1 7 TRUE 7
Intake source 2 3 TRUE <5
所以我认为我所追求的是计算的最后一部分包含一个计算结果正确的表达式 - 也许 CALCULATEDTABLE 给我一个中间结果,然后将其用作最终推导的基础.
我并不是真的在寻求一个完整的工作解决方案(虽然显然那会很好!),因为我更愿意自己弄清楚,更感兴趣
看看还有哪些其他方法是可供考虑的可行途径。
答案很可能是 'have you considered x' ?
正在阅读您的 post 我想也许这篇 link 可以帮助您。这个网站是非常有用的 DAX 模式。
http://www.daxpatterns.com/dynamic-segmentation/
此致
乔安娜
我认为您将需要单独的措施来处理这些值,以及它们是否准确或包含去标识化元素。
第一个度量 [De-IdentifiedNumber] 将计算最低级别的所有值,将小于五的值显示为等于五。
第二个度量(即您实际想要显示的数字)将需要一个符合以下行的模式:
[NumberToDisplay]=IF(COUNTROWS(VALUES(Intakes))=1,[De-IdentifiedNumber],SUMX(VALUES(Intakes),[De-IdentifiedNumber]))
第三个度量 [De-IdentifiedFlag] 将计算最低级别的所有值,将小于 5 的值显示为 1,将所有其他值显示为 0。
如果其中一行或多行 returns 是 [De-IdentifiedFlag] 的 1,则您所需的输出只会在 [NumberToDsiplay] 前加上“<”前缀。
如果您需要任何进一步的指导,或者很乐意解决其余问题,请告诉我。
我在想办法解决这个问题时遇到了麻烦。我读过 Russo/Ferrari 本书,用谷歌搜索并尝试了一些东西,但 我不认为这是可能的,因为我正在尝试的东西在行或过滤器评估上下文中都无法实现。
问题来了: 我有一个数据集,其中包含敏感的人口统计和非人口统计属性,这些属性本身是非识别的。
例如:
性别
种族
语言
地点
进气类型
数据集本身足够大,如果我们按 2 或 3 个属性分组,单个单元格值仍然包含足够大的值,无法识别。一旦我开始包含其他属性,该集合就不再是非识别性的。
我希望发生的事情是:
a) 对于 'detail' 或最低级别的属性,如果值的总和小于 5,那么它应该显示“<5”。
b) 对于最低级别以上的任何级别,我希望单元格值是任何细节值的总和,其中该值 >=5,如果不是,则为 5;以“<”符号为前缀。
这是我希望看到的示例:
Sum (hidden) IsFilteredIntakeSource Required output
City 1 69 FALSE <74
Suburb 1 59 FALSE <62
Intake source 1 2 TRUE <5
Intake source 2 57 TRUE 57
Suburb 2 10 FALSE <12
Intake source 1 7 TRUE 7
Intake source 2 3 TRUE <5
这是我所在的位置,我目前只是将其用于计算字段:
IsFilteredIntakeSource:=ISFILTERED(Intake[Intake source])
De-ident type 2:=if([IsFilteredIntakeSource],if([Intakes]<5,"<5",FORMAT([Intakes], "#")),"De-identified sum")
这给了我这个:
Sum (hidden) IsFilteredIntakeSource De-ident type 2
City 1 69 FALSE De-identified sum
Suburb 1 59 FALSE De-identified sum
Intake source 1 2 TRUE <5
Intake source 2 57 TRUE 57
Suburb 2 10 FALSE De-identified sum
Intake source 1 7 TRUE 7
Intake source 2 3 TRUE <5
所以我认为我所追求的是计算的最后一部分包含一个计算结果正确的表达式 - 也许 CALCULATEDTABLE 给我一个中间结果,然后将其用作最终推导的基础.
我并不是真的在寻求一个完整的工作解决方案(虽然显然那会很好!),因为我更愿意自己弄清楚,更感兴趣 看看还有哪些其他方法是可供考虑的可行途径。
答案很可能是 'have you considered x' ?
正在阅读您的 post 我想也许这篇 link 可以帮助您。这个网站是非常有用的 DAX 模式。
http://www.daxpatterns.com/dynamic-segmentation/
此致
乔安娜
我认为您将需要单独的措施来处理这些值,以及它们是否准确或包含去标识化元素。
第一个度量 [De-IdentifiedNumber] 将计算最低级别的所有值,将小于五的值显示为等于五。
第二个度量(即您实际想要显示的数字)将需要一个符合以下行的模式:
[NumberToDisplay]=IF(COUNTROWS(VALUES(Intakes))=1,[De-IdentifiedNumber],SUMX(VALUES(Intakes),[De-IdentifiedNumber]))
第三个度量 [De-IdentifiedFlag] 将计算最低级别的所有值,将小于 5 的值显示为 1,将所有其他值显示为 0。
如果其中一行或多行 returns 是 [De-IdentifiedFlag] 的 1,则您所需的输出只会在 [NumberToDsiplay] 前加上“<”前缀。
如果您需要任何进一步的指导,或者很乐意解决其余问题,请告诉我。