我有一个 Power BI 计算表,设置如下,其中包含客户、项目、周和削减案例。我希望添加另一列,该列对削减案例 > 0 的连续周数进行求和。最重要的是,即使客户/项目分组保持不变,我也需要在削减案例 = 0 的任何一周后,将该索引重新启动到 1 (参见“目标”栏)
一些错综复杂的问题 - 周开始日期有时会跳过几周,这很好,我只需要知道连续出现的任何周的连续剪切周。我不关心没有削减的任何周或这些周的排名中显示的值。
客户 | 项目 | 客户项目切割 | 周 | 切案例 | 当前指数(错误) | 目标 |
---|---|---|---|---|---|---|
客户1 | A | 客户1_A_切 | 7/29/24 | 1 | 1 | 1 |
客户1 | A | 客户1_A_切 | 8/26/24 | 2 | 2 | 2 |
客户1 | A | 客户1_A_NoCut | 9/2/24 | 0 | 0 | 0 |
客户1 | A | 客户1_A_NoCut | 9/9/24 | 0 | 0 | 0 |
客户1 | A | 客户1_A_NoCut | 9/16/24 | 0 | 0 | 0 |
客户1 | A | 客户1_A_切 | 10/7/24 | 3 | 3 | 1 |
客户1 | A | 客户1_A_切 | 10/14/24 | 2 | 4 | 2 |
客户1 | A | 客户1_A_切 | 10/21/24 | 6 | 5 | 3 |
客户2 | B | 客户2_B_切 | 9/9/24 | 2 | 1 | 1 |
客户2 | B | 客户2_B_NoCut | 9/16/24 | 0 | 0 | 0 |
客户2 | B | 客户2_B_切 | 9/23/24 | 2 | 2 | 1 |
客户2 | B | 客户2_B_切 | 9/30/24 | 2 | 3 | 2 |
客户2 | B | 客户2_B_切 | 10/7/24 | 3 | 4 | 3 |
客户2 | B | 客户2_B_NoCut | 10/14/24 | 0 | 0 | 0 |
客户2 | B | 客户2_B_切 | 10/21/24 | 2 | 5 | 1 |
我当前使用 Rankx 的尝试不起作用,因为这些值不会重新启动,这是因为我无法弄清楚如何为重新启动条件创建唯一标识符。
IF(Table1[Cut Cases]<=0,0,Rankx(Filter(Table1,EARLIER(Table1[CustomerItemCut]) = Table1[CustomerItemCut]),Table1[Week Begin Date],,ASC,Dense))
我试图了解如何A.创建一个唯一标识符,显示该组所在的“剪切实例”(如下所示),以便rankx可以工作或
客户项目切割 |
---|
客户1_A_Cut1 |
客户1_A_Cut1 |
客户1_A_NoCut |
客户1_A_Cut2 |
客户1_A_Cut2 |
客户1_A_Cut2 |
客户1_A_NoCut |
B.用我现有的方法找出另一种方法
你可以尝试创建一个专栏
column=
VAR _last =
MAXX (
FILTER (
'Table',
'Table'[Customer] = EARLIER ( 'Table'[Customer] )
&& 'Table'[CustomerItemCut] <> EARLIER ( 'Table'[CustomerItemCut] )
&& 'Table'[Week] < EARLIER ( 'Table'[Week] )
),
'Table'[Week]
)
VAR _start =
MINX (
FILTER (
'Table',
'Table'[CustomerItemCut] = EARLIER ( 'Table'[CustomerItemCut] )
&& 'Table'[Week] > _last
),
'Table'[Week]
)
RETURN
IF (
CONTAINSSTRING ( 'Table'[CustomerItemCut], "No" ),
0,
CALCULATE (
COUNTROWS ( 'Table' ),
FILTER (
'Table',
'Table'[CustomerItemCut] = EARLIER ( 'Table'[CustomerItemCut] )
&& 'Table'[Week] >= _start
&& 'Table'[Week] <= EARLIER ( 'Table'[Week] )
)
)
)