首页 > 解决方案 > 如何在power bi中找到组内的最小值和最大值

问题描述

我正在尝试找到一个 DAX 公式以显示在卡片中以显示一年和一周之间的季节范围。我想得到最小年的最小周和最大周和最大年:

我有下表:

在此处输入图像描述

我想显示如下卡片:“2020-33 和 2021-1 之间”

但以下公式显示为:“2020-1 和 2021-52 之间”

谁能帮我找到DAX以显示正确的卡?

我目前的公式如下:

Min_Season =
CALCULATE (
    MIN ( 'Year-Week_Table'[Year] ),
    FILTER ( 'Flag-Year-Week_Table', 'Flag-Year-Week_Table'[STD_CY_Ind] = 1 )
) & "-"
    & CALCULATE (
        MIN ( 'Year-Week_Table'[Week] ),
        FILTER ( 'Flag-Year-Week_Table', 'Flag-Year-Week_Table'[STD_CY_Ind] = 1 )
    ) & " and "
    & CALCULATE (
        MAX ( 'Year-Week_Table'[Year] ),
        FILTER ( 'Flag-Year-Week_Table', 'Flag-Year-Week_Table'[STD_CY_Ind] = 1 )
    ) & "-"
    & CALCULATE (
        MAX ( 'Year-Week_Table'[Week] ),
        FILTER ( 'Flag-Year-Week_Table', 'Flag-Year-Week_Table'[STD_CY_Ind] = 1 )
    )

标签: powerbidax

解决方案


DAX 正在计算标志 = 1 的年份的最小值/最大值,然后独立计算标志 = 1 的一周的最小值/最大值,这就是结果为“2020-1 和 2021-52 之间”的原因。

您真的想要组合年和月组合的最小值/最大值,而不是独立的(例如,对于第一行 2020-33)。您可以通过首先将列与

Year-Week = 'Flag-Year-Week_Table'[Year] & "-" & 'Flag-Year-Week_Table'[Week]

然后更改您的 DAX 以考虑新列的最小值/最大值

Min_Season = 
    CALCULATE 
    (
        MIN ('Flag-Year-Week_Table'[Year-Week]), 
        FILTER ( 'Flag-Year-Week_Table', 'Flag-Year-Week_Table'[Season Flag] = 1  )
        
    )
    & " and "  & 
    CALCULATE (
        MAX ( 'Flag-Year-Week_Table'[Year-Week] ),

        FILTER ( 'Flag-Year-Week_Table', 'Flag-Year-Week_Table'[Season Flag] = 1  )
    ) 

给你结果

在此处输入图像描述


推荐阅读