本篇汇总 DAX「时间智能函数」共 47 个函数,常用函数标 🔥。每个函数附语法、示例与参数说明。

函数 说明 语法 示例
DATEADD 🔥 按指定间隔移动日期。 DATEADD(<dates>, <number_of_intervals>, <interval>) CALCULATE(SUM(Sales[Amount]), DATEADD(Sales[Date], -1, YEAR))
DATESBETWEEN 🔥 返回两个日期之间的日期表。 DATESBETWEEN(<dates>, <start_date>, <end_date>) DATESBETWEEN(Sales[Date], DATE(2020,1,1), DATE(2020,12,31))
DATESMTD 🔥 返回当前上下文中本月迄今为止的日期。 DATESMTD(<dates>) CALCULATE(SUM(Sales[Amount]), DATESMTD(Sales[Date]))
DATESYTD 🔥 返回当前上下文中本年度迄今为止的日期。 DATESYTD(<dates>) CALCULATE(SUM(Sales[Amount]), DATESYTD(Sales[Date]))
PARALLELPERIOD 🔥 返回上一期、下一期或同一期的周期。 PARALLELPERIOD(<dates>, <number_of_intervals>, <interval>) CALCULATE(SUM(Sales[Amount]), PARALLELPERIOD(Sales[Date], -1, YEAR))
PREVIOUSMONTH 🔥 返回上一月所有日期的表。 PREVIOUSMONTH(<dates>) CALCULATE(SUM(Sales[Amount]), PREVIOUSMONTH(Sales[Date]))
PREVIOUSYEAR 🔥 返回上一年所有日期的表。 PREVIOUSYEAR(<dates>) CALCULATE(SUM(Sales[Amount]), PREVIOUSYEAR(Sales[Date]))
SAMEPERIODLASTYEAR 🔥 返回上一年同一时期(相对日期范围)的日期集。 SAMEPERIODLASTYEAR(<dates>) CALCULATE(SUM(Sales[Amount]), SAMEPERIODLASTYEAR(Sales[Date]))
TOTALMTD 🔥 计算当前上下文中本月迄今为止的表达式。 TOTALMTD(<expression>, <dates>) TOTALMTD(SUM(Sales[Amount]), Sales[Date])
TOTALYTD 🔥 计算当前上下文中本年度迄今为止的表达式。 TOTALYTD(<expression>, <dates>) TOTALYTD(SUM(Sales[Amount]), Sales[Date])
CLOSINGBALANCEMONTH 计算某月最后一天的当前上下文中的表达式。 CLOSINGBALANCEMONTH(<expression>, <dates>) CLOSINGBALANCEMONTH(SUM(Sales[Amount]), Sales[Date])
CLOSINGBALANCEQUARTER 计算某季度最后一天的当前上下文中的表达式。 CLOSINGBALANCEQUARTER(<expression>, <dates>) CLOSINGBALANCEQUARTER(SUM(Sales[Amount]), Sales[Date])
CLOSINGBALANCEWEEK 返回当前周最后一天的累计值。 CLOSINGBALANCEWEEK(<expression>, <dates>, [<filter>], [<year_end>]) CLOSINGBALANCEWEEK(SUM(Sales[Amount]), Sales[Date])
CLOSINGBALANCEYEAR 计算某年最后一天的当前上下文中的表达式。 CLOSINGBALANCEYEAR(<expression>, <dates>) CLOSINGBALANCEYEAR(SUM(Sales[Amount]), Sales[Date])
DATESDIF 返回两个日期之间的差值。 DATESDIF(<start_date>, <end_date>, <unit>) DATESDIF(DATE(2020,1,1), DATE(2020,12,31), DAY)
DATESINPERIOD 返回一段时间内的日期表。 DATESINPERIOD(<dates>, <start_date>, <number_of_intervals>, <interval>) DATESINPERIOD(Sales[Date], TODAY(), -30, DAY)
DATESQTD 返回当前上下文中本季度迄今为止的日期。 DATESQTD(<dates>) CALCULATE(SUM(Sales[Amount]), DATESQTD(Sales[Date]))
ENDOFMONTH 返回当前上下文月份的最后一天。 ENDOFMONTH(<dates>) ENDOFMONTH(Sales[Date])
ENDOFQUARTER 返回当前上下文季度的最后一天。 ENDOFQUARTER(<dates>) ENDOFQUARTER(Sales[Date])
ENDOFWEEK 返回当前周的最后一天。 ENDOFWEEK(<dates>, [<first_day_of_week>]) ENDOFWEEK(Sales[Date])
ENDOFYEAR 返回当前上下文年份的最后一天。 ENDOFYEAR(<dates>) ENDOFYEAR(Sales[Date])
FIRSTDATE 返回当前上下文中第一个日期。 FIRSTDATE(<dates>) FIRSTDATE(Sales[Date])
FIRSTNONBLANK 返回表达式不为空的第一个值。 FIRSTNONBLANK(<column>, <expression>) FIRSTNONBLANK(Sales[Date], SUM(Sales[Amount]))
LASTDATE 返回当前上下文中最后一个日期。 LASTDATE(<dates>) LASTDATE(Sales[Date])
LASTDAY 返回指定日期所在月份的最后一天。 LASTDAY(<dates>) LASTDAY(Sales[Date])
LASTNONBLANK 返回表达式不为空的最后一个值。 LASTNONBLANK(<column>, <expression>) LASTNONBLANK(Sales[Date], SUM(Sales[Amount]))
MTD 返回当前上下文中本月迄今为止的日期(使用 DATESMTD)。 MTD(<dates>) CALCULATE(SUM(Sales[Amount]), MTD(Sales[Date]))
NEXTDAY 返回下一天所有日期的表。 NEXTDAY(<dates>) CALCULATE(SUM(Sales[Amount]), NEXTDAY(Sales[Date]))
NEXTMONTH 返回下一月所有日期的表。 NEXTMONTH(<dates>) CALCULATE(SUM(Sales[Amount]), NEXTMONTH(Sales[Date]))
NEXTQUARTER 返回下一季度所有日期的表。 NEXTQUARTER(<dates>) CALCULATE(SUM(Sales[Amount]), NEXTQUARTER(Sales[Date]))
NEXTWEEK 返回下周的所有日期表。 NEXTWEEK(<dates>, [<first_day_of_week>]) NEXTWEEK(Sales[Date])
NEXTYEAR 返回下一年所有日期的表。 NEXTYEAR(<dates>) CALCULATE(SUM(Sales[Amount]), NEXTYEAR(Sales[Date]))
OPENINGBALANCEMONTH 计算某月第一天的当前上下文中的表达式。 OPENINGBALANCEMONTH(<expression>, <dates>) OPENINGBALANCEMONTH(SUM(Sales[Amount]), Sales[Date])
OPENINGBALANCEQUARTER 计算某季度第一天的当前上下文中的表达式。 OPENINGBALANCEQUARTER(<expression>, <dates>) OPENINGBALANCEQUARTER(SUM(Sales[Amount]), Sales[Date])
OPENINGBALANCEWEEK 返回当前周第一天的累计值。 OPENINGBALANCEWEEK(<expression>, <dates>, [<filter>], [<year_end>]) OPENINGBALANCEWEEK(SUM(Sales[Amount]), Sales[Date])
OPENINGBALANCEYEAR 计算某年第一天的当前上下文中的表达式。 OPENINGBALANCEYEAR(<expression>, <dates>) OPENINGBALANCEYEAR(SUM(Sales[Amount]), Sales[Date])
PREVIOUSDAY 返回前一天所有日期的表。 PREVIOUSDAY(<dates>) CALCULATE(SUM(Sales[Amount]), PREVIOUSDAY(Sales[Date]))
PREVIOUSQUARTER 返回上一季度所有日期的表。 PREVIOUSQUARTER(<dates>) CALCULATE(SUM(Sales[Amount]), PREVIOUSQUARTER(Sales[Date]))
PREVIOUSWEEK 返回上周的所有日期表。 PREVIOUSWEEK(<dates>, [<first_day_of_week>]) PREVIOUSWEEK(Sales[Date])
QTD 返回当前上下文中本季度迄今为止的日期(使用 DATESQTD)。 QTD(<dates>) CALCULATE(SUM(Sales[Amount]), QTD(Sales[Date]))
STARTOFMONTH 返回当前上下文月份的第一天。 STARTOFMONTH(<dates>) STARTOFMONTH(Sales[Date])
STARTOFQUARTER 返回当前上下文季度的第一天。 STARTOFQUARTER(<dates>) STARTOFQUARTER(Sales[Date])
STARTOFWEEK 返回当前周的第一天。 STARTOFWEEK(<dates>, [<first_day_of_week>]) STARTOFWEEK(Sales[Date])
STARTOFYEAR 返回当前上下文年份的第一天。 STARTOFYEAR(<dates>) STARTOFYEAR(Sales[Date])
TOTALQTD 计算当前上下文中本季度迄今为止的表达式。 TOTALQTD(<expression>, <dates>) TOTALQTD(SUM(Sales[Amount]), Sales[Date])
TOTALWTD 计算当前周内的度量值累计。 TOTALWTD(<expression>, [<dates>], [<filter>], [<year_end>]) TOTALWTD(SUM(Sales[Amount]), Sales[Date])
YTD 返回当前上下文中本年度迄今为止的日期(使用 DATESYTD)。 YTD(<dates>) CALCULATE(SUM(Sales[Amount]), YTD(Sales[Date]))

热门函数参数详解

DATEADD

按指定间隔移动日期。

参数 说明
dates 包含日期的列。
number_of_intervals 要移动的间隔数。正数向前,负数向后。
interval 间隔单位:DAY、MONTH、QUARTER、YEAR。

DATESBETWEEN

返回两个日期之间的日期表。

参数 说明
dates 包含日期的列。
start_date 起始日期。
end_date 结束日期。

DATESMTD

返回当前上下文中本月迄今为止的日期。

参数 说明
dates 包含日期的列。

DATESYTD

返回当前上下文中本年度迄今为止的日期。

参数 说明
dates 包含日期的列。该列必须属于日期表或与日期表相关联。

PARALLELPERIOD

返回上一期、下一期或同一期的周期。

参数 说明
dates 包含日期的列。
number_of_intervals 要移动的期数。正数向前,负数向后。
interval 间隔单位:MONTH、QUARTER、YEAR。

PREVIOUSMONTH

返回上一月所有日期的表。

参数 说明
dates 包含日期的列。返回上一个月所有日期的表。

PREVIOUSYEAR

返回上一年所有日期的表。

参数 说明
dates 包含日期的列。返回上一年1月1日到12月31日的日期表。

SAMEPERIODLASTYEAR

返回上一年同一时期(相对日期范围)的日期集。

参数 说明
dates 包含日期的列。返回当前日期范围在上一年的对应日期范围。

TOTALMTD

计算当前上下文中本月迄今为止的表达式。

参数 说明
expression 要计算累计值的表达式。
dates 包含日期的列。

TOTALYTD

计算当前上下文中本年度迄今为止的表达式。

参数 说明
expression 要计算累计值的表达式。
dates 包含日期的列。

由在线工具箱(www.vba.net)整理制作