Power BI数据建模

建模

通常情况下,你将会连接到多个数据源以创建报表,且需所有数据协同工作。 建模就是实现这一点的办法。

若要创建不同数据源之间的逻辑连接,需创建一种关系。 数据源之间的关系使 Power BI 能够了解表与表之间的关系,以便能创建有趣的视觉对象和报表。 本部分对关系作出了解释,甚至还说明了如何在不存在任何关系的情况下创建关系。

 

如何管理数据关系

Power BI 允许你以可视方式设置表或元素之间的关系。 若要查看数据的图表视图,请使用关系视图(位于报表画布旁屏幕的最左侧)。

关系视图中,你可以看到表示各个表的数据块,它们之间的表列和表行就是表示的关系。

添加和删除关系非常简单。 若要删除关系,右键单击它并选择删除。 若要创建关系,拖放想要在表格之间创建链接的字段。

若要隐藏报表中的表格或单列,在关系视图中右键单击它,然后选择在报表视图中隐藏

有关你的数据关系的更详细视图,请选择开始选项卡中的管理关系。 这将打开管理关系对话框,该对话框将你的关系显示为列表而不是直观的关系图。在此处,你可以选择自动检测以查找新的或更新数据中的关系。 选择管理关系对话框中的编辑,以手动编辑你的关系。 你也可以在该位置找到高级选项以设置关系的基数交叉筛选方向。

基数的选项有*多对一*和*一对一*。 *多对一*是维度类型关系事实,例如一张销售表,每种产品都具有多行数据,与之匹配的是一个表格,在唯一行中列出了所有产品。 *一对一*通常用于链接引用表格中的单个条目。

默认情况下,关系将设置为在两个方向上交叉筛选。 只在一个方向交叉筛选限制了关系中的某些建模功能。

设置数据之间的准确关系让你能够在多个数据元素间创建复杂的计算。

 

创建计算列

创建计算列是一种用于丰富并增强数据的简单方法。 计算列是通过对以下计算进行定义而创建的新列:转换或合并现有数据的两个或多个元素。例如,可以通过将两列合并为一列来创建新列。

创建计算列的一个有效原因是,当没有可用于建立关系的唯一字段时,在表格之间建立关系。当在 Power BI Desktop 中创建简单的表格视觉对象时,缺少关系会变得明显,并且所有条目都将获得同样的值,而你知道基础数据是不同的。

若要使用具有唯一字段的数据创建关系,例如,当数据中存在“区号”和“本地电话”列时,你可以通过将两者的值合并创建新的“完整电话号码”计算列。 计算列是用于快速创建模型和可视化效果的有用工具。

若要创建计算列,请在报表画布的左侧选择 Power BIDesktop 中的数据视图

在“建模”选项卡中,选择新建列。这将在你可以使用 DAX(数据分析表达式)语言输入计算的地方启用公式栏。 DAX 是一种功能强大的公式语言(Excel 中也有),它可以生成可靠的计算。 在键入公式期间,Power BI Desktop 会显示匹配的公式或数据元素来帮助并加速公式的创建。

在输入表达式期间,Power BI 公式栏将提供特定的 DAX 函数和相关数据列建议。

一旦在每个表中都创建了计算列,它们便可以用作关系键来建立它们之间的关系。 转到关系视图,你便可以将字段从一个表拖动到另一个表来创建关系了。

返回报表视图,你现在将看到各区的值都不同。

还有可以通过创建计算列执行的各种其他操作。

优化数据模型,获得更好的视觉对象

导入的数据通常包含报表和可视化任务中实际不需要的字段,原因是它为额外信息,或者此数据已在其他列中可用。 Power BI Desktop 提供一些工具,可用于优化数据、使其更利于创建报表和视觉对象,以及查看共享报表。

Ø  隐藏字段

若要隐藏 Power BI Desktop 的字段窗格中的某列,请右键单击它,然后选择隐藏。如果此字段已在现有可视化对象中使用,则数据仍位于该视觉对象中,且你仍可在其他可视化对象中使用此数据,隐藏的字段仅不在字段窗格中显示。

若在关系视图中查看表格,则隐藏的字段将通过灰显进行表示。 同样,其数据仍然可用且仍是模型的一部分,只是隐藏不可见而已。通过右键单击该字段并选择取消隐藏,可随时取消隐藏已隐藏的任何字段。

Ø 按其他字段对可视化数据进行排序

建模选项卡中提供的按列排序工具对于确保数据按预期顺序显示非常有用。

举一个常见的例子,包括该月名称的数据默认按字母顺序排序,因此比如“八月”显示在“二月”之前。

此情况下,解决此问题的方法是在字段列表中选择字段、再从建模选项卡中选择按列排序,然后选择要排序的字段。本例中,“MonthNo”类别排序选项按预期对月份进行排序。

另一种优化信息以使其正确处理的方式是设置字段的数据类型。 若要从报表画布中更改数据类型,请在字段窗格中选择该列,然后使用格式下拉菜单选择其中一种格式设置选项。任何已创建且显示此字段的视觉对象均将自动更新。

创建度量值并使用基于时间的函数

度量值 是存在于你的 Power BI 数据模型中的一种计算。 要创建度量值,在报表视图中从建模选项卡选择新度量值

DAX最大优势之一是它有很多有用函数,特别是关于基于时间的计算,如*本年截止到现在*或*同比*。 你只需使用 DAX 定义一次时间度量值,然后从数据模型中按照你所需数量的不同字段来划分它。

在 Power BI中,定义的计算称为*度量值*。 若要创建*度量值*,从主页选项卡中选择新建度量值。 此操作将打开公示栏,你可以在其中输入定义度量值的 DAX 表达式。 键入时,在输入计算过程中,Power BI 会建议相关的 DAX 函数和数据字段,并且你还将得到解释语法和函数参数的工具提示。

如果你的计算很长,则通过键入 ALT-Enter,你可以在表达式编辑器中添加额外的换行符。

创建新的度量值后,它将出现在屏幕右侧的字段窗格中一个表格中。 Power BI 会将新的度量值插入到当前你选中的表格中,不管度量值处在数据的什么位置,你都可以通过选中此度量值,并使用主页表下拉菜单,轻松地移动它。

你可以像使用其它任何表格列一样使用度量值:只需将它拖放到报表画布或可视化效果字段中。 度量值还可与切片器无缝集成,快速分割数据,这意味着你只需定义一次度量值,然后就可将其用于不同的可视化效果。

计算 DAX 函数是一个功能强大的函数,它可实现各种类型的有用的计算,对于财务报表和视觉对象尤为有用。

 

 

创建计算表

计算表是 DAX 的一个功能,可用于表达一众新增建模功能。例如,如果你希望进行不同类型的合并联接或以函数公式的结果为基础创建随即变化的新表,使用计算表可以达到此目的。

要创建计算表,请转到 Power BI Desktop 中的数据视图

从“建模”选项卡选择新建表,以打开公式栏。

在等号的左侧键入新表的名称,在右侧键入要用于形成该表的计算。 完成计算后,新表将显示在模型的“字段”窗格中。

创建后,即可像使用任何其他表的关系、公式、报表那样使用计算表。

 

 

浏览基于时间的数据

使用 Power BI 分析基于时间的数据非常容易。 Power BI Desktop 中的建模工具自动包括一些生成字段,在这些字段中,你可通过一次单击深化到年份、季度、月份和日期。

当你在报表中使用日期字段创建表格可视化效果时,PowerBI Desktop 将自动包括按时间段分解的信息。 例如,Power BI 会自动将日期表中的单个日期字段分为年、季度、月和日,如下图中所示。

可视化效果默认在*年*级别显示数据,但是你可以通过打开视觉对象右上角的向下钻取来更改它。

现在,当你单击图表中的条幅或线段时,它将深化到时间层次结构的下一级别,例如从*年*到*季度*。

你可以继续深化,直到到达层次结构的最精细级别,在本例中即为*天*。 若要在时间层次结构中逆向移动,请单击视觉对象左上角的向上钻取

你还可以深化视觉对象上显示的所有数据,而非只是所选字段,方法是使用钻取全部双箭头图标,它也位于视觉对象的左上角。

只要你的模型具有日期字段,Power BI 就会为不同的时间层次结构自动生成不同的视图。

若要返回单个日期(而不是使用日期层次结构),只需右键单击“字段”列中的列名称(在下图中,列名称为“*InvoiceDate*”,然后从显示的菜单中选择列名称,而不是选择“日期层次结构”。

然后,你的视觉对象会显示基于该列数据的数据,而无需使用日期层次结构。 需要返回以使用日期层次结构?没问题!只需再次右键单击并从菜单中选择“日期层次结构”。

 

 

 

下一步

祝贺你! 你已经完成了本部分的 Power BI 引导学习课程。 了解有关数据建模的信息后,即可学习下一部分中的有趣知识:可视化

如上所述,本课程按照 Power BI 中的常见工作流构建知识:

  • 将数据导入 Power BI Desktop,然后创建报表。
  • 发布到 Power BI 服务,你可在该服务中创建新的可视化效果和构建仪表板
  • 与他人(尤其是差旅人员)共享你的仪表板
  • 在 Power BI Mobile 应用中查看共享仪表板和报表并与其交互

虽然你可能不会亲自动手进行所有操作,但你将*理解*这些仪表板的创建方式、其连接到数据的方式...完成本课程时,你将能够创建自己的仪表板。

下一部分见!

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/475610.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Asp.Net文件和文件夹操作大全

/// <summary> /// 创建文件夹 /// </summary> /// <param name"Path"></param> public static void FolderCreate(string Path) { // 判断目标目录是否存在如果不存在则新建之 i…

LeetCode 1283. 使结果不超过阈值的最小除数(二分查找)

1. 题目 给你一个整数数组 nums 和一个正整数 threshold &#xff0c;你需要选择一个正整数作为除数&#xff0c;然后将数组里每个数都除以它&#xff0c;并对除法结果求和。 请你找出能够使上述结果小于等于阈值 threshold 的除数中 最小 的那个。 每个数除以除数后都向上取…

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

l 在 Power BI 中与同事共享和协作 在此模块中&#xff0c;涵盖各种用于与同事共享和协作处理仪表板、报表和数据的方法。例如&#xff0c;你可以&#xff1a; 从 Power BI Desktop 向 Power BI 服务发布报表使用 Power BI Mobile 应用查看共享报表和仪表板并与其交互创建打包…

flash和js通讯的伪沙箱安全错误

加载到页面的flash需要和当前页面上的js通讯的时候&#xff0c;如果是js和flash在同一个域那就没有安全错误发生如果不在同一个域就会有安全错误发生。不在同一个域的flash和js跨域访问的时候 ,可以用下列方式解决跨域问题要在页面上添加参数行:<param name"allowScrip…

LeetCode 1144. 递减元素使数组呈锯齿状(奇偶分别遍历)

1. 题目 给你一个整数数组 nums&#xff0c;每次 操作 会从中选择一个元素并 将该元素的值减少 1。 如果符合下列情况之一&#xff0c;则数组 A 就是 锯齿数组&#xff1a; 每个偶数索引对应的元素都大于相邻的元素&#xff0c;即 A[0] > A[1] < A[2] > A[3] < …

有趣的数学 - 6174数学黑洞 - C/C++代码实现

6174数学黑洞 它的算法如下&#xff1a; 6174黑洞对首个设定的数值有所限制&#xff0c;取任意一个4位数&#xff08;4个数字均为同一个数的除外&#xff09;&#xff0c;将该数的4个数字重新组合&#xff0c;形成可能的最大数和可能的最小数&#xff0c;再将两者之间的差求出…

ActionScript 3.0 组件!

ActionScript 3.0 组件&#xff01; 缓动效果http://code.google.com/p/tweener/ 查询出URL后的所有参数的KEY VAULEhttp://evolve.reintroducing.com/2008/07/03/as3/as3-querystring/#more-141 加载管理&#xff0c;加载资源的管理http://code.google.com/p/queueloader-as3…

LeetCode 1470. 重新排列数组

1. 题目 给你一个数组 nums &#xff0c;数组中有 2n 个元素&#xff0c;按 [x1,x2,...,xn,y1,y2,...,yn] 的格式排列。 请你将数组按 [x1,y1,x2,y2,...,xn,yn] 格式重新排列&#xff0c;返回重排后的数组。 示例 1&#xff1a; 输入&#xff1a;nums [2,5,1,3,4,7], n 3 …

非线性规划 - 用非线性规划解决问题 - (Lingo建模)

在经营管理中&#xff0c;为取得更高的利润&#xff0c;不仅需要提高经营收入&#xff0c;也要考虑如何在现有的人力、物力和财力条件下合理安排&#xff0c;在满足要求的前提下&#xff0c;达到最低的成本。对于静态的最优化问题&#xff08;即所有数据不会瞬息万变&#xff0…

PHP学习之路(二)让我们开始环境搭建(Windows篇)

在上篇中&#xff0c;我详述了在Windows下配置Zend开发工具的详细过程&#xff0c;但是没有一个开发环境&#xff0c;你再牛B的工具自然也跑不起来&#xff0c;比如没有了.NET Framework&#xff0c;你跑个Visual Studio试试&#xff0c;所以搭建开发环境也是学习程序开发一个必…

线性规划 - 用单纯形法解决整数规划问题 - (Matlab、Lingo建模)

现实生活中&#xff0c;比如机器的台数&#xff0c;参与工作的人数&#xff0c;可调动的车辆数&#xff0c;这些数据都是整数。因此对于变量中包含整数、或者完全是整数的规划问题&#xff0c;我们称之为整数规划。在解决整数规划常用的算法便是单纯形法。 课题名称&#xff1a…

LeetCode 1471. 数组中的 k 个最强值(排序)

1. 题目 给你一个整数数组 arr 和一个整数 k 。 设 m 为数组的中位数&#xff0c;只要满足下述两个前提之一&#xff0c;就可以判定 arr[i] 的值比 arr[j] 的值更强&#xff1a; |arr[i] - m| > |arr[j] - m||arr[i] - m| |arr[j] - m|&#xff0c;且 arr[i] > arr[j…

Oracle 多表 连接 顺序 与 性能关系 测试

一. 创建表并insert 数据 create table ta (id number,name varchar2(10)); create table tb(id number,job varchar2(10)); begin for i in 1..1000000 loop begin insert into ta values(i,dave); commit; end; end loop; end; begin for i in 1..1000000 loop begin if i<…

线性规划 - 用单纯形法解决LP问题 - (Matlab、Lingo建模)

线性规划研究时间较早&#xff0c;在实际应用中也比较成熟&#xff0c;它是一种辅助人们进行科学管理的数学方法&#xff0c;为合理地利用有限的人力、物力、财力等资源作出的最优决策&#xff0c;提供科学的依据。 课题名称&#xff1a;配货问题&#xff0c;使运费收入最大 现…

LeetCode 1472. 设计浏览器历史记录(双栈)

1. 题目 你有一个只支持单个标签页的 浏览器 &#xff0c;最开始你浏览的网页是 homepage &#xff0c;你可以访问其他的网站 url &#xff0c;也可以在浏览历史中后退 steps 步或前进 steps 步。 请你实现 BrowserHistory 类&#xff1a; BrowserHistory(string homepage) …

微软Webcast课程下载软件iReaper正式登陆Android平台

微软Webcast课程下载软件iReaper正式登陆Android平台&#xff0c;我叫它iReaper for Android。目前正处于测试阶段&#xff0c;功能比较单一。 目前支持 1.视频下载 2.课程代码下载 3.讲义下载 4.问答下载 附上截图&#xff0c;敬请期待&#xff01; 1.下载地址&#xff…

LeetCode 1473. 给房子涂色 III(DP)

1. 题目 在一个小城市里&#xff0c;有 m 个房子排成一排&#xff0c;你需要给每个房子涂上 n 种颜色之一&#xff08;颜色编号为 1 到 n &#xff09;。 有的房子去年夏天已经涂过颜色了&#xff0c;所以这些房子不需要被重新涂色。 我们将连续相同颜色尽可能多的房子称为一…

动态规划 - Floyd算法求最短路径 - (Matlab建模)

Floyd算法又称为弗洛伊德算法、插点法&#xff0c;是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法&#xff0c;与Dijkstra算法类似。该算法名称以创始人之一、1978年图灵奖获得者、斯坦福大学计算机科学系教授罗伯特弗洛伊德命名。 课题名称&#xff1a;…

DIV Scroll属性

DIV Scroll属性详解&#xff0c;为DIV层打造不同的滚动条。一、scrollbar属性、样式详解 1&#xff0e;overflow内容溢出时的设置&#xff08;设定被设定对象是否显示滚动条&#xff09; overflow-x水平方向内容溢出时的设置 overflow-y垂直方向内容溢出时的设置 以上…

神经网络 - BP神经网络与RBF神经网络模型解决实际问题 - (Matlab建模)

目录 神经网络模型简述 实例&#xff1a;交通运输能力预测设计 MATLAB程序及仿真结果 由于货物运输、地方经济及企业发展的紧密联系&#xff0c;因此作为反映货物运输需求的一项重要指标, 货运量预测研究和分析具有较强的实际意义。 常用的货运量预测方法包括时间序列方法、…