计算 Power BI 中 02 个不同年份的月数

时间:2021-02-15 10:30:10

标签: powerbi dax

我正在计算两个不同年份的月数。这意味着如果我选择从 2020 年 1 月 1 日至今的日期过滤器,我需要显示 2020 年有 12 个月,2021 年从 1 月至今有 02 个月。我想单独显示 02 张卡片显示月份。有没有办法做到这一点?我尝试了 Datediff。但它显示了 2020 年至今的月数。有人可以帮我弄到这个吗?

谢谢

1 个答案:

答案 0 :(得分:0)

假设您只有一个仅包含 'Date'[Date] 列的表,例如

Date = CALENDAR("2019-01-01", "2021-12-31")

您可以编写两种度量,一种用于获取选择中去年的月份和上一年的月份

# Months = 
VAR CurrentYear = YEAR( MAX( 'Date'[Date] ) ) 
VAR CurrentYearDates = FILTER( 'Date', YEAR( 'Date'[Date] ) = CurrentYear )
VAR Months = SELECTCOLUMNS( CurrentYearDates, "Month", MONTH( 'Date'[Date] ) )
RETURN
    COUNTROWS( DISTINCT ( Months ) )


# Months PY = 
VAR PY = YEAR( MAX( 'Date'[Date] ) ) - 1
VAR PYDates = FILTER( 'Date', YEAR( 'Date'[Date] ) = PY )
VAR Months = SELECTCOLUMNS( PYDates, "Month", MONTH( 'Date'[Date] ) )
RETURN
    COUNTROWS( DISTINCT ( Months ) )

这允许为每张卡片分配一个度量

power BI visuals

这可以通过带有年和月的日期表来简化

Date = 
ADDCOLUMNS (
    CALENDAR ( "2019-01-01", "2021-12-31" ),
    "Year", YEAR ( [Date] ),
    "Month", MONTH ( [Date] )
)

# Months = 
VAR CurrentYear = YEAR( MAX( 'Date'[Date] ) ) 
RETURN
    CALCULATE( DISTINCTCOUNT( 'Date'[Month] ), 'Date'[Year] = CurrentYear )


# Months PY = 
VAR PY  = YEAR( MAX( 'Date'[Date] ) ) - 1
RETURN
    CALCULATE( DISTINCTCOUNT( 'Date'[Month] ), 'Date'[Year] = PY )