引子 当我们在处理这样的数据时,想要进行排列时,会发现它并没有按照我们预想的按照1……9,10,11,12……这样的排序: 因为文本和数字在一起的列,数字只是文本。...如果我们想要按照预想的顺序排列,能做的应该也只有按列排序,因此我们将周数中的数字提取出来作为单独一列: 周数2 = MID([周数],6,10) 再选中[周数]列,点击“按列排序”,选择[周数2],...通俗点讲:循环依赖的产生就是这样,本来要计算A,但是过程中要计算B,而要计算B又需要计算A,就循环起来了。...如果是从数据源中直接获取的这个表,那么可以在pq中直接将数字提取出来作为单独一列,这样加载到报告中它们就是相互独立的两列,两者之间并没有依赖关系,也就不会产生循环依赖: 自定义= Table.AddColumn...结论 当遇到因为按列排序而导致的循环依赖问题,可以再新建复制一列想要排序的列,这样两个都是由原列计算而来的列直接并没有直接关系,也就不存在循环依赖,因此可以放心地进行按列排序。
合并查询在Power Query中是很成熟的应用,相当于SQL中的各种JOIN(抽时间会写几篇SQL的join,算是SQL的小核心)。...但同时,在Power Query中合并查询是一个常见的影响刷新效率的因素。在我的工作中,经常会遇到对一些非文件夹性质的数据源进行合并查询操作,所以我一直在想,有没有办法可以对其进行优化。...为了这样测试,我在两个查询中又添加了一个步骤,删除B-G列,只剩下A列: let Source = Csv.Document( File.Contents("C:\NumbersMoreColumns.csv...– 0 秒 以上的确能够得出结论:合并查询时,列数的多少的确会影响效率, 以上还揭示了:在以上两个查询中,读取数据是立刻发生的,几乎不占用时间,相比之下,最开始的两次查询中读取数据的时间甚至要比执行SQL...参考文档: Chris Webb https://blog.crossjoin.co.uk/2020/05/31/optimising-the-performance-of-power-query-merges-in-power-bi-part
确定需求: a) 通过列数参数来改变最终的列数 b) 更改列数标题不影响数据运行 c) 更改数据源标题不影响数据运行 2....确定变量 a) 列数 b) 列数标题名 c) 数据源标题名 单列数据转多列,主要涉及的就是分组后的索引添加,然后进行透视。 (二) 主要涉及知识点 1....添加索引并取模 Table.AddIndexColumn,Number.Mod(指定行或列数) 2....展开数据后的透视 透视值关系到指定列还是指定行 4. 字段名的动态引用 Table.ToRows(列数字段表){0}{0}
转换成 (一) 把单个字段组合成一个列 Table.ToColumns(源) (二) 把需要合并的样式单独组合 Table.FromColumns(List.Range(单字段组合,0,1)&
表格可按多列排序 这又是一个被硬生生投票投出来的功能: ? 在表格的列头可以按Shift+Click就可以按多列排序,如下: ?...另外,按多列排序目前只支持表格,并不支持矩阵。 折线图支持双 Y 轴 折线图开始支持双 Y 轴,效果如下: ? 这样,用户就可以看到利润与利润率的同时对比趋势。...这个特性可以开启也可以关闭,具体可以在文件的选项中进行配置。 分解树细节改进 分解树在两个细节上得到改进,效果如下: ? 可以设置显示的稀松程度以及元素很多时产生滑动箭头。...其他 在其他方面的更新,大家可以参考官方文档,如下: https://powerbi.microsoft.com/zh-cn/blog/power-bi-desktop-march-2020-feature-summary.../ PowerBI 官方文档已更新 地址: https://docs.microsoft.com/zh-cn/power-bi/ 如下: ?
之前我们了解到了如何把2列数据进行合并的基本操作,Power Query中如何把多列数据合并?也就是把多个字段进行组合并转成表。那如果这类的数据很多,如何批量转换呢?...生成一个表格参数变量 生成这个参数变量是为了我们之后可以在直接调用来处理同类表格。 我们了解到在代码中的字段数据列表实际上是个已经经过Table.ToColumns处理过的一个列表嵌套列表格式。...所以我们在优化代码的时候可以把这一步处理的过程直接作为自定义函数的部分流程。同时我们在这个里面直接把函数的参数数量及类型给固定住。 ?...确定需循环的列数 还有一个需要作为变量的,也就是确定是多少列进行转换合并。我们上面的例子中是以每3列进行合并,但是我们要做为一个能灵活使用的函数,更多的变量能让我们更方便的使用,适合更多的场景。...="可以把多列相同的数据合并到一起。
文章背景: 在表缺少主键无法直接创建关系,或者需要借助复杂的计算才能创建主键的情况下,可以利用计算列来设置关系。在基于计算列创建关系时,循环依赖经常发生。...当试图在新创建的PriceRangeKey列的基础上建立PriceRanges表和Sales表之间的关系时,将由于循环依赖关系而导致错误。...在这个例子中,修复方法很简单:使用DISTINCT代替VALUES。一旦改用DISTINCT,就可以正常创建关系了。结果如下图所示。 正确设置关系后,可以按价格区间切片了。...在我们的例子中,情况是这样的: Sales[PriceRangeKey]依赖PriceRanges表,既因为公式中引用了PriceRanges表(引用依赖),又因为使用了VALUES函数,可能会返回额外的空行...BI 的重要性(https://learn.microsoft.com/zh-cn/power-bi/guidance/star-schema)
因素分析法是依据指标与其驱动因素,从数量上确定各因素对指标影响程度的一种方法,主要是通过四个步骤来实现。
在Power BI中要实现按钮变色效果,可以使用按钮工具。 1. 插入按钮 2. 设置什么状态下显示颜色 可以设置悬停或者按下的动作时显示颜色,可以分别设置3种状态下的颜色 3.
《汇报工作与众不同:在PPT中展示Power BI动态图表》这篇文章中,我介绍了如何使用PowerBI Tiles这款插件在PPT中动态展示数据。...下图是插件安装好的效果(Power BI In Office): 可以实现类似Power BI网页端和桌面端一样的动态切换: 也可以像PowerBI Tiles一样存为静态图片: 设置过程非常简易...需要注意的是,该插件需要非常多的Power BI账户授权,如下图所示: 所以,请自行斟酌是否使用。如后续想停止使用,可在https://myapps.microsoft.com/进行授权取消。
SVG,全称Scalable Vector Graphics,即可缩放矢量图形,在Power BI中有着广泛的用处。本文将用法总结为三类,并详述在每种用法使用什么图表插件。...在Power BI中最简单的SVG图片展示方式是表格或者矩阵,在SVG编码前加上必须的识别符并标记为图像URL。...Power BI有插入图片功能,但是插入的选项没有SVG格式。 Power BI插入图片截图 而PPT、Excel已具备此项能力,希望Power BI后期跟进。...在《如何为Power BI报表设计动画背景》这篇文章中我介绍了原理。也就是说截止到本文发布,Power BI直接插入图片不支持SVG格式,但是页面背景和壁纸却支持。 2....全都有》这篇文章中我介绍了该图表的详细用法。
帕累托法则俗称80/20法则,即约80%的结果是由该系统中约20%的变量产生的。例如,20%的客户贡献了80%的收入,20%的产品贡献了80%的销售等等,意在帮助我们抓住工作中的关键事项。...本文分别介绍下帕累托分析在Excel和Power BI desktop当中的应用。...一、在Excel当中的实现方式: 要点 1.累计销售占比值显示方式的选择 2.销售额按照降序排列 二、在Power BI desktop的实现方式 (本人习惯在Excel Power Pivot中建立模型...,在Power BI Desktop中也可直接建立) 1.将数据源导入Power Pivot,因数据源中针对各品类有重复值,将数据按照品类汇总。...Pivot模型导入Power BI desktop 4.选择如下图图表并进行相应坐标轴设置 最后即可得到相应图表 除销售分析,帕累托法则还可广泛应用在时间管理、人员分析等方面,有兴趣的读者可以进行尝试
于是我决定使用诊断来检查一下,在pq的工具里: 果不其然,这张表在本地刷新也是90多秒: 一开始我还以为是这张表有问题,但是我换了张表,还是用SharePoint.Files的方式获取文件,时间也差不多...然而SharePoint.Files,是直接列出所有的onedrive中的文件,包括根目录和任何子目录中的文件,再进行筛选。...xxxxxxxxx-my.sharepoint.com/personal/xxxxxxxxx_onmicrosoft_com/",[ApiVersion="AUTO"]) 也就是说,引擎需要将onedrive中所有的文件名和信息都过滤一遍...尤其是当需要获取上百个文件时,你会发现获取这么多的文件和获取两三个文件的时间也差不多,因为大部分的时间都用在了扫描文件名上了,powerbi的引擎处理文件时还是很有效率的。...而SharePoint.Contents的url是根目录,因此不管有多少文件,在云端只需要设置一次数据源凭据授权即可。而且即便将来不断地向模型添加文件,云端也不需要进行任何数据源凭据的更新。
不过,在Power BI Desktop的建模中直接右键复制度量值可不会像在powerquery中复制表那样容易实现: ? 所以只能是打开一个度量值然后复制内容: ?...粘贴到另一个新建度量值中,修改名称和内容: ? 不过,不知道你有没有这种体验,10次有8次,粘贴的时候啥也没有?!! ? 啥原因呢?我们看下图: ?...原因是,如果你按住鼠标左键选择度量值,当你松开左键时,鼠标指针仍然在度量值输入框中,它就是深蓝色的,也就可以复制;而如果指针已经不在这个度量值输入框内时,那么它就显示浅蓝色,代表不可复制。...其实很简单,就像黄渤出演过的一部电影《蛋炒饭》中说的: ? 按住鼠标左键拖动复制度量值的时候,要慢一点,不要让光标离开输入框。
当报表要求简单且不复杂时,对一组数据建模的最简单方法有时是将其转换为一个单一的平面表:你可以添加一列值,或者通过其他列进行过滤。在从Excel过渡到Power BI时,使用相同的方法。...以下是组织到平面表中的零售订单数据的示例: ? 如上图,这些数据如果存储在Excel表格中,你可以按“订单日期”列进行筛选,并将数量、单位成本和单价相加。...在数据分析中,实体通常被具体化为维度表,每个属性都是一个列或字段。 事实表包含用于汇总和聚合度量值的数字列,以及与维度表相关的列。维度包含用于对业务事实进行分组和筛选的属性。...你将注意到,从每个维度表到事实表的关系是一对多的,并在一个方向上过滤记录,如关系行上的箭头所示。例如,“客户信息表”与“在线销售”之间的关系基于这两个表中的“客户Key”列。...解析维度表中的多对一关系 在维度表中存储报表标签和筛选值 确保维度表使用代理键 创建一致的维度以在整个企业中集成数据 提供DW/BI解决方案 支持业务用户的决策 让我们把这个过程应用到销售订单的平面表中
2.增加工作量,例如如下简单的图表,我们要表现五个品牌的按年份变化趋势,就需要做五张图表(或者五页PPT) 可不可以只做一页,并且动态展示? 可以。...先看效果: 我们借助Power BI Tiles这个PPT插件可以轻松将Power BI的动态图表载入PPT 一、插件安装 1.打开任意PPT, 点击插入-应用商店 2.在应用商店搜索"Power...BI",找到Power BI Tiles,点击“添加” 3.点击“插入-我的加载项”,找到Power BI Tiles,点击即可将插件加入PPT界面 二、插件使用 1.在登录界面中有两种数据源选取方式...2.登录之后,我们可以看到所有同步在Power BI网页端的报告列表。...任意点击其中一个(此处我们选择第一个) 我们可以看到报告被顺利加载到了PPT中 报告中的切片器等按钮和在Power BI中一样都可以正常使用,互动展示。
图2.1 从基于行的存储中检索列的值效率低下 2.1.2 列式数据库 与RDBMS的按行存储数据不同的是,Power BI模型通过按列存储数据来实现这一过程。...无法使用此数据类型执行聚合或计算,但它可用于存储需要在报表中使用的图像。 为了实现高效的模型,为数据选择合适的数据类型至关重要。Power BI 模型旨在尽可能高效地将一系列唯一值存储在列中。...本章后面 “在 Power BI 模型中要避免的关系型数据库原则” 部分将详细介绍多对多关系。 2.4 高效的模型设计 关系和筛选器传递的概念让 Power BI 模型可以实现强大的分析能力。...这将会导致事实表包含大量的列,每个列都有特定的业务规则或聚合。但是,你并不希望在 Power BI 模型的事实表中包含如此多的列!...Power BI 允许创建目标事实表与 Product 表 Category 列之间的多对多关系,如图2.16所示。
但是,Power BI自动过滤所有带有空白值的行。当从具有大量数据的表中查看结果时,这会限制结果集并防止性能下降。 如果更换了空白,则Power BI不会过滤不需要的行,从而对性能产生负面影响。...VALUES():包括Power BI由于引用完整性违规而添加的任何空白。 如果Power BI发现参照完整性违规,则会在列中添加空白值。...对于直接查询,因为Power BI无法检查违规,所以Power BI在列中添加了空白值。...DISTINCT()和VALUES()函数不同: 在整个报表中,保持DISTINCT()和VALUES()函数的用法一致。 如果没有空白值,Power BI建议使用VALUES()函数。...使用SELECTEDVALUE()代替HASONEVALUE() 在应用切片器和过滤器后,通常使用HASONEVALUE()检查一列中是否只有一个 值。
例如,在此表视觉中,您不想汇总一列,而是查看该列的原始值: 在页面级别启用/禁用设置 以前,报表作者可以在报表或可视级别上启用或禁用此功能。...最后,您现在可以在切片器中或作为过滤器引用此字段。请注意,如果将“多选”的映射列设置为“否”,则您将需要在切片器中使用单选模式或要求在过滤卡。...但是现在,它可以跨越多个图表,并且可以容纳尽可能多的图表!更大的图表的跨度现在可以在多个列中进行,而之前只能进行一次。...您可以选择度量类型,以确保最适当地显示或可视化每一列: 我们在Zebra BI Tables中引入了可伸缩组的全新概念!...其中三个是真正的大人物,将对Power BI报表创建者和最终用户产生重大影响。 衡量支持 首先是1.6。ZoomCharts版本已切换到矩阵视图以进行数据聚合和处理。
在 Power BI 模型中,也提供了一些可以保证数据的安全性的方法。在本章中,你将学习如何来实现。 请注意,在 Power BI 的报表和仪表板上进行分发或共享的安全性,我们将不做介绍。...使用行级别安全性保护 Power BI 模型。 为分层数据配置安全性。 保护属性或表中的单个列。 确保度量值的聚合级别。...在 Power BI Desktop 中打开模型,然后单击功能区中的Power BI 数据集。 现在可以选择要连接的 Power BI 模型。...更重要的是,当引用受保护的列或受保护的表中的列时,Power BI报表因为无法访问这些列或表而引发错误。...你可能会有这样的需求:“工资成本可以按团队查看,但单个员工的工资只能由他们的直接经理查看”。在本节中,我们将探讨确保在不同聚合级别上查看结果的方案。
领取专属 10元无门槛券
手把手带您无忧上云