时间是个神奇的概念,在数据分析中也是一个非常重要的维度,PowerBI里面时间日期函数和Excel里面差不多,功能也一样,所以打算用一篇写一下,如果对Excel里面的函数非常熟悉了,大概浏览一遍就行了,应该还是有那么几个可以加深一下印象,下面就开始了。

【TODAY】


TODAY()

返回当前日期,默认是返回datetime格式,但是时间部分全是0。


今天 = TODAY()

【NOW】


NOW()

以datetime格式返回当前日期和时间,精确到秒。


现在 = NOW()

【DAY】


DAY(<date>)

返回一月中的日期,1到31之间的数字。


月第N天 = DAY([日期])

【WEEKDAY】


WEEKDAY(<date>, <return_type>)

返回指示日期属于星期几的数字,1到7之间的数字。这里需要注意返回类型:

  • 返回类型:1,周从星期日 (1) 开始,到星期六 (7) 结束;

  • 返回类型:2,周从星期一 (1) 开始,到星期日 (7) 结束;

  • 返回类型:3,周从星期一 (0) 开始到星期日 (6) 结束。


星期几(1) = WEEKDAY([今天],1)

星期几(2) = WEEKDAY([今天],2)

星期几(3) = WEEKDAY([今天],3)

【WEEKNUM】


WEEKNUM(<date>[, <return_type>])

根据return_type值返回给定日期的周数。

有两个系统用于此函数:

  • 系统1:包含1月1日的周是一年的第一周,编号为第1周;

  • 系统2:包含一年第一个星期四的周是一年的第一周,编号为第1周。

    return_type周开始于系统

    • 1 或省略星期日1

    • 2星期一1

    • 21星期一2

第N周1 = WEEKNUM([日期],1)

第N周2 = WEEKNUM([日期],2)

第N周21 = WEEKNUM([日期],21)

【MONTH】


MONTH(<datetime>)

以数字形式返回月份值,1到12之间的数字。


第N月 = MONTH([日期])

【QUARTER】


QUARTER(<date>)

将季度返回为从1到4的数值。


第N季度 = QUARTER([日期])

【YEAR】


YEAR(<date>)

返回日期的年份,1900到9999之间的四位整数。


第N年 = YEAR([日期])

【HOUR】


HOUR(<datetime>)

以数字形式返回小时值,0到23之间的数字。


小时数 = HOUR([现在])

【MINUTE】


MINUTE(<datetime>)

给定日期和时间值,以数字形式返回分钟值,0到59之间的数字。


分钟数 = MINUTE([现在])

【SECOND】


SECOND(<datetime>)

以数字形式返回时间值的秒数,0到59之间的数字。


秒数 = SECOND([现在])

【DATE】


DATE(<year>, <month>, <day>)

以日期/时间格式返回指定的日期。


DATE日期 = DATE([第N年],[第N月],[月第N天])

【TIME】


TIME(hour, minute, second)

将以数值形式给定的小时、分钟和秒值转换为日期/时间格式的时间。


Time小时 = TIME([小时数],[分钟数],[秒数])

【DATEDIFF】


DATEDIFF(<start_date>, <end_date>, <interval>)

返回两个日期之间跨越的间隔边界的计数。

  • start_date:标量日期/时间值;

  • end_date:标量日期/时间值返回值;

  • interval:比较日期时要使用的间隔。值可以是下列任一值:

- SECOND

- MINUTE

- HOUR

- DAY

- WEEK

- MONTH

- QUARTER

- YEAR

间隔年数 = DATEDIFF([日期],[现在],YEAR)

间隔季度数 = DATEDIFF([日期],[现在],QUARTER)

间隔月数 = DATEDIFF([日期],[现在],MONTH)

间隔周数 = DATEDIFF([日期],[现在],WEEK)

间隔天数 = DATEDIFF([日期],[现在],DAY)

间隔小时 = DATEDIFF([日期],[现在],HOUR)

间隔分钟 = DATEDIFF([日期],[现在],MINUTE)

【EDATE】


EDATE(<start_date>, <months>)

返回在开始日期之前或之后指定月份数的日期。

3月后 = EDATE([今天],3)

3月前 = EDATE([今天],-3)

如果遇到月份最大天数小于开始日期月份天数,就会返回实际月份的最大值。比如2月最大28天,3月最大31天,如果3月作为开始月份,那么28-31号这几天减1个月到2月份都会显示2.28号↓


特殊2月 = EDATE(DATE(2021,3,30),-1)

【EOMONTH】

EOMONTH(<start_date>, <months>)

以日期/时间格式返回指定月份数之前或之后的月份的最后一天的日期。

有的时候需要通报每月数据完成率,但需要结合实际时间进度来看,看看完成率和时间进度是否一致,就可以通过这个函数进行计算了↓

本月最后一天 = EOMONTH([今天],0)

本月剩余天数 = DATEDIFF([今天],[本月最后一天],DAY)

本月时间进度 = DIVIDE(DAY([今天]),DAY([本月最后一天]))

【YEARFRAC】


YEARFRAC(<start_date>, <end_date>, <basis>)

计算两个日期之间的天数占全年天数的比值,比如开始日期是2021.3.1号,结束日期是2021.4.3,相差33天,那么他们的结果就是33/365。有个basis参数需要注意,去不同的值除以的数量不一样,一般情况选1就行了。

  • 0 - 美国 (NASD) 30/360

  • 1 - 实际天数/实际天数

  • 2 - 实际天数/360

  • 3 - 实际天数/365

  • 4 - 欧洲 30/360

YearF0 = YEARFRAC([日期],[今天],0)

YearF1 = YEARFRAC([日期],[今天],1)

YearF2 = YEARFRAC([日期],[今天],2)

YearF3 = YEARFRAC([日期],[今天],3)

End

举报/反馈

Lin王发林

395获赞 403粉丝
用心创作内容,感谢您的关注。
关注
0
0
收藏
分享