DAX-第4章 上下文和筛选 Extreme DAX-第5章 基于DAX的安全性 Power BI 学谦 开始本章翻译时,是5月初。...因此,本文所介绍的思想还是有较大价值的。 Power BI报表中的可视化效果是通过两种方式来使用Power BI模型中的数据。...由于你已向他们提供了一些切片器来选择视觉对象中使用的度量值,因此你还需要使用切片器来选择图表标签。 由于本书是关于DAX的,因此我们通过DAX解决了这个问题。...所有选项都有优点和缺点,例如易用性、需要更改DAX代码以及使用切片器或其他报表元素进行选择的可能性。我们在这里不详述其他选择。 在本节中,将使用辅助表和自定义DAX度量值来解决此难题。...再次查看该部分开头的数字,了解视觉对象中DAX度量值的结果。切片器筛选辅助表中的LabelType列,而轴值列用于图表的y轴。 辅助表和DAX度量值已成功实现动态y轴。
在 Power BI 中显示一个大型的表,并不擅长,因为 Power BI 更倾向于制作高度聚合的可视化图表,但如果就是希望做到可以显示大篇幅的分页表格怎么办呢?本文就是来给出答案的。...在本案例中,是按照订单日期排序的,但会出现订单日期一样的订单,它们的排名是不同的,被有效错开了。 当然,最最重要的是:该解决方案必须具有通用性。 很显然,以上全部已经实现。...实现方法 该控件的实现方法非常巧妙。大致思路如下: 先给出动态可选的页面控件,表现为:两个切片器。 再给出表格是否在某个页面的判断,用度量值作为表格的筛选器。 再计算行号。...用度量值做筛选判断 用度量值做筛选在很多场景中,其实是一个重要的技巧,这里正好用到这个技巧,如下: ?...总结 通过掌握《BI 真经》, 也就掌握了 DAX 思考问题的真谛,用《BI 真经》打好的坚实基础的确可以超越 Power BI 本身的限制,尽量将可塑性很强的 DAX 发挥到极限。
但是,Power BI自动过滤所有带有空白值的行。当从具有大量数据的表中查看结果时,这会限制结果集并防止性能下降。 如果更换了空白,则Power BI不会过滤不需要的行,从而对性能产生负面影响。...DISTINCT()和VALUES()函数不同: 在整个报表中,保持DISTINCT()和VALUES()函数的用法一致。 如果没有空白值,Power BI建议使用VALUES()函数。...使用= 0而不是检查ISBLANK()|| = 0 Power BI中的BLANK值与列数据类型的基值相关联 对于整数,BLANK值对应于零,对于字符串列,BLANK值对应于“(空字符串)”,对于日期字段...要仅执行零检查,请使用IN运算符。 使用SELECTEDVALUE()代替HASONEVALUE() 在应用切片器和过滤器后,通常使用HASONEVALUE()检查一列中是否只有一个 值。...而是使用两者中存在的值的交集,从而保持当前上下文。当您想要在执行计算时维护切片器应用的任何过滤器或在报告级别上使用 此过滤器。
虽然许多 Power BI 用户专注于模型并试着完全避开使用 DAX,但是除了最简单的基础聚合运算以外,其他所有的计算都需要通过 DAX 来实现。...在本章中,我们将简要介绍 DAX 在 Power BI 中的不同用法。 计算列 计算表 度量值 安全筛选器 DAX 查询 除此之外,我们还将讨论如何使用 DAX 创建日期表。...例如,在 Excel 模型和数据仓库中,您可能会遇到一个指示器(indicator),该指示器确定某一行数据是否属于“当前年初至今”。同样,这是一个静态解决方案,不会让您得到两个月前的年初至今数据。...图3.6 使用 DAX 公式创建的日期表 在实际模型中,为了更好地匹配新数据的加载,日期表的开始日期和结束日期一般而言是需要设置为动态的。...总结 在本章中,你已了解 DAX 在 Power BI 模型中的不同用法:计算列、计算表、度量值、安全规则和查询。
切片器 切片器是最常用的,也是几乎必不可少的视觉对象,基础的切片器根据值的类型不同所体现出来的视觉效果也不一样。 1. 文本型数据: 功能 ? 1) 下拉式(切片器标头) ?...在选其余3个样式时,在常规设置中的响应会有差异,如图 ? ? 在选择另外两个样式的时候,请注意会锁定介于样式其中的一个值。 ? ? 3....日期型数据 在数值型数据的基础上有多了1个选项,也就是相对日期 ? 相对日期有日,星期,月,年的选项,其中还分为日历和实际的分类。 ?...当然在默认情况下,是相对于当天来进行选择的,如果要确定某一日的相对时间,可以在使用相对样式时,在日期范围菜单进行设置。 ? 4....参数 参数,是一个特殊的数字值类型。在数字型的切片器的基础上,具有单个值的选择。 ? 如果觉得有帮助,那麻烦您进行转发,让更多的人能够提高自身的工作效率。
Power BI案例-连锁糕点店数据集的仪表盘制作 数据集描述 有一个数据集,包含四张工作簿,每个工作簿是一张表,其中可以销售表可以划分为事实表,产品表,日期表和门店表为维度表。...目标1:日期类型转为文本类型 Power Query中整理数据日期表中“年”和“月”的字段类型需将其调整为文本型,与原表类型一致。...日期类型调整为日期类型 选择日期表,查看如下: 需要说明的是,原始数据的年和月与这里的不同,excel中的数据如下: Power BI会根据字段类型,自动补全,比如把2019年补充为2019年...’[单价]) 金额=‘销售表’[数量]*‘销售表’[单价] 新建单价列 新建金额列 目标3: 新建度量值 度量值:Power BI数据建模的灵魂; 数据分析的指标; 度量值不改变源数据...目标7:插入切片器 切片器是画布中的视觉筛选器,是报表中的一种可视化图形元素; 切片器本身不为了展示数据,而是作为展示数据时的各种维度选择本案例: 设置“年度”和“店铺名称”切片器; 这里的店铺名称修改为了磁片显示
目标1:日期类型转为文本类型 Power Query中整理数据日期表中“年”和“月”的字段类型需将其调整为文本型,与原表类型一致。...日期类型调整为日期类型 选择日期表,查看如下: 需要说明的是,原始数据的年和月与这里的不同,excel中的数据如下: Power BI会根据字段类型,自动补全,比如把2019年补充为2019年...这时需要我们把年和月的字段修改为文本。...’[单价]) 金额=‘销售表’[数量]*‘销售表’[单价] 新建单价列 新建金额列 目标3: 新建度量值 度量值:Power BI数据建模的灵魂; 数据分析的指标; 度量值不改变源数据...目标7:插入切片器 切片器是画布中的视觉筛选器,是报表中的一种可视化图形元素; 切片器本身不为了展示数据,而是作为展示数据时的各种维度选择本案例: 设置“年度”和“店铺名称”切片器; 这里的店铺名称修改为了磁片显示
但不排除一句话可以解决大问题的神技,小白不需要理解为什么,只需要用,只需要欣赏,只需要赞叹,不仅仅帮助小白解决问题,同时让小白可以增加兴趣,来体会 Power BI 和数据分析中的美和艺术。...的确,有很多方法和工具可以从 Power BI Desktop 的数据模型中提取信息,但是对于小白来说,怎么可以快速实现呢? 小白的标准操作在于: 第一步,复制粘贴 “度量值” 内容。...无法用于计算表 不难想到可以用计算表来计算以上的字典并放入当前数据模型,可惜是不行的,例如在 Power BI Desktop 中,创建计算表,并写入: 这就出现了一个循环依赖的错误。...我们希望这个很实用的函数可以使用。 度量值实现 既然该 DAX 函数仅仅依赖表和列,但并不会依赖度量值,所以,可以通过度量值来获取信息。...编辑器的智能提示出错,说明 Power BI 的公式编辑器并没有支持对该函数的解析。但的确存在该函数。 显示信息 用度量值显示一个数值不是我们想要的,毕竟我们想要的是信息,而不是有多少条数据。
一、创建度量值 度量值是通过DAX表达式创建的一个虚拟的数据值,其不改变源数据,不改变数据模型,在Power BI图表中通过度量值可以快速便捷的统计一些我们想要的指标。...此外,如果我们在Power BI中设置了"分片器",随着分片器的设置不同,对应的"总营业额"度量值也会变化。...','第四季度点播订单表') 图片 五、创建日期表 在Power BI中我们经常使用时间函数来对包含日期列的数据表进行时间转换操作做进一步的分析,这里我们通过Power BI创建一张日期表来演示日期函数的操作使用...在Power BI中创建日期表常见的有两种函数:CALENDAR和ADDCOLUMNS。下面分别介绍。...需求:根据导入到Power BI中的"2022年点播订单表"和"门店信息表"数据展示每个门店对应的点播订单信息。
4.1 Power BI 模型 本章中的示例取自一个简单的 Power BI 模型。...它会从指定的列中删除筛选器,或者从引用的表中的所有列中删除筛选器。如果确实需要,可以使用不带参数的 ALL 从整个 Power BI 模型中删除所有筛选器。以上情况,代码如下。...只有当筛选器来自于使用度量值的视觉对象中的标签时,ALLSELECTED 才会删除这些筛选器。而来自切片器、页面筛选器或其他视觉效果的外部筛选器则保持不变。...在 Power BI 模型中使用相同的函数创建计算表可能会有所帮助,但无论如何,使用 DAX 表函数需要一定程度的抽象思维。...4.6.4 使用表函数的性能注意事项 我们使用 Power BI 的最终目标始终是尽快提供结果,任何时候我们都应该考虑性能问题。因此,在 DAX 中使用虚拟表时,需要时刻注意以下几点。
Power BI 2022年5月更新的字段参数功能业务使用价值巨大,以至于本号连续更新相关内容,以下是前情提要: Power BI字段参数基础 Power BI字段参数如何设置条件格式 Power BI...字段参数表的与众不同之处 ---- 在建模选项卡下,新建字段参数,添加一个切片器,我们可以实现动态切换维度或者指标(不了解基础操作可参考这个视频:Power BI字段参数用于存货分析)。...('指标'[度量值]) 显示_索引 = SELECTEDVALUE('指标'[索引]) 增加指标切片器,将以上三个度量值放入卡片图,神奇的事情发生了(2022年5月版本,不排除后续有变化):加载了显示...在生成的字段参数表后,手动加一列分组: 将分组和指标列都放入切片器,可以看到指标进行了归类: 默认情况下,分组显示顺序可能不合适,为分组也加个索引: 以上读者可能发现,字段参数表可以被手动修改...比如,利用字段参数的列合并次级指标为一个度量值(Power BI字段参数合并同类型指标),比如,为使用字段参数的图表增加辅助线(Power BI字段参数情境下的辅助线策略) 如前文介绍,因“指标”列(
针对这种TopN问题的分析,在Power BI中我们需要使用TOPN函数,TOPN函数可以返回指定表的前N行数据。...以上需求就需要用到CALCULATE函数和TOPN函数,具体操作如下: 1、在度量值表中新建度量值TOPN营收总金额: 度量值DAX公式为:TOPN营收总金额 = CALCULATE('度量值表'[总营收金额...在Power BI中我们可以通过"新建参数"来实现动态的调整TOPN对应的N值来实现动态展示TOPN统计需求,这就是动态TOPN统计。...对Power BI中"参数"合理的使用可以大大提高报表的可用性,下面我们通过创建"参数"来实现动态展示销售额TOPN对应门店的总销售信息。...上图"TOPN参数"表中"TOPN参数"指的是"切片器","TOPN参数 值"是后续我们要使用的参数值,其中TON的N值是根据"切片器"中的值来动态获取的。
上一节 Power BI 计算组理解(一)中,提出可以将计算项理解为 特殊的自定义函数 ,其输入参数为度量值,不过上一节创建的计算组(收入、利润、利润率),在其值定义中并没有用到其输入的度量值本身。...在这种场景下,定义这类计算项,就需要使用其输入的度量值。获取输入到计算组的度量值需要使用dax函数SELECTEDMEASURE()。 下面创建一个 时间维度计算组,并在其创建三个计算项: ?...) ) ) - 1 不过,当输入度量值为[利润率]时,上述计算组中的同比增长率(一般用来计算绝对数)可能没有意义,这时可以使用使用DAX函数 ISSELECTEDMEASURE()排除。...- 1, BLANK () ) 此时,该模型中就存在两个计算组,如果返回页面,将 时间维度计算组 表列[Name1]加入至切片器后,当前页面的度量值便同时受两个计算组所控制,如下 ?...他们最终都会转换为: CALCULATE ([收入], SAMEPERIODLASTYEAR ( '日期表'[Date] ) ) 需要注意的是,虽然也可以像其他表列一样,在DAX中直接引用其计算组表的名称列
徒手用DAX+SVG设计一款图表是费力的,尤其是组合图表。如果我们善于借助Power BI本身的力量和外部力量,制图的过程将会轻松很多。...条件格式图标也是可以借力的地方,下图的产品图片直接拖到产品ID条件格式即可(图片使用Base64,参考:Power BI本地图片显示最佳解决方案),极大丰富图表的元素。...表格矩阵的总计不仅仅可以显示总体数字,也可以作为图表的一部分进行独立设计,比如下方的均值标识(Power BI/Excel 表格条形图添加均值辅助线) 下图充分发挥了矩阵的特点,时间切片条形和趋势折线同时显示...例如,以下这个仪表盘,元素非常复杂,设计部分可以直接复制Easyshu的代码(参考:Power BI复刻EasyShu仪表盘),我们只需专注于如何使用DAX让图表中的数字发生变化。...类似的我还很快复刻了富婆图表的仪表盘(参考:这个图表库可以复刻到Power BI) 网上的各种素材也是借力的地方,以下进度条中,进度条本身很简单,SVG中的rect标签,但是心形和裂开的心形怎么画?
不难看出: 在 Power BI 中使用任何图表都会自然的触发条件 2,而用户的确常常会做切片器,而且来自同一个表的不同的列,那么,也很容易触发条件 1,这样一来,这个叫 AutoExist 的机制是很容易被触发的...因此,Power BI 用户,尤其是编写了 DAX 的公式,大概率会遇到这个问题的。...解决方案 由于触发 AutoExist 需要两个条件,其中 SUMMARIZECOLUMNS 运算是不可避免的,在 Power BI 中图表都默认使用了这个计算,那方案只有是不让它来自一个表的多列。...当一个表有两列分别作为切片器时又写了一个 DAX 公式里 ALL 掉了其中一列。 数字就会不对。 解决方法是:把那列单独做个表出来即可。...时间来到 2022 年,Power BI 的学习方式已经不是几年前,一起高喊 DAX 牛逼的日子,而是精细化的拆解出一套业务人员与技术人员的有效区隔,业务人员应该将注意力集中在业务本身,以及如果使用 DAX
DAX使用场景及常用函数 Power BI中DAX函数非常多,功能非常强大,下面结合一些实际场景来讲解DAX一些常用的函数,这些场景包含求和、计数、相除、排序、累计、环比、同比,为了更方便后续的可视化展示数据...操作如下: 同样的方式我们也可以创建可视化表将"门店信息表"中的"商圈类型"与"总营收金额"展示在一起,如下: 并且还可以点击两表中不同的行进行联动,如下: 二、计数统计 在Power BI中用于计数的函数有两个...) 将创建的"不重复机器数"度量值拖入到之前创建的"多行卡"中,操作如下: 三、相除统计 在Power BI中有一些场景需要使用到数据相除,我们可以通过"/"符号实现或者使用"DIVIDE"函数实现..."中,操作如下: 四、排序统计 在Power BI中要实现排序功能可以借助RANKX和ALL函数来实现。...六、累计统计 在Power BI中针对时间维度进行累计值统计也是常见的场景,例如统计每月累计交易额、统计每个季度累计交易额等,这就要使用到累计相关的DAX函数,累计相关的DAX函数有三个:TOTALYTD
正常情况下,切片器使用的是维度字段,但是Power BI 2023年11月推出的新切片器可以添加度量值,这解决了一个问题:切哪个。...下方的切片器添加了业绩增长率度量值,哪个城市业绩下滑最严重,就可以先选择哪个城市,查看详细情况。 添加度量值的方法是在新切片器的标签下选择需要显示的度量值。...成交率是最主要的因子,客流是增加了,但是进店的客流没有成交,需要进一步解析背后的原因。 《Power BI DAX 左手建模、右手制图》讲解过,度量值可以是数值,也可以是图表。...那么切片器上能叠加图表吗?很遗憾,新切片器的图像功能下可以添加SVG图表度量值,但是无法正常显示,可能是一个BUG,期待微软尽快解决。...当前内置视觉对象无法支持的情况下,HTML Content可以解决。例如下图的切片器添加了环形图: 下图的切片器添加了百分比条形图:
CUBEVALUE提取模型数据生成复杂格式报表 在将Power Pivot模型数据取值到单元格中这篇文章中,我介绍了如何使用CUBEVALUE函数在单元格中输出Power Pivot模型生成的结果,实现建模强大与表达灵活并存的效果...CUBEVALUE和CUBEMEMBER配合可以实现对模型中的度量值自由切换。...["&$B$5&"]",E6,切片器_星期) 可以看到F列的区别是,变更前CUBEVALUE引用的是DAX建立的度量值,而变更后引用的是E列的单元格值。...,给这个度量值取个别名) 本例Power Pivot后台DAX新建的度量值都带有M字样,直接体现在报表中不雅观,因此推荐启用第三个参数。...3.总结 ---- 本文结合上一篇CUBEVALUE的介绍文章,可以给我们一个启示:DAX的建模能力犹如深厚的内功,你的内力如果只是通过透视表这一个招式表达出来未免太过无趣(Power BI用户请飘过)
如果事实表中一旦有多个日期列,或者还有其他的表需要关联日期表,那么模型的搭建将是一件非常痛苦的事情。 关于多个日期表的妙处,我在这篇文章中也提到过,大家可以参考: 【运营】任意两个时间段的复购率?...Power BI一招帮你搞定 2.单一日期表,多个度量值 模型仍然要使用最开始所讲的: ?...,且需要思考每次选用哪个度量值。...你可以用DAX来建这个表,也可以直接手动输入,里面的内容只有一列两行(看实际的事实表中的日期数量):: “Delivery Date“; “Invoice Date”。...最后用SWITCH选择并返回使用特定关系的度量值。 使用这种方法,最终用户只要通过切片器就可以切换所要使用的日期,也会标注默认使用Invoice Date。
其实,Power BI中的Power Query和Power Pivot最早是以Excel为载体的。...换句话说,Power BI中的Power Query和Power Pivot组件的功能和语法等方面都是一样的。...本书目录 第1章 Excel:你的职场生产力工具 1.1 你所不知道的Excel分析“利器” 1.2 从Excel到Power BI,只需要一步 第2章 认识Power...DAX中的数据类型与运算符 7.3.3 创建DAX表达式时表和列的引用方式 第8章 Power Pivot和DAX基础知识 8.1 理解计算列与度量值 8.1.1 依附于数据表的计算列 8.1.2...:使用CUBEVALUE函数提取Power Pivot数据模型中的数据 9.5.3 实例2:使用“切合器+CUBEVALUE函数”动态提取Power Pivot数据模型中的数据 第10 章时间智能计算
领取专属 10元无门槛券
手把手带您无忧上云