📜  Excel DAX-使用时间智能(1)

📅  最后修改于: 2023-12-03 14:41:02.227000             🧑  作者: Mango

Excel DAX-使用时间智能

Excel Power Pivot是Excel中的一个数据建模工具,它基于Excel中的DAX语言(数据分析表达式)。DAX是一种类似Excel公式的语言,但是它比Excel公式强大的多,能够进行更高级的数据建模和数据分析。

当涉及到时间智能时,DAX语言能够提供一些非常强大的功能,如对时间进行分组,计算运营时间,比较时间等等。下面是一些使用DAX语言实现时间智能的例子。

累积值

累积值是某个指标在一段时间内不断增加的总和。在Excel中,可以使用SUM函数和运算符进行计算,但在DAX中,可以使用累积总数函数来计算。

例:累积销售额

Cumulative Sales :=
CALCULATE(
    SUM('Sales'[Sales Amount]),
    FILTER(
        ALL('Date'[Date]),
        'Date'[Date] <= MAX('Date'[Date])
    )
)
积分值

积分值是某个指标在一段时间内的平均值。在Excel中,可以使用AVERAGE函数来计算,而在DAX中,可以使用运算符和累计函数来计算。

例:平均销售额

Average Sales :=
CALCULATE(
    SUM('Sales'[Sales Amount]) / COUNTROWS('Date'),
    FILTER(
        ALL('Date'[Date]),
        'Date'[Date] <= MAX('Date'[Date])
    )
)
唯一值计数

唯一值计数是指在一段时间内某个指标出现的独立值的数量。在Excel中,可以使用COUNTIF函数来计算,而在DAX中,可以使用DISTINCTCOUNT函数来计算。

例:不同地区的销售额

Unique Region Sales :=
CALCULATE(
    DISTINCTCOUNT('Sales'[Region]),
    FILTER(
        ALL('Date'[Date]),
        'Date'[Date] <= MAX('Date'[Date])
    )
)
百分比变化

百分比变化是指在两个时间点之间某个指标值的变化。在Excel中,可以使用运算符和百分比格式来计算,而在DAX中,可以使用运算符和累积函数来计算。

例:销售额增长率

Sales Growth % :=
IF(
    ISBLANK(CALCULATE(SUM('Sales'[Sales Amount]), DATEADD('Date'[Date], -1, YEAR))),
    BLANK(),
    DIVIDE(
        CALCULATE(SUM('Sales'[Sales Amount]), 'Date'[Date] = MAX('Date'[Date])),
        CALCULATE(SUM('Sales'[Sales Amount]), DATEADD('Date'[Date], -1, YEAR))
    ) - 1
)
时间聚合

时间聚合是将某个指标按照时间进行分组和计算。在Excel中,可以使用数据透视表来计算,而在DAX中,可以使用各种时间函数来计算。

例:按月份统计销售额

Sales by Month :=
CALCULATE(
    SUM('Sales'[Sales Amount]),
    FILTER(
        ALL('Date'[Date]),
        YEAR('Date'[Date]) = YEAR(MAX('Date'[Date])) && MONTH('Date'[Date]) <= MONTH(MAX('Date'[Date]))
    )
)

总之,Excel Power Pivot和DAX语言是非常强大的数据建模和分析工具,尤其在涉及到时间智能的场景下,能够提供丰富的功能和灵活的应用。