基于相同字段值的百分比

Percentage Based on Same Field Value

我有一个这样的公寓table:

Date UserID Reason Productive? TotalDuration Group Channel
2022-03-20 A Break false 00:13:21 Foo #E
2022-03-20 A O.Work true 07:02:29 Foo #E
2022-03-20 A Shift - 07:27:32 Foo #E
2022-03-20 A V.Work true 00:10:08 Foo #E
2022-03-20 B Break false 00:15:41 Foo #S
2022-03-20 B Meeting false 00:00:26 Foo #S
2022-03-20 B OU.Work true 00:03:36 Foo #S
2022-03-20 B Shift - 06:03:41 Foo #S
2022-03-20 B V.Work true 00:42:38 Foo #S
2022-03-20 C Break false 00:30:01 Bar #E
2022-03-20 C O.Work false 00:04:14 Bar #E
2022-03-20 C OU.Work true 00:35:39 Bar #E
2022-03-20 C Shift - 06:09:48 Bar #E
2022-03-20 C V.Work true 01:37:47 Bar #E

我想创建一个 pivotable,它根据同一列的 Shift 值计算每个 Reason 的百分比。 换句话说 Reason[Value] 除以 Reason[Shift].

这样的 pivotable 将按 Productive 和 Reason 过滤,但希望能够灵活地使用任何其他字段作为过滤器。

我认为我最好的选择是一些 DAX 措施,但我无法让它发挥作用。

我对 Excel 工具包(VBA、PQ、DAX)中的所有解决方案持开放态度

假设你的 table 被称为 Table1 你可以使用下面的 DAX

总持续时间总和

Sum of Total Duration = 
sum(Table1[TotalDuration])

总持续时间总和

Percent Total Duration =
VAR ValueswithoutShift =
    CALCULATE (
        [Sum Total Duration],
        Table1[Reason] <> "Shift",
        VALUES ( Table1[Reason] )
    )
VAR Shift =
    CALCULATE (
        [Sum Total Duration],
        Table1[Reason] = "Shift",
        ALLEXCEPT ( Table1, Table1[UserID] )
    )
RETURN
    DIVIDE ( ValueswithoutShift, Shift )

输出

我使用 UserIDProductive?Reason 作为行。 Sum Total DurationPercent Total Duration 作为值。