我在PowerPivot中有一组数据,这些数据具有非唯一ID,我将这些ID分组用于报告目的。每行都是一个称为任务的唯一项,多个任务可能与一个称为审阅的项相关联。每项任务都需要采取行动。因此,该表看起来像这样(没有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作为计算列生成(如果与审核相关的任何任务需要操作,则显示True)?例如,Review 1包含任务1和2.任务1需要操作,因此对于与Review 1关联的任何行,ReviewAction都设置为True。同样,Review 5包含任务7,8和9.只有任务8需要操作,但是我希望ReviewAction对与Review 5关联的所有行显示True。
如果审核ID是重复的,我使用以下函数来计算,如果是,那么有多少重复:
=CALCULATE(COUNTROWS('TableName'), FILTER('TableName', [ReviewID]=EARLIER([ReviewID])))
然而,我无法找到使用相同过滤技术生成ReviewAction列的方法。
我正在尝试制作此列的原因是,我可以创建一个计算Review项目的图表(只是具有不同的计数),并包含一个切片器,用于根据需要操作的评论进行过滤。为了创建切片器,我需要将“ReviewAction”值作为列存在。
答案 0 :(得分:1)
吉米,
非常有趣的情况,我正在处理类似的事情,并发现使用X功能执行此操作的优雅(不确定性能如何)。在这种情况下,MAXX会有所帮助:
=
MAXX (
FILTER ( 'Table', [Review ID] = EARLIER ( [Review ID] ) ),
INT ( [Action] )
)
它采用按 Review ID 分组的子表,然后使用INTEGER值True / False语句计算该组的最大值。然后,将其包装在IF子句中:
=
IF (
MAXX (
FILTER ( 'Table', [Review ID] = EARLIER ( [Review ID] ) ),
INT ( [Action] )
)
= 1,
TRUE (),
FALSE ()
)
你会得到你需要的东西。源Excel 2013文件可以是downloaded here。
希望这有帮助。