专栏首页公众号PowerBI大师东哥陪你学PowerBI——日期表

东哥陪你学PowerBI——日期表

常在群里看到很多关于对日期表的疑问和困惑,尤其是刚进群的初学者。那今天我们就来聊一下,日期表是怎么回事,在业务分析里究竟起了什么作用?

日期表,故名思义,就是存放日期的表

新人常会感到困惑,业务表(销量、业绩、采购、检验、出/入库等单据)里不都有日期列吗,为什么还要把日期放在一张额外的表里?

大家都知道,不管零售、制造、金融还是其他什么行业,但凡涉及到数据统计,都离不开日期维度的分析,如累计销量、环比增速、同比增长等。对于此类问题,DAX专门提供了一批函数来解决,就是“时间智能函数”(公众号之前的“东哥陪你学DAX”系列卡片已经介绍过不少)

时间智能函数的参数大多以日期为主,之所以不用业务表的日期列,是因为单独日期表有以下几个特点:

  1. 日期表的日期是独立完整的,没有缺失,这对时间智能函数来说很重要。业务表里的日期只有业务发生时才会有记录,否则就缺失
  2. 日期表除了自带的日期列,可以衍生出其他日期相关列,诸如年、月、日、季、周等,一年365行数据。 业务表就不同了,一个公司有N个部门,一个部门有N个员工,假如每个员工每天产生一条业务数据,那一年要多少行?如果想按季统计销量,按月统计采购、按周统计销量、就必须同时扩充这三张表里的日期列——毫无效率,凭添隐患

下图就是最明显的实证,业务日期的缺失,当天没有业绩可以理解,但全月累计还是要正常统计,不应略过,使用单独日期表就不会出现这种情况

下面我们来介绍几种建立日期表的方法

1、在EXCEL中建立日期表,导入PBI

A列通过下拉填充完成,B/C/D都是通过EXCEL公式获取

B2 = year(A2),C2 = month(A2),D2 = day(A2)

导入PBI后,若想继续提取日期信息并增加列,可以在PQ界面里可以通过“添加列”的日期菜单来执行

也可以通过“自定义列”来设置更复杂的日期信息(该对话框里输入的是M语言,与DAX不同)

2、在PBI中利用DAX函数建立日期表

(calendar和calendarauto两个函数可参见之前的DAX专题)

往期回顾:CalendarCalendarAuto

3、在PBI中用ADDCOLUMNS建立日期表

实际业务里,ADDCOLUMNS比单纯使用calendar更便捷更灵活

4、在PBI中用var + return建立日期表

5、在PBI的Power Query里建立日期表

这个方法在DAX函数Calendar卡片里也有提到过,用的是M语言。严格来说,这并不是建立日期表的最佳方案,因为它可以指定间隔,也就是说,它可以生成非连续日期的日期表,因此要谨慎对待

本文分享自微信公众号 - PowerBI大师(PowerBIMaster),作者:东军

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-05-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 东哥陪你学DAX — date/edate/eomonth

    虽然这点差异不会引起语法错误,但在有些应用场景下,业务逻辑会因此出现偏差,并且通过常规测试手段较难发现,务必引起警觉

    公众号PowerBI大师
  • 东哥陪你学PowerBI——通过RFM模型分析客户价值

    本章通过分析某店铺会员消费数据,将每个会员的R、F、M得分值与平均值做对比 (每个要素好于平均值记为A,比平均值差记为B), 将会员分为以下八种,以便针对性做...

    公众号PowerBI大师
  • 东哥陪你学DAX — Dateadd/Parallelperiod/Sameperiodlastyear

    当然,我们依然可以通过嵌套组合calculate/sum/average等基本函数来实现,但每次都要输入冗长繁琐的公式,必然效率低下

    公众号PowerBI大师
  • 东哥陪你学DAX——Treatas

    相信大家都遇到过下图这种情况,两表之间拉扯半天,虚线就是没法变成实线,表关联就是这么倔,不给面子

    公众号PowerBI大师
  • 东哥陪你学DAX——Values

    不管是列或表,只要有重复值,Values就能把它们给挤掉,保证在给你的返回结果里,一个萝卜一个坑

    公众号PowerBI大师
  • 上下文系列小讲堂(四)

    很多人下意识地的在脑子里把客户ID和订单日期排序,再手工添加个递增填充列就完事——典型的Excel思路

    公众号PowerBI大师
  • 东哥陪你学DAX — Datediff/Yearfrac

    yearfrac也是计算两个日期的间隔,不过这个间隔不用具体的年月天数来表示,而是通过相隔天数占一年的比例来表示

    公众号PowerBI大师
  • 东哥陪你学DAX — Year/Month/Day/weekday/weeknum

    公众号PowerBI大师
  • 东哥陪你学DAX — Filter

    迭代函数可以直接创建“行上下文”,它遍历整个表,为表的每一行执行相同的DAX表达式,后续再根据不同函数执行不同操作

    公众号PowerBI大师
  • 东哥陪你学DAX——Earlier

    初看earlier,会以为这是个跟时间相关的函数,字面上不就是更早的意思吗?其实不然

    公众号PowerBI大师
  • 东哥陪你学DAX——Distinct

    “参照完整性”是数据库术语,是关系模型的三大约束之一,也是搭建表结构、设计表关联的遵循原则

    公众号PowerBI大师
  • 东哥陪你学DAX——RankX

    现实业务中,经常需要对类似业绩之类的数据进行排序。DAX有一个函数RankX,就是专门用来实现该功能的。RankX有5个参数(2个必选,3个可选),可以实现大部...

    公众号PowerBI大师
  • 东哥陪你学DAX——ALL

    ALL系列函数包含:all, allselected, allexcept, allnoblankrow, allcrossfiltered等

    公众号PowerBI大师
  • 东哥陪你学DAX——ALLEXCEPT

    公众号PowerBI大师
  • 东哥陪你学DAX——Find

    公众号PowerBI大师
  • 东哥陪你学DAX——Contains

    而Contains是在列中查找指定值,并且是精确匹配,结果只有两种:true或false

    公众号PowerBI大师
  • 东哥陪你学DAX——Search

    公众号PowerBI大师
  • 东哥陪你学DAX——ALLSELECTED(上篇)

    链接:https://pan.baidu.com/s/185rjMpK8kxSRX4oTrRXKtA

    公众号PowerBI大师
  • 东哥陪你学PowerBI——如何在柱状图里自定义排序

    无论你是不是门外汉(鼠标左右键不分,单双击不分的,不在此列),相信做到这一步应该都没什么问题

    公众号PowerBI大师

扫码关注云+社区

领取腾讯云代金券