文章背景: 在表缺少主键无法直接创建关系,或者需要借助复杂的计算才能创建主键的情况下,可以利用计算列来设置关系。在基于计算列创建关系时,循环依赖经常发生。...产品的价格有很多不同的数值,一种常用的做法是将价格划分成不同的区间。例如下图所示的配置表。 现在对价格区间的键值进行反规范化,然后根据这个新的计算列建立一个物理关系。...下面对因为与计算列建立关系而出现的循环依赖进行分析,包括为什么DISTINCT可以消除循环依赖。...为了防止关系出现无效记录,位于关系一端的表可能会添加空行。 (2)DAX中的依赖关系有两种类型:公式依赖(或引用依赖)和空行依赖。...BI 的重要性(https://learn.microsoft.com/zh-cn/power-bi/guidance/star-schema)
本篇文章主体部分为翻译Chris Webb的一篇文章。 合并查询在Power Query中是很成熟的应用,相当于SQL中的各种JOIN(抽时间会写几篇SQL的join,算是SQL的小核心)。...但同时,在Power Query中合并查询是一个常见的影响刷新效率的因素。在我的工作中,经常会遇到对一些非文件夹性质的数据源进行合并查询操作,所以我一直在想,有没有办法可以对其进行优化。...以下是我的测试数据源,只有一个CSV格式的文件,100万行7列数字格式的数据A, B C, D, E, F 和G: ? 在本次测试当中,我使用了SQL Server 事件探查器去计算刷新的时间。...: 表中列的数量是否影响合并查询时的效率?...参考文档: Chris Webb https://blog.crossjoin.co.uk/2020/05/31/optimising-the-performance-of-power-query-merges-in-power-bi-part
这与 DAX 和 Power BI 报表的动态特性相悖。 计算列的问题在于,大多数情况下,这些操作属于数据准备层面,或者属于我们在第1章“商业智能中的 DAX”中讨论的五层模型中的“数据预处理”层。...Power BI 模型中创建日期表或日历表。...实际上,我们在 Power BI 模型上执行的大部分工作都可以归结为设计并应用 DAX 度量值。 在 Power BI 报表中使用事实表中的数字列时,列的值将被执行聚合运算。...DAX 查询的一个特定用例是在 Power BI 分页报表中。...应用这些方法将有助于你创建轻便快捷的模型,长远来看能够让你更轻松地维护模型,并帮助你更好地支持那些从你模型中创建 Power BI 报表或其他输出的人。
Excel有很大的灵活性,插入行就可以搞定这样的表格,Power BI则不然。 摘自港交所某上市公司报表 Power BI的表格格式不灵活,不意味着实现不了。...以下是实现结果: 也不意味着数据源需要重构复杂结构,基础数据还是这么简单: 那么,这是如何办到的? 这里我们巧妙利用了矩阵的总计栏进行中间过程展示,窗口函数进行上下滚动计算。...首先对数据源新增三个辅助列,计算分组列用于确定当前科目需要计算的下一个指标的名称,例如收入和成本后续需要计算毛利,分组就确定为毛利。...除了最终结果(本例为期内溢利)没有下一级需要计算的指标则分组直接填写当前科目,例如所得税开支。 对科目和计算分组都添加索引进行按列排序。这种数据结构可外部导入,也可SWITCH函数生成计算列。...矩阵如下拖拽字段: 我们得到了下图这样的表格,向左拖拽隐藏维度的科目列,显示度量值的科目,施工完成。 不同公司、不同交易所可能报表结构有所差异,设计思路都可以借鉴。
近日,阿迪达斯发布了2020年财报,其中一张报表是店铺数量,如下图所示: 该报表显示了阿迪达斯每个季度的店铺数量,以及到2020年底的店铺数量(注意年底数量=Q4数量),另外,还显示了每个季度的开店数量...如何在Excel/Power BI中仅凭一个完整店铺资料制作类似以上报表(如下透视表所示)?下文以Excel界面进行讲述,Power BI软件操作相同。...将这两个表格导入Power Pivot: 导入后如下界面所示: 2.计算 ---- 在Power Pivot后台,选择日期表,添加必要的年、季度、月计算列: 年 = YEAR('日期表'[日期]...当日期表与店铺明细中的开店日期、关店日期中间的任意一列建立关系时,会导致错误的计算值。...类似的,HR领域计算在职员工、离职员工、新员工是同样的套路,可参考拙作《Power BI商业数据分析项目实战》第17章内容。
开启字段参数 字段参数,目前处于预览状态,可以在 Power BI 的【文件】【选项】中打开,如下: 重启 Power BI Desktop 即可使用。...在表格系统中,表列与数据字段等价;度量值与计算字段等价。 在 Power BI Desktop 的界面中,有这样一个启示: 对于分析师,要做的只有一件事,将字段拖拽出来放置到报表中,形成计算。...构造完毕的字段参数可以在 DAX 中改名,不会影响报表内容。 报表中透视表使用的字段参数,将随着用户的选择,动态决定实际参与的表列或度量值。 多个字段会默认平铺展开。...在 Power BI 中是无法通过界面做到的。...进而说明,字段参数是一个特定于 Power BI 界面层的功能,而不是数据模型或引擎的功能。 总结 可以总结一下了。
在从Excel过渡到Power BI时,使用相同的方法。但这种方法时有一些限制。以下是组织到平面表中的零售订单数据的示例: ?...实体具有描述特定属性的属性。在数据分析中,实体通常被具体化为维度表,每个属性都是一个列或字段。 事实表包含用于汇总和聚合度量值的数字列,以及与维度表相关的列。...解析维度表中的多对一关系 在维度表中存储报表标签和筛选值 确保维度表使用代理键 创建一致的维度以在整个企业中集成数据 提供DW/BI解决方案 支持业务用户的决策 让我们把这个过程应用到销售订单的平面表中...在平面表中,三个日期列有完全不同的用途,但都存储相同类型的值:日期。但是,日期可以用来对数据进行分组和聚合,比如月份、季度、年份或会计期间。它们可用于执行时间序列计算,如上一年的月至今或同期。...可以使用事实表中的字段来执行诸如计算两个日期类型列之间的差值或计算具有未来日期的行等操作。另外在“视情况而定”的情况,你必须根据业务报告需求做出判断,在简单性和可维护性与复杂性和灵活性之间取得平衡。
image.png 今天我会手把手教会你如何制作报表,在这之前,确保你已经学过了免费系列教程《7天学会商业智能(BI)-Power BI》下面的内容。 主题 内容 第1天:什么是报表?...什么是报表?如何设计报表? 第2天:认识Power BI 什么是商业智能(BI)?什么是Power BI?如何安装Power BI? 第3天:用Power BI获取数据 如何从 Excel 获取数据?...第4天:用Power BI对数据建模 如何管理数据关系?创建计算列隐藏字段创建度量值创建计算表浏览基于时间的数据 第5天:用Power BI可视化数据 如何可视化数据?如何创建切片器?如何绘制地图?...image.png 接下来,我们看下这样的报表如何用Power BI来实现。 1.案例数据 这是一家咖啡店的数据,Excel里有两个表,分别是销售数据表、产品表。...image.png 价格在产品表中,数量在销售数据表中,也就是计算指标用到的两列数据在不同的表中。 image.png 下面我们用Power BI来实现,不同的两张表中的字段如何分析计算。
最近,很多初学Power BI的朋友跟我说,Power BI用起来挺麻烦的,很不习惯啊,比如,想看一列数的总和都看不到…… 我说,这其实是长期使用Excel形成的一些习惯,千万不要被这些小习惯挡住了...习惯1 - 看总数、平均数…… 在实际的使用中,我们经常需要快速临时统计一下数据,或快速查看一些关键的值,从而去理解数据,或检查数据,比如常见的数据特征五值(总和、平均值、最大值、最小值、中值...如下图所示: 习惯3 - 重复值检查及定位 重复值的检查是数据验证、校对里经常碰到的问题,比如在建立表间关系时,可能就会提示有重复值,或在度量中涉及数据筛选计算时,提示有多值存在导致计算结果出错等等...1、简单查看某列是否有重复数据 这一点,在power bi里比Excel里还简单,如下图,选定列,可直接查看数据重复情况: 2、定位具体重复内容 在Power BI里,可以很简单地生成简单报表...总的来说,在Power BI中,一些基本的数据查看和定位可能并不像Excel中那么直接,但实际上,只要掌握了Power BI的使用方法,这些问题都会迎刃而解,甚至在你习惯了之后,会觉得Power BI里可能更加好用
默认矩阵结构 在 Power BI 中,默认的矩阵结构是这样的: 很多伙伴都不太喜欢这种展示,于是可以在【格式】的【行标题】【渐变布局】处,关闭。则有: 这种布局就更加节省纵向空间,层次感也更强。...然而,还是有人会提出透视表的经典形态,如下: Power BI 中并不直接支持这种矩阵显示。这种显示也的确有它的场景。...可是这列我们并不想显示,所以可以将它缩到 0 宽度,如下: 用鼠标拖拽这个缝隙直到变为零宽度。并设置:行标题和列标题都不自动换行,即可全部隐藏,实现效果。如下: 再配合其他的内容完善起来吧。...总结 关于矩阵的高级用法,我们分享过很多,这里又补充了一点。这对很多财务科目系统化场景有所帮助。在报表的显示方面,相信你已经看到文头截图的恐怖之处。我们下次将分享报表显示上的另一个模板化技巧。...好了,不管老板希望怎么显示,都可以在 Power BI 中实现咯。留言说说你最喜欢哪一种吧。
例如,这可以用于将图例中的字段快速移动到视觉对象的轴: 这也可以用于快速重新排序表或矩阵的列: 首次标记 我们还提供了上下文标记,以帮助首次使用此功能的用户。...例如,在此表视觉中,您不想汇总一列,而是查看该列的原始值: 在页面级别启用/禁用设置 以前,报表作者可以在报表或可视级别上启用或禁用此功能。...这项新的Microsoft Power BI功能允许报表使用者根据其筛选器或切片器选择动态更新M查询参数。...如果您编辑此视图以添加或删除用户创建的列或系统定义的列,或者通过创建新视图并将其设置为默认视图,则它将通过连接器传播。 全部视图包括所有用户创建的列和系统定义的列。...下图显示了带有边距的损益表,其中“收入百分比”度量值以针形图的形式显示,并且其与PY的变化/方差也以百分比计算并可视化(最右边的红色/绿色列): Zebra BI Tables视觉中还有许多其他重要的新功能和改进
DAX使用场景及常用函数 Power BI中DAX函数非常多,功能非常强大,下面结合一些实际场景来讲解DAX一些常用的函数,这些场景包含求和、计数、相除、排序、累计、环比、同比,为了更方便后续的可视化展示数据...操作如下: 同样的方式我们也可以创建可视化表将"门店信息表"中的"商圈类型"与"总营收金额"展示在一起,如下: 并且还可以点击两表中不同的行进行联动,如下: 二、计数统计 在Power BI中用于计数的函数有两个...) 将创建的"不重复机器数"度量值拖入到之前创建的"多行卡"中,操作如下: 三、相除统计 在Power BI中有一些场景需要使用到数据相除,我们可以通过"/"符号实现或者使用"DIVIDE"函数实现..."中,操作如下: 四、排序统计 在Power BI中要实现排序功能可以借助RANKX和ALL函数来实现。...六、累计统计 在Power BI中针对时间维度进行累计值统计也是常见的场景,例如统计每月累计交易额、统计每个季度累计交易额等,这就要使用到累计相关的DAX函数,累计相关的DAX函数有三个:TOTALYTD
若要实现这一点,模型必须保留指针列表,以跟踪列中的某个值到底位于哪一行中。当向表中添加更多列时,计算量显然会显著增加。因此,在 Power BI 模型中,“窄”的表比“宽”的表更高效。...二进制(Binary):二进制类型用于存储不能表示为文本的数据,如图像数据或文档。无法使用此数据类型执行聚合或计算,但它可用于存储需要在报表中使用的图像。...筛选表中的列被用来筛选报表中的结果,可以将它们用作矩阵或表中的行标签,或者作为图表的轴,又或者将它们作为切片器字段。事实表中包含报告需要进行聚合的数据。...虽然在直接查询报表的数据仓库中可能需要这样,但对于 Power BI 模型,不能笼统地这样说。...一个报表通常包含以基本方式聚合或高度复杂的方式聚合的数据(本书的第二部分将仅介绍聚合数据的高级方法)。但事实是,报表中所需要的许多结果无法通过求某一列值的总和或平均值这样标准的聚合来完成。
如果您的图表在“图例”(对于堆叠的条形/列)或“列系列”(对于组合)字段中都有一个字段,则可以在格式窗格中的卡片中启用总计标签: ?...例如: 通过在Power BI Desktop中添加外部工具(当前处于预览状态),通过这些外部工具添加的表现在在您重新打开报表后将显示为查询。...涉及货币数据类型列的聚合表达式的性能改进 通过将更多计算推入Vertipaq引擎,我们提高了引用大型导入表中“货币”数据类型的列的表达式的聚合性能,例如SUMX(Sales,[Sales Amount]...Kongsberg Vessel Insights增加了对基于舰队的查询或包含通配符的查询的支持。 Azure时间序列见解包括响应中显示的列类型的错误修复。...可视化 CloudScope的Collage Collage使用网格或详细信息显示以流行的社交网络样式显示图像。Collage是在Power BI报表中精美显示图像的一种方法。 ?
吐槽 PowerBI 的界面中,有很多设计不太合理,其中之一就是: 在模型视图中可以连线构建数据模型,但是却不能新建计算列和度量值,这必须去数据视图;然而,在数据和报表视图希望拖拽度量值到某个表或文件夹又不可以...在模型视图有了编辑能力后,那么,建立数据模型的方式和工作流程可以更加清晰了。 界面框架 在 Power BI 的界面中,主要有三个分区: 报表。用于拖拽字段到画布并构建可视化并完成相关功能。 数据。...关于 Power BI 的创作工作流程,我们再单独去讨论。这里讨论一下 Power BI 工作流程中的 DAX 数据建模流程。...隐透视表 MVC 设计模式 预计算 静态化 注意 以上某些词汇并非 Power BI 领域,属于最佳实践中需要了解的内容,这里不再展开,在此前文章有讲解。...现在我们可以做到的体验是这样的: 根本不打开报表视图,直接在模型视图,完成动态数据建模。 写好需要的各种度量值,各种计算列。 我们将该过程称为:模型驱动的 Power BI 工作流程。
在 Power BI 模型中,也提供了一些可以保证数据的安全性的方法。在本章中,你将学习如何来实现。 请注意,在 Power BI 的报表和仪表板上进行分发或共享的安全性,我们将不做介绍。...使用行级别安全性保护 Power BI 模型。 为分层数据配置安全性。 保护属性或表中的单个列。 确保度量值的聚合级别。...之前的 DAX 函数USERNAME在 Power BI Service中返回用户的电子邮件地址,但在 Power BI Desktop或 Analysis Services 实例中,它返回用户名。...当普通表与受保护的表建立关系时,你可能因为权限问题无法访问。更重要的是,当引用受保护的列或受保护的表中的列时,Power BI报表因为无法访问这些列或表而引发错误。...如果用户获得了 Power BI 模型的设计权限,他们可以创建自己的报表 (这是使用 Power BI 的过程中可能经常遇到的情况), 还可以创建自己的 DAX 度量值。
当您将报表发布到网站上时,它将消耗 Power BI 云机的内存和磁盘空间。...Power BI 利用 xVelocity 的压缩引擎并使用列存储内存技术。列存储内存技术压缩数据并以压缩格式存储。...这取决于很多事情;列中唯一值的数量,有时是数据类型和许多其他情况。 简而言之:Power BI 将存储压缩数据,Power BI 中的数据大小将远小于其在数据源中的大小。...使用这两种语言中的任何一种,您都可以满足所有计算和建模需求。此方法比 DirectQuery 具有更好的建模功能。因为在 DirectQuery 中,没有 DAX 或 MDX 作为帮助的分析语言。...这应该在数据源中处理。 报告级别度量 通过某些类型的 SSAS 实时连接(到表格模型或 Power BI 服务),您可以获得报表级别的度量。
在Power BI使用图标可以大大增强可视化效果。图标可以用在报表装饰、表格矩阵列、条件格式等场景(参考:Power BI 条件格式图标的五重境界)。...前期制作了一个图标查询工具(参考:复制粘贴就可以使用的Power BI 图标素材查询系统),读者可以在完全不了解SVG代码的情况下,直接复制粘贴,在自己报表中使用这些图标。...第一版内置了字节跳动的所有官方图标(2600+),本次升级后,增加了tabler-icons.io出品的3400+图标,合计该Power BI工具目前拥有6000+图标。...调整粗细和颜色后,可以放在条件格式或者表格列: 整个操作过程无需懂得任何SVG知识,但是Power BI基础知识是需要的,比如IF或者SWITCH进行图标切换,本例度量值如下: 排名图标 = SWITCH...模板右侧表格展示了图标,图标会依据左侧条件的变化而变化。表格同时列示了在条件格式和在表格列的效果。最后一列显示了图标对应的SVG文本,可以复制后用到自己模型。
Excel 插入选项卡下,有一个符号库,可以用来装饰报表。Power BI没有类似的库。以下介绍三个第三方整理的符号资源,可以在Power BI或Excel使用。...符号有两种在Power BI/Excel使用方式,一种是直接鼠标右键复制该符号,放到度量值、列、或者表格中: 第二种是,把下方的code用UNICHAR函数包裹起来进行显示: 知识星球提供了PBI...,鼠标悬停可获得该符号的HTML代码,该代码放入UNICHAR函数可以在Power BI/Excel正常显示。...也可以单击任意符号,获得该符号的HTML实体,使用UNICHAR函数在Power BI/Excel显示: 符号在Power BI的应用场景非常多,比如周边装饰、标题装饰、文本描述指标状况、表格矩阵条件格式...条件格式的应用可以参考这篇文章,符号大大扩充了Power BI的条件格式能力:如何在Power BI使用表情包 填充图表样式的应用可以参考这篇文章:CONCATENATEX函数的不归路 ----
《Power BI/Excel网抓:获取实时天气数据》这篇文章介绍了如何使用高德的接口获取天气预报数据,并制作相应报表。...文中的天气图标是静态的,其实还可以动态,如下图所示: 也可以直接放在表格中: 在amcharts可以获取多种动画天气图标: https://www.amcharts.com/free-animated-svg-weather-icons.../ 图标批量导入Power BI有两种方式,一种是挨个记事本打开下载好的SVG图标,复制里面的代码,接着Power BI新建列,使用SWITCH语句串联所有图标。...另一种方法是不打开图标文件,把SVG文件当作文本批量从文件夹导入Power BI,详细操作可参考本节视频课程 https://t.zsxq.com/eqBm6yF 在表格或矩阵显示时,需在编码前方加上"
领取专属 10元无门槛券
手把手带您无忧上云