计算每个任务类型的当前周和前一周的比率

Calculate Ratio of Current and Previous Week per Task Type

我是 PowerBI 的新手,来自 R 背景,我很难理解 PowerBI 如何决定在哪种情况下评估一项措施。

我有以下措施,计算前一周和当前周之间的比率:

AHT               = DIVIDE(SUM('Daily Tasks'[SHT]), SUM('Daily Tasks'[#Tasks]))
AHT Current Week  = CALCULATE([AHT], 'Dates'[Date] >= TODAY() - 7)
AHT Previous Week = CALCULATE([AHT], 'Dates'[Date] < TODAY() - 7 && 'Dates'[Date] >= TODAY() - 14)
AHT Ratio Week    = DIVIDE([AHT Current Week], [AHT Previous Week])

到目前为止一切顺利。现在我想在卡片视觉中显示最小比率(连同具有此比率的任务类型)。因此,我创建了以下 2 个措施:

Top of the Week % = 
    MAXX(
        TOPN(
            1,
            SUMMARIZECOLUMNS(
                'Daily Tasks'[Task Type],
                "Ratio", [AHT Ratio Week]
            ),
            [Ratio], ASC
        ),
        [Ratio] - 1
    )
Top of the Week = 
    CONCATENATEX(
        TOPN(
            1,
            SUMMARIZECOLUMNS(
                'Daily Tasks'[Task Type],
                "Ratio", [AHT Ratio Week]
            ),
            [Ratio], ASC
        ),
        [Task Type],"  -  "
    )

视觉显示正确的值,一切似乎都很好。但是,如果我 select 任何其他视觉对象中的任务类型,或者使用切片器过滤单个任务类型,则卡片视觉对象会显示一条错误消息,指出

SummarizeColumns and AddMissingItems must not be used in this context

所以显然有些不对劲。我该如何解决?

SUMMARIZECOLUMNS 不支持上下文转换中的评估。这使得它几乎不可能用于测量。您将希望改用 Summarize。

感谢@Randy Minder 的提示,我得以解决问题:

  1. SUMMARIZE 而不是 SUMMARIZECOLUMNS 成功了。
  2. 我只需要过滤掉 BLANK 个值,最后得到以下代码:
Top of the Week % = 
    MAXX(
        TOPN(
            1,
            FILTER(
                SUMMARIZE(
                    ALL('Daily Tasks'[Task Type]),
                    'Daily Tasks'[Task Type],
                    "Ratio", 
                    [AHT Ratio Week]
                ),
                NOT(ISBLANK([Ratio]))
            ),
            [Ratio],
            ASC
        ),
        [Ratio] - 1
    )