用于确定值是否出现在按非唯一 ID 筛选的任何行的列中的计算列
Calculated Column to Determine if Value Appears in Column of Any Row Filtered on Non-Unique ID
我在 PowerPivot 中有一组数据,这些数据具有非唯一 ID,我根据这些数据对项目进行分组以用于报告目的。每行都是一个称为任务的唯一项目,多个任务可能与一个称为评论的项目相关联。每项任务都可能需要采取行动。因此,table 看起来像这样(没有 ReviewAction 列):
TaskID Action ReviewID ReviewAction
------------------------------------------------
1 True 1 True
2 False 1 True
3 False 2 False
4 True 3 True
5 False 4 False
6 False 4 False
7 False 5 True
8 True 5 True
9 False 5 True
有没有办法将 ReviewAction 生成为计算列(如果 any 与审核相关的任务需要操作,则显示 True)?例如,审核 1 包含任务 1 和 2。任务 1 需要操作,因此与审核 1 关联的任何行的 ReviewAction 都设置为 True。同样,审核 5 包含任务 7、8 和 9。只有任务 8 需要操作,但我希望 ReviewAction 为与评论 5 关联的所有行显示 True。
我使用了以下函数来计算 Review ID 是否重复,如果是,有多少重复:
=CALCULATE(COUNTROWS('TableName'), FILTER('TableName', [ReviewID]=EARLIER([ReviewID])))
但是,我还没有想出一种方法来使用相同的过滤技术来生成 ReviewAction 列。
我尝试制作此专栏的原因是,我可以创建一个图表来计算评论项目(仅具有不同的计数)并包含一个切片器以根据需要或不需要操作的评论进行过滤。为了创建切片器,我需要 "ReviewAction" 值作为列存在。
H 吉米,
非常有趣的案例,我正在处理类似的事情,并找到了一种优雅的(不确定性能如何智能)方法来使用 X 函数来执行此操作。在这种情况下,MAXX 会有所帮助:
=
MAXX (
FILTER ( 'Table', [Review ID] = EARLIER ( [Review ID] ) ),
INT ( [Action] )
)
它采用按 评论 ID 分组的子表,然后使用 [=31= 的整数值计算该组的 最大值 ] 声明。然后,将其包装在一个 IF 子句中:
=
IF (
MAXX (
FILTER ( 'Table', [Review ID] = EARLIER ( [Review ID] ) ),
INT ( [Action] )
)
= 1,
TRUE (),
FALSE ()
)
你会得到你需要的。源 Excel 2013 文件可以是 downloaded here.
希望这对您有所帮助。
我在 PowerPivot 中有一组数据,这些数据具有非唯一 ID,我根据这些数据对项目进行分组以用于报告目的。每行都是一个称为任务的唯一项目,多个任务可能与一个称为评论的项目相关联。每项任务都可能需要采取行动。因此,table 看起来像这样(没有 ReviewAction 列):
TaskID Action ReviewID ReviewAction
------------------------------------------------
1 True 1 True
2 False 1 True
3 False 2 False
4 True 3 True
5 False 4 False
6 False 4 False
7 False 5 True
8 True 5 True
9 False 5 True
有没有办法将 ReviewAction 生成为计算列(如果 any 与审核相关的任务需要操作,则显示 True)?例如,审核 1 包含任务 1 和 2。任务 1 需要操作,因此与审核 1 关联的任何行的 ReviewAction 都设置为 True。同样,审核 5 包含任务 7、8 和 9。只有任务 8 需要操作,但我希望 ReviewAction 为与评论 5 关联的所有行显示 True。
我使用了以下函数来计算 Review ID 是否重复,如果是,有多少重复:
=CALCULATE(COUNTROWS('TableName'), FILTER('TableName', [ReviewID]=EARLIER([ReviewID])))
但是,我还没有想出一种方法来使用相同的过滤技术来生成 ReviewAction 列。
我尝试制作此专栏的原因是,我可以创建一个图表来计算评论项目(仅具有不同的计数)并包含一个切片器以根据需要或不需要操作的评论进行过滤。为了创建切片器,我需要 "ReviewAction" 值作为列存在。
H 吉米,
非常有趣的案例,我正在处理类似的事情,并找到了一种优雅的(不确定性能如何智能)方法来使用 X 函数来执行此操作。在这种情况下,MAXX 会有所帮助:
=
MAXX (
FILTER ( 'Table', [Review ID] = EARLIER ( [Review ID] ) ),
INT ( [Action] )
)
它采用按 评论 ID 分组的子表,然后使用 [=31= 的整数值计算该组的 最大值 ] 声明。然后,将其包装在一个 IF 子句中:
=
IF (
MAXX (
FILTER ( 'Table', [Review ID] = EARLIER ( [Review ID] ) ),
INT ( [Action] )
)
= 1,
TRUE (),
FALSE ()
)
你会得到你需要的。源 Excel 2013 文件可以是 downloaded here.
希望这对您有所帮助。