首页 > 解决方案 > 在 DAX 中计数/计算/求和行

问题描述

我对 Power BI 和 DAX 还很陌生,但我被困住了。我将尝试解释当前的情况以及我想成为我的输出。我用 distinctcount 尝试了很多度量,计算,你说的,我做到了。但找不到合适的解决方案。

我们有 4 列:Date、Employee_ID、Sick、%FTE。每行记录员工在该日期是否生病。空白没有生病,Y = 生病。

我想创建一个衡量标准,当员工在特定的一周、一个月或一年内生病时,它只计算一次%FTE。

所以一月的输出应该是 2,13 (0,8 + 0,33 + 1) 和二月的 1,8 (0,8 + 1)。

在此处输入图像描述

标签: powerbidax

解决方案


您将需要数据集中的两个附加列,如下所示 数据

一旦你有了它,你可以使用以下措施来达到目标

Measure8 =
VAR _1 =
    IF (
        MAX ( 'fact'[sick] ) <> BLANK (),
        RANKX (
            FILTER (
                ALL ( 'fact' ),
                'fact'[emp_id] = MAX ( 'fact'[emp_id] )
                    && 'fact'[Year] = MAX ( 'fact'[Year] )
                    && 'fact'[Month] = MAX ( 'fact'[Month] )
                    && 'fact'[sick] = "Y"
            ),
            CALCULATE ( MAX ( 'fact'[date] ) ),
            ,
            ASC,
            DENSE
        )
    )
VAR _2 =
    IF ( _1 = 1, IF ( MAX ( 'fact'[sick] ) = "y", MAX ( 'fact'[%FTE] ) ) )
RETURN
    _2

Measure9 =
IF (
    HASONEVALUE ( 'date'[date] ),
    [Measure8],
    VAR _1 =
        MAXX (
            GROUPBY (
                ADDCOLUMNS ( 'fact', "val", [Measure8] ),
                [Year],
                [Month],
                "total", SUMX ( CURRENTGROUP (), [val] )
            ),
            [total]
        )
    VAR _2 =
        MAXX (
            GROUPBY (
                ADDCOLUMNS ( 'fact', "val", [Measure8] ),
                [Year],
                "total", SUMX ( CURRENTGROUP (), [val] )
            ),
            [total]
        )
    VAR _3 =
        IF ( ISINSCOPE ( 'fact'[Year] ), _2, _1 )
    RETURN
        _3
)
    

解决方案

此外,对于以后的任何帖子,请提供示例数据和预期输出作为降价表如何


推荐阅读