数据导入

使用Power BI Desktop进行数据分析,需要先获取数据,Power BI Desktop支持从文件、数据库、Power Platform等多种数据源获取数据。为了方便练习,我们选择从文件导入Excel工作簿的数据。

步骤1:获取数据。
启动Power BI Desktop,在“主页”选项卡下的“数据”组中单击“获取数据”按钮。
在弹出的获取“获取数据”对话框,选择要连接的文件类型,单击“连接”按钮。

步骤2:选择文件。在弹出的“打开”对话框中,找到文件的保存位置,选中要导入的文件,单击“打开”按钮。

步骤3:加载数据。Power BI Desktop会加载工作簿并读取内容,然后在“导航器”对话框的左侧显示工作簿中的工作表名称列表。勾选工作表名称左侧的复选框,在右侧界面可以预览该工作表中的数据,单击“加载”按钮。

步骤4:完成导入。加载完成后,在Power BI Desktop右侧的字段窗格中会显示可用的工作表名称和字段列表,在左侧的视图区单击“数据”可查看加载完成的数据,但是数据视图中的数据只能查看,是无法编辑的,如果需要对数据进行修改和加工的操作,需要在Power Query编辑器中完成。

理解数据结构

在数据分析的工作中,常用的数据结构有表格结构、关系型表结构和非关系型表结构。

表格结构

表格结构的数据,通过单元格的列标和行号定位一个单元格或单元格区域,支持对任意单元格内容的增删改,支持合并单元格,主要应用于EXCEL、WPS等工具。

表格结构的数据是以单元格为单位进行存储和计算的,单元格之间相互独立,所以数据间关系较弱。若数据量较大或计算规则过于复杂时,不仅容易出现遗漏、重复计算,还非常耗时。

关系型表结构

相比于表格结构,关系型表结构数据更加规范,表中的列称为字段,表中的行称为记录,以字段为单位进行存储和计算。每个字段必须有字段名,且同一个表中的字段名不能重复。每个字段的数据类型必须一致,每个字段的行数相同。关系型表结构适用于EXCEL、Python、Power BI、关系型数据库等多种工具。

关系型表结构通过表间连接拓展了数据间的价值,实现多维数据探索和分析。

非关系型表结构

非关系型表结构的数据是多层级嵌套的关系,以键值对形式进行存储和计算,可以根据关键词获取对应值,因此关键词不重复。主要应用于Python中的字典和Power BI中的 Power Query等。

非关系型表结构可以很方便的根据关键词查找特定值,让我们更高效地进行数据处理和分析。在Power BI中使用Power Query编辑器进行数据处理时,就是以非关系型表结构来组织和管理数据的。

Power Query编辑器

在Power BI Desktop中,数据的编辑与整理是使用Power Query编辑器来完成的,它可以高效的进行数据清洗,让数据更加规范,为数据的可视化分析提供高质量的数据基础。

在主页选项卡中单击“转换数据”按钮,就可以启动Power Query编辑器,它是一个独立的编辑界面,可以对加载后的数据进行修改、清理和转换,并将整合后的数据重新加载到Power BI Desktop中。

Power Query编辑器主页面分布着不同的功能,方便进行数据的清洗和整理。

序号 名称 功能
1 导航栏 分布着各种可以对数据进行加工处理的功能区和选项卡
2 查询导航栏 记录当前Power BI文件使用的数据表名称
3 查询设置栏 记录对表中数据设置过的应用步骤
4 表预览窗口 显示每一步查询应用后的数据,便于用户随时查看每一步操作应用对数据的处理结果

本节会着重介绍Power Query编辑器中常用的功能,以方便进行数据的修改、清理和转换。

删除行

我们导入的原始数据是不规范的,表中的前两行是注释信息,加载到Power BI后没有匹配到列名,所以显示为默认的列名。我们在Power Query编辑器将表中前两行不规范的数据删除。

步骤1:删除最前面的几行。在“主页”选项卡的“减少行”组中单击“删除行”按钮,在展开的列表中单击“删除最前面几行”选项。

步骤2:设置删除行数。在弹出的对话框中输入行数,单击“确定”按钮即可。

将第一行用作标题

删除前两行以后,显示在第一行的内容实际是表中的标题行,我们可以选择将第一行提升为标题。

步骤1:在“主页”选项卡的“转换”组单击“将第一行用作标题”按钮,就可以将第一行记录提升为列名。

修改字段名

在Power Query编辑器中,如果需要修改字段名可以在“转换”选项卡中操作。

步骤1:在表预览窗口选中需要修改名称的字段,然后在“转换”选项卡的“任意列”组中单击“重命名”按钮。

步骤2:此时列标题呈可编辑状态,输入新的列标题后按下【Enter】键,就可以完成列标题的重命名。

删除列

在Power Query编辑器中可以看到产品表中最后两列数据显示为null,这是因为导入的原始数据中存在空值,我们可以将这两列数据直接删除。

步骤1:在表预览窗口选中要删除的字段,在“主页”选项卡的“管理列”组中单击“删除列”按钮,就可以将选中的字段删除。

添加自定义列

如果原始数据中的字段不能满足用户的分析需求,可以使用自定义列功能来添加新的字段。如销售一表销售二表中的金额这一列是以百万为单位存储的,而我们在分析报表中需要以元为单位进行可视化呈现,就可以通过添加自定义列来计算。

步骤1:在“转换”选项卡的“常规”组中单击“自定义列”按钮,弹出的自定义列对话框,在“新列名”文本框中输入自定义列的列名,在“可用列”列表框中选择用于定义新列公式的字段,双击字段名或选中字段后单击“插入”按钮,公式输入完成后单击“确定”按钮。

步骤2:添加完成后,在Power Query编辑器中可以看到新添加的字段。如果要修改自定义列,可在右侧的“查询设置”窗格中双击“已添加自定义”的步骤,将再次打开自定义列对话框进行修改。

修改数据类型

在Power BI中对数据进行分析时,可使用的函数与该数据的类型有关。例如,文本型的数据就不能使用数学函数进行运算。因此,需要在Power Query编辑器中确认数据的类型是否正确,对于数据类型与实际不符的字段需要手动修改。

默认情况下,Power BI会自动对加载的数据进行检测并设置相应的数据类型,但Power Query编辑器中添加的自定义列,默认显示的数据类型为任意,例如,我们添加的“销售金额”这个字段,而我们进行可视化分析时往往需要对“销售金额”按照不同的维度进行统计,因此需要将这个字段的数据类型修改为整数型,才可以进行汇总分析。

步骤1:选中需要修改数据类型的字段,在“主页”选项卡的“转换”组中的数据类型列表框中,选择合适的数据类型即可。

追加查询

追加查询是在现有表的下方添加另一张或多张表的数据,提前是现有表和要添加的表,它们的字段个数、顺序、数据类型和字段名必须完全一致,是将具有相同结构的表的数据进行纵向追加。如果表的结构不同,在追加时可能会出现错误。

在Power Query编辑器中可以看到销售一表和销售二表的结构是一样的,表中都是记录了每一笔订单的订单编号、客户ID、产品编号、客户名称、产品所属的行业和领域,以及每一笔订单的下单日期、发货日期和订单金额,表中字段的个数、顺序、数据类型和字段名都是一样的,这种情况下我们可以把这两张表追加为一张表。

在Power Query编辑器左侧的“查询导航栏”中选中“销售一表”,在左下角的状态栏中可以看到,这张表中目前是有9列,963行的数据。我们把销售一表的数据追加到这张表中,那么表中记录行数就会增加了。

步骤1:在“主页”选项卡的“组合”组中单击“追加查询”按钮。在弹出的追加对话框中,因为我们只需要将销售一表和销售二表的数据进行追加,因此保持默认的“两个表”即可,如果对两张以上的表进行追加,就可以选择三个或更多表。在下方的“可用表”列表框中选择要追加的表,我们当前选中的是销售二表,需要将销售一表中的数据追加到销售二表,让两张表的数据都在销售二表中显示,所以在下方要追加的表中选择销售一表,单击“确定”按钮即可。

步骤2:操作完成后,在左下角的状态栏可以看到销售二表中的记录行数变多了,也就是我们把销售一表的数据追加到销售二表当中了,所以现在销售二表中包含两张表所有的订单记录。

如果在Power Query编辑器中对数据执行了错误的操作或多余的操作,想要撤销该操作,可在右侧的“查询设置”窗格的“应用的步骤”中单击该操作前代表删除功能的按钮来删除该操作。

M函数

当每次在Power Query编辑器中使用以上功能按钮对数据进行操作时,其后台都是调用相对应的脚本来执行的。该脚本是由Power Query Formula Language编写而成的,此种语言简称为M。

虽然Power Query编辑器中已将一些简单常用的M语言进行了界面化,但是Power Query提供的更多更丰富的功能依然需要通过编写M语言来实现。因此,如果想要更好地使用Power BI对复杂数据进行深入分析,就需要学习M语言的使用。

编辑M语言

当我们使用Power Query编辑器来处理数据时,其实M语言无处不在。M语言的函数公式有三个地方可以进行查看和编写:

  • 在添加自定义列的时候可以使用M语言编写公式。

  • 在右侧的“查询设置”窗格中,选中“应用的步骤”中的某一个操作步骤,在编辑栏中就可以看到该步骤对应的M语言。

  • 在“主页”选项卡的“查询”组中单击“高级编辑器”按钮,在弹出的高级编辑器对话框中,可以看到“应用的步骤”中每一个操作步骤对应的M语言。

M表达式

M语言基本表达式:let…in…,其中,let用于封装计算结果,并为计算结果命名;in用于显示结果。

M书写规范

  • M语言对大小写敏感,每一个字母必须按规范书写,第一个字母都是大写
  • 表被称为Table,每行的内容是一个Record,每列的内容是一个List
  • 行标用大括号{ },比如取第一行的内容:=表{0} //Power Query的第一行从0开始
  • 列标用中括号[ ],比如取某一列的内容:=表[列名]
  • 取第一行某一列的内容:=表{0}[列名]

M中的关键字和函数

M语言中常用的函数有聚合函数、文本函数、日期函数、条件函数等,常用的关键字有#shared、#date、#datetime等,本节会主要介绍几个常用的M函数和关键字。

M语言支持的函数有很多,我们也不可能全部都记住,那么如何查找M函数呢,我们可以在Power Query编辑器“主页”选项卡的“新建查询”组中单击“新建源”菜单列表中“空查询”命令,然后在编辑栏中输入=#shared并按下【Enter】键。

#shared关键字会加载M语言中所有的内置函数,并返回一个记录列表。选中某一个函数后,Power BI会在下方窗口处显示该函数的定义及使用方法和使用示例。

接下来我们使用Power Query编辑器制作一个时间维度表,在练习的过程中更好的了解M语言的使用。

制作时间维度表

时间维度表的制作整体分为两步:第一步先创建一个日期序列,第二步根据这个日期序列再添加更多的列。

步骤1:创建一个空查询,在“主页”选项卡的“查询”组中单击“高级编辑器”按钮,在弹出的高级编辑器对话框中,可以看到M表达式。

在这个表达式中let后面指定输入,in后面指定输出。所以在这个公式中输入了#shared并把它赋值给“源”,然后又输出了“源”。

步骤2:将高级编辑器中的表达式修改为

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


输入完成后单击“完成”,在Power Query编辑器中就可以看到输出的日期。

有了起始日期之后,我们再输入一个截止日期并生成日期序列。

步骤3:再次启动“高级编辑器”,输入一个截止日期,再指定输入一个日期序列。这个日期序列用大括号里面指定起始值和终止值,来创建一个数值列表,起始值和终止值之间有两个圆点分隔,然后用Number.From函数将日期转换为数值,然后指定输出这个数值序列。

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


输入完成后,可以看到Power Query编辑器中显示的是一列数值。

需要把这个数值序列转换为日期序列,但是在Power Query编辑器中列表是无法修改数据类型的,我们要先将列表转换为表,然后在表中修改某一列的数据类型。

步骤4:在“列表工具”的“转换”选项卡中单击“到表”按钮,在弹出的对话框中,保持默认选项,再单击【确定】完成转换。

转换之后的表,再修改这个字段的数据类型和字段名即可。

接下来再添加一列年份。

步骤5:先选中第一列的日期,然后在“添加列”选项卡的“从日期和时间”组中的单击“日期”,在菜单列表中“年”对应的扩展选项中单击“年”命令。

在Power Query编辑器中就会添加一个新的字段显示第一列日期中对应的年份。

同样的方法,在添加月份、季度、天、星期四列。

此时再启动“高级编辑器”,可以看到我们前面执行的每一个操作步骤以及对应的M函数,其实我们也可以在高级编辑器中编辑M表达式实现同样的操作。

修改表名

为了对表进行区分,我们可以对表重命名。

步骤1:在Power Query编辑器左侧的“查询导航栏”中,选中想要修改名称的表,右键弹出的快捷菜单中单击“重命名”。

步骤2:此时表名呈可编辑状态,输入新的表名,并按下【Enter】键,就可以修改表名。

加载并应用

当“销售一表”的数据追加到“销售二表”后,在后续分析中我们就不需要“销售一表”了,因此我们将“销售二表”重命名为“销售表”,就不需要将“销售一表”的数据加载到Power BI的视图中了。

步骤1:在Power Query编辑器左侧的“查询导航栏”中,选中“销售一表”,右键弹出的快捷菜单中单击“启动加载”前的复选框,即可禁用加载。

步骤2:此时会弹出温馨提示的对话框,单击“继续”按钮即可。

步骤3:操作完成后,在Power Query编辑器左侧的“查询导航栏”中可以看到,“销售一表”的表名变成了斜体显示。然后在“主页”选项卡中单击“关闭并应用”按钮,就会关闭Power Query编辑器,并将处理好的这些数据加载到Power BI视图中。

步骤4:在Power BI的视图区可以看到,只加载了“产品表”、“销售表”和“日期表”,而“销售一表”被禁用加载后就不会加载到Power BI视图中了。

Power BI数据查询编辑相关推荐

  1. [Power BI] Power BI数据建模

    Power BI处理的表往往是多个的,Power BI的优势就是打通来自各个数据源中的各种数据表,根据不同的维度.不同的逻辑来聚合分析数据,从而进行数据分类汇总和可视化呈现.前提是各个表之间需要建立某 ...

  2. 【转】设备数据通过Azure Functions 推送到 Power BI 数据大屏进行展示

    设备数据通过Azure Functions 推送到 Power BI 数据大屏进行展示(1.准备工作) 原创 Sean Yu 云计算实战 2019-12-06 本案例适用于开发者入门理解Azure F ...

  3. 《Microsoft Power BI数据可视化与数据分析》之超市运营数据分析

    14.3.1  各省份销售额柱形图 在"字段"窗格中,将"销售额"字段拖到画布上的空白区域,然后将"省/自治区"字段拖动到"可视化 ...

  4. Power BI 数据可视化软件实现共享报表

    l 在 Power BI 中与同事共享和协作 在此模块中,涵盖各种用于与同事共享和协作处理仪表板.报表和数据的方法.例如,你可以: 从 Power BI Desktop 向 Power BI 服务发布 ...

  5. power bi报表html,Power BI -- 第二篇:Power BI数据可视化之基于Web数据的报表制作(经典级示例)...

    http://www.cnblogs.com/muchen/p/5391101.html 阅读目录 •前言 •Power BI的三大工作区 •导入数据 •数据塑形 - 工作区介绍 •数据塑形 - 工作 ...

  6. Power BI 数据模型设计及搭建——星型模型雪花模型

    前言 之前的笔记提到了<Power BI 数据模型的核心概念>,本文继续深入讨论数据模型的设计架构,同时介绍两种常用的数据模型:星型模型和雪花模型 BI 的数据模型和数仓模型有什么不同? ...

  7. Power BI数据建模

    l  建模 通常情况下,你将会连接到多个数据源以创建报表,且需所有数据协同工作. 建模就是实现这一点的办法. 若要创建不同数据源之间的逻辑连接,需创建一种关系. 数据源之间的关系使 Power BI ...

  8. Power BI 数据可视化(核心),让报表更生动

    可 视 化 l  可视化 Power BI 中的视觉对象简介 实现数据可视化是 Power BI 的核心部分(像我们在本课程前面所定义那样,它是基本的构建基块),而创建视觉对象是发现并共享你的见解的最 ...

  9. Power BI数据建模分析

    在进行数据分析时,如果需要利用多个表中的数据及其关系来执行一些复杂的数据分析任务时,需要在数据建模时创建数据表之间的关系. 创建表关系 目前Power BI Desktop提供两种创建表关系的方法:自 ...

最新文章

  1. 推荐10款Windows系统必备的高效软件!!!
  2. 异步I/O 设备内核对象,事件内核对象,可提醒I/O 接收I/O通知
  3. 最近看了两本低代码的书
  4. 小程序开发(11)-之支付封装
  5. 语言inc c,汇编语言练习
  6. 小甲鱼python课后题简书_Python 练习题汇总
  7. 通达2017OA数据字典
  8. 计算机软考数据库怎么学,计算机软考数据库系统工程师学习笔记(二)
  9. 在google中Flash被屏蔽无法使用
  10. 服务器硬盘坏道修复教程视频,硬盘坏道修复工具使用教程
  11. 【转】全球十部最经典的科幻片,你看过几部?
  12. Sky Hackthon比赛指北-基础篇
  13. 计算机会不会取代人类英语作文,高中英语作文:机器代替人?
  14. 制作抖音卡点视频?Python来帮你~
  15. HTML读取xml文件的三种办法
  16. SQL注入攻击的原理、分类和防御方法
  17. matlab程序算天气,科学网—站点气温数据的积温计算(含Matlab程序实现) - 朱永超的博文...
  18. linux中ext3多重索引的原理,Ext3日志原理
  19. 硬件产品经理 硬件职业理解 第二弹
  20. 秀一款 Python 轻量级搜索工具 -- Whoosh

热门文章

  1. 亚马逊测评:亚马逊账号申诉,账号解封实例分享
  2. (前端开发)java获得当前时间和第二天时间
  3. 20150604.C语言-尹成-专题视频课程
  4. LRS+XAPI教育学习记录(安装lrs,以及用xapi传输数据到lrs)
  5. 计算机一级选择题计算题,计算机一级选择题计算一级选择题.doc
  6. oracle游标列转行,Oracle行转列和列转行
  7. 记录下对Clipper.js的使用
  8. python水位传感器输出水位_投入式水位传感器、投入式液位传感器的应用方法
  9. CAS使用账号密码实现单点登陆
  10. opendns_如何使用OpenDNS设置全屋家长控制