本篇汇总 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)整理制作