Power Query支持数据模型,可以将多种数据添加到数据模型,然后建立关联关系并进行后续分析。有些时候会使用类似于数据仓库星形模型的方式进行关联,这里常用的两类表为维度表和事实表。维度表是维度属性的集合,是分析问题的一个窗口;事实表通常是数据仓库结构中的中央表,它包含联系事实与维度表的数字度量值和键。更详细的内容请参阅相关资料。

维度表从概念上理解似乎有些抽象,接下来举个例子。Excel工作表销售数据如下图所示。

创建数据透视表并添加切片器,如下图所示,切片器中可以按时间维度的不同层级(日,月,季度,年)进行切片,完成数据筛选。

如果组数据分析时需要对数据进行更多层次的聚合,那么使用数据模型中的数据表和时间维度表关联是个不错的选择。时间维度表其实并不复杂,典型的时间维度表如下图所示。

对于Excel的重度使用者来说,用公式创建这样的时间维度表也不需要太高深的水平,基本上日期函数+字符串函数就够用了。这次咱们剑走偏锋,使用Power Query来创建时间维度表,在实战中学习更多的PQ知识点。

创建时间维度表整体可以分为两步:

  • 创建日期序列:对于上图中的日期序列,当然可以从工作表导入到PQ,既然是用PQ实现,那么我们全部在PQ编辑器中实现。
  • 创建后续其他更多的列

步骤1:依次单击【数据】选项卡=>【新建查询】=>【从其他源】=>【空白查询】

步骤 2:在PQ对话框的公式编辑框中输入= #date(2018,1,1)并按回车键。

在窗口中可以看到输入的日期,如下图所示。

打开【高级编辑器】可以查看PQ公式,如下图所示。

为了便于后续的引用修改PQ公式如下。

letFirstDate = #date(2018,1,1)
inFirstDate

时间维度表中日期范围通常都是多个日期,那么如何输入呢?已经有了起始日期,接下来编辑PQ公式输入截止日期。

步骤3:打开【高级编辑器】修改PQ公式,添加截止日期。

letFirstDate = #date(2018,1,1),LastDate = #date(2019,12,31)
inLastDate

结果如下图所示。

步骤4:打开【高级编辑器】修改PQ公式,生成日期序列列表。

letFirstDate = #date(2018,1,1),LastDate = #date(2019,12,31), CalDates = {Number.From(FirstDate) .. Number.From(LastDate)}
inCalDates

{起始数值 .. 终止数值}用于创建一个数值列表,起始值和终止值之间一定两个点号分隔,{Number.From(日期)将日期转换为数值。

结果如下图所示,不难看出第一列为数值,并不是日期,但是PQ中列表无法进行类型转换,所以需要先转换为表。

步骤5:单击【转换】选项卡的【到表】按钮将列表转换为表。

步骤6:在弹出的对话框中,保持默认选项,单击【确定】按钮完成转换。

步骤7:转换的结果如下图所示,依次单击【数据类型】=>【日期】,将第一列的转换为日期格式。

终于见到了我们的日期序列。


未完待续 … …

相关文章链接如下:
PQ制作时间维度表(1)
PQ制作时间维度表(2)
PQ制作时间维度表(3)
PQ制作时间维度表(4)
PQ制作时间维度表(5)
PQ制作时间维度表(6)
PQ制作时间维度表(7)

BI神器Power Query(12)-- PQ创建时间维度表(1)相关推荐

  1. BI神器Power Query(18)-- PQ制作时间维度表(7)

    在上一篇博客中,通过Date.ToText和Date.DayOfWeekName函数创建了新的数据列,如下图所示. 有时需要使用年月和年月日等日期格式,有两种实现方法. 利用前面已经提取的年.月.日, ...

  2. BI神器Power Query(17)-- PQ制作时间维度表(6)

    在上一篇博客中,通过Text.From函数创建了"年份"."季度"和"月份"列数据列,如下图所示. 大家都知道在Excel中日期格式有很多种 ...

  3. BI神器Power Query(13)-- PQ制作时间维度表(2)

    在上一篇博客中,创建了日期序列,如下图所示. 接下来我们继续创建时间维度表的其他列,依次单击[添加列]选项卡=>[日期]下拉按钮=>[仅日期],将添加新列,可以从指定数据列(例如包含日期和 ...

  4. BI神器Power Query(14)-- PQ制作时间维度表(3)

    在上一篇博客中,根据日期序列新建了文本日期列,如下图所示. 接下来将在时间维度表新建整数型的日期列,使用上一篇博客中添加自定义列的方法可以实现这个要求,本文将使用不同的操作方法来实现. 选中" ...

  5. BI神器Power Query(15)-- PQ制作时间维度表(4)

    在上一篇博客中,使用[重复列]添加新列,如下图所示. 接下来讲解一下[添加列]选项卡中[日期]按钮的使用方法. 如果选中的列不是日期类型,那么多数功能将被禁用,如下图所示. 选中[Date]列,依次单 ...

  6. BI神器Power Query(16)-- PQ制作时间维度表(5)

    在上一篇博客中,使用[添加列]选项卡中[日期]按钮的相关添加新列,如下图所示. 虽然这些内置功能已经添加了年月日等列,但是实际使用中可能会用到多种不同的形式,例如2019年四季度会记作:Y2019Q4 ...

  7. BI神器Power Query(8)-- PQ从文本文件导入数据(2/2)

    文本文件是大家经常使用的数据文件格式,PQ可以方便的导入文本文件中的数据,然后在Excel可以进行后续加工和处理. 依次单击[数据]选项卡>[新建查询]>[从文件],其中的[从CSV]和[ ...

  8. BI神器Power Query(6)-- PQ从工作簿导入数据(2/2)

    对于Power BI的用户多数都是Excel重度用户,因此在PQ中导入Excel工作薄文件是多数用户都会遇到的场景,本博文讲解从工作簿导入数据时的几个典型应用方式. 续前文:BI神器Power Que ...

  9. BI神器Power Query(5)-- PQ从工作簿导入数据(1/2)

    对于Power BI的用户多数都是Excel重度用户,因此在PQ中导入Excel工作薄文件是多数用户都会遇到的场景,本博文讲解从工作簿导入数据时的几个典型应用方式. 示例工作簿文件文件中有如下4个工作 ...

最新文章

  1. 大数据可视化技术面临的挑战及应对措施
  2. 工业云计算在中国工业领域的发展与应用趋势
  3. 实体银行网点一定被消灭?银行如何平衡数字创新与线下体验?
  4. 通读AFN②--AFN的上传和下载功能分析、SessionTask及相应的session代理方法的使用细节...
  5. Editability on SAP Text
  6. 前端学习(3196):虚拟dom和真实dom
  7. 【剑指offer】二叉搜索树转双向链表,C++实现
  8. SQLserver C#将图片以二进制方式存储到数据库,再从数据库读出图片
  9. Android开机画面显示
  10. Unity网络教程翻译(三)多人游戏大厅
  11. windows”出现身份验证错误,要求的函数不正确“的解决方法
  12. 水题 ZOJ 3880 Demacia of the Ancients
  13. python 判断一个list列表是否包含另一个list列表
  14. 二维码活码的诞生、技术原理及使用场景
  15. PRA006/PRA010 开发板,Quartus Altera JTAG 配置,以及常见故障解决
  16. android 启动流程
  17. ios使用el-select的远程搜索无法唤起软键盘
  18. 操作系统怎么把文件放到docker容器里
  19. win10 mysql 1030_Win10系统打开按键精灵提示#1030:启动脚本执行(图)
  20. 猫眼电影MySQL数据库怎么写_猫眼电影和电影天堂数据csv和mysql存储

热门文章

  1. Selenium page_load_strategy设置页面加载策略
  2. 2021-03-17
  3. 抢占式实例在小博无线的应用
  4. 利用python从网络上爬取图片_一篇文章教会你利用Python网络爬虫抓取王者荣耀图片...
  5. 计算机会计和传统手工会计的区别,电算化会计与传统手工会计的区别
  6. RMQ倍增,附赠有趣小故事一发
  7. 什么是CSTC价值协议
  8. git添加/删除远程仓库
  9. 强制域名使用 HTTPS(SSL)
  10. Angularjs常见错误原因及解决Error: [$injector:unpr] http://errors.angularjs.org/1.2.9/$injector/unpr?