
PowerBI
文章平均质量分 97
神洛华
这个作者很懒,什么都没留下…
展开
-
DAX权威指南8:DAX引擎与存储优化
聚合表是原始数据表的预分组版本,其核心目的是通过预聚合数据来减少数据量,从而加快查询速度。比如以下原始Sales表包含每一笔交易明细:通过按日期聚合,可以创建一个新的表“销售日期聚合表”:在这个聚合表中,每列都是原始表的“分组”或聚合。如果存储引擎的请求只需要聚合表中存在的列,那么引擎将使用聚合表而不是原始表。聚合表的映射规则:每个聚合列必须明确定义其与原始表的关系。对于不是“分组”类型的每个列,都需要指定聚合类型。可用的聚合类型包括表的计数、最小值、最大值、总和和计数行。原创 2025-06-06 19:42:52 · 556 阅读 · 0 评论 -
DAX权威指南7:深入理解模型关系
摘要 本文深入探讨了DAX模型关系的建立方法,重点分析了计算列关系的三种应用场景: 多列关系处理:提出组合键计算列和LOOKUPVALUE反范式化两种方案,对比了各自的性能特点。组合键适合复杂业务场景,而反范式化更适合简单列引入。 动态范围关系:通过配置表和FILTER函数实现基于价格范围的动态关系映射,解决了传统关系无法处理范围值的问题。 循环依赖问题:指出VALUES函数在计算列关系中可能导致空行依赖,建议使用DISTINCT函数替代以避免循环依赖错误。 这些方法为复杂业务场景下的数据建模提供了灵活解决原创 2025-06-02 23:02:21 · 795 阅读 · 0 评论 -
DAX权威指南6:DAX 高级概念(扩展表)、DAX 计算常见优化
DAX扩展表与筛选传播机制 扩展表是DAX中理解数据模型和筛选上下文的关键概念。它包含原始表的所有列,以及通过多对一关系链关联的所有一端表的列,扩展方向遵循关系的"一端"方向。例如,Sales表的扩展版本会包含Product、Subcategory等所有关联表的列。 扩展表机制直接影响筛选上下文的传播: 筛选器会传播到所有包含该列的扩展表 RELATED函数只能访问扩展表中的列 双向过滤通过特定机制实现,不同于扩展表传播 LOOKUPVALUE可作为替代方案,不受扩展表限制 特殊关系处理原创 2025-06-02 22:49:34 · 862 阅读 · 0 评论 -
DAX权威指南5:筛选上下文、表操作函数与层级结构
摘要 本文探讨了DAX中筛选上下文的关键概念及应用。通过HASONEVALUE和SELECTEDVALUE函数确保计算仅在单一筛选值下进行,避免误导性结果;ISFILTERED和ISCROSSFILTERED函数用于检测直接和交叉筛选器状态,帮助动态调整计算逻辑;分析了ALLEXCEPT与ALL/VALUES的差异,指出筛选器检测中可能存在的误区。 在实际应用中,建议: 使用HASONEVALUE验证筛选条件 通过SELECTEDValue处理用户参数输入 利用ISFILTERED/ISCROSSFILTE原创 2025-05-28 18:36:25 · 1069 阅读 · 0 评论 -
DAX权威指南3:变量、迭代函数与计算组
变量可以被定义为一个表达式,该表达式中可以进一步定义其他变量。例如,以下代码中,在外层定义了变量CurrentPrice,但具体的计算逻辑是在内层SUMX中完成的。SUMX ('Product',SUMX (RETURN在处理时间相关的数据时,我们常常需要进行各种时间智能计算,例如年迄今(YTD)、季度迄今(QTD)、去年同期(PY)等。除此之外,还需要考虑各种指标,例如在一个销售数据模型中,我们可能需要计算销售额、总成本、利润率和总销量等。这些度量值为业务提供了不同的见解,都是有用的。原创 2025-05-25 19:26:28 · 871 阅读 · 0 评论 -
DAX权威指南4:时间智能计算
在数据分析中,日期表是处理时间相关计算的核心工具,尤其在DAX(数据分析表达式)中。日期表需包含连续日期,并与事实表通过日期列建立关系,同时包含年、季度、月等分层结构列,以便进行复杂的时间分析。专用日期表能避免重复计算,统一分析口径,并支持DAX时间智能函数。 Power BI和Excel Power Pivot提供了自动生成日期表的功能。Power BI的“自动日期/时间”功能为导入的日期列生成隐藏的日期表,包含年、月、日等计算列,并支持层次结构。Excel Power Pivot则通过自动创建计算列或使原创 2025-05-23 15:32:37 · 640 阅读 · 0 评论 -
DAX权威指南:DAX查询
本文介绍了DAX查询工具及其使用方法,重点讲解了DAX.do和Performance Analyzer的功能与操作。DAX.do是一个在线DAX查询平台,支持查询编写、执行和结果可视化,用户可以通过元数据窗格选择数据库,使用编辑器编写查询,并在结果窗格中查看或可视化数据。此外,DAX.do还提供了查询历史记录、代码格式化、分享与保存等功能。Performance Analyzer是Power BI内置的性能分析工具,能够捕获并分析报表元素生成的DAX查询,帮助用户优化查询性能。文章还简要提及了DAX Stu原创 2025-05-19 08:04:12 · 690 阅读 · 0 评论 -
DAX权威指南2:CALCULATE 与 CALCULATETABLE
在DAX中,CALCULATE和CALCULATETABLE是唯一能够修改筛选上下文的函数。CALCULATE用于返回标量值,而CALCULATETABLE返回表。通过CALCULATE,可以创建新的筛选上下文、覆盖或移除现有筛选条件,从而简化计算过程。例如,在计算Contoso品牌的毛利率时,传统方法需要使用FILTER函数进行迭代计算,而通过CALCULATE可以直接复用已有度量值,仅需添加筛选条件即可。CALCULATE的工作原理包括:筛选参数是表(即使使用布尔条件也会转换为表形式),同一列的筛选器会原创 2025-05-14 22:13:22 · 1048 阅读 · 0 评论 -
DAX 权威指南1:DAX计算、表函数与计算上下文
特性计算列度量值定义通过 DAX 公式创建而非从数据源直接加载的通过DAX创建,用于聚合表中的数据计算上下文依赖于当前行进行计算(行上下文),无法直接访问其他行的值。查询上下文,依赖于用户选择和筛选器存储方式在数据加载时存储在模型中,占用内存空间数据刷新时而非查询时计算,从而提高用户体验在查询时才进行计算,不占用额外内存适用场景当需要将计算结果作为筛选器、行或列显示在报表中时聚合计算时,如计算利润百分比、产品相对比率等总计计算逐行计算的结果直接聚合(如求和或平均),可能导致错误。原创 2025-05-10 23:04:55 · 1298 阅读 · 0 评论 -
Power Query精通指南3:数据库(查询折叠与数据隐私)、批量合并文件、自定义函数
当源数据文件夹中的文件数量不断增加时,刷新速度会越来越慢。假设一个解决方案运行了10年,每年有16个数据文件(4个区域 x 4个季度),到2030年时,需要处理的文件数量将超过176个。如果每个文件需要5秒钟来刷新,那么总刷新时间将超过14分钟,这会显著影响用户体验。其实用户完全没必要分析那么多数据,比如业务只需要与前一年的数据进行比较,那么可以通过按日期的降序对文件进行排序,并使用【保留最前面几行】来限制保存的文件数量,以提升速度。原创 2025-05-03 16:24:02 · 914 阅读 · 0 评论 -
Power Query精通指南4:M语言(查询结构与值系统)、查询优化、自动刷新
基元值和结构值。基元值:这是最基本的数据类型,包括二进制、日期、时间、数字、文本、逻辑值、null等。结构值:这些是由基元值构造而成的复杂类型,如表(Table)、列表(List)、记录(Record)等,以彩色字体显示。结构值是 Power Query的独有设计,使得 Power Query 能够高效地处理基于行、列或结构化的数据转换。Power Query 中的函数本质上是参数化的表达式,通过(参数) => 表达式通过界面生成函数:在 Power Query 编辑器中,可以通过 右击。原创 2025-05-03 12:20:14 · 1121 阅读 · 0 评论 -
Power Query精通指南2:数据转换——透视/逆透视/分组、横向纵向合并数据、条件判断、处理日期时间
模糊匹配是一种强大的工具,可以解决数据匹配中的拼写错误和不一致性问题。基本模糊匹配通过 Jaccard 相似性算法实现,但可能无法解决所有问题。转换表可以解决更复杂的术语替换问题。降低相似度阈值可以放宽匹配条件,但需要谨慎使用以避免误匹配。维护策略包括预处理数据、监控异常项和逐步完善转换表,以确保数据的准确性和可维护性。Power Query 中没有直接的IFERROR函数,但可以通过语法实现类似功能:try语句尝试执行某个操作,失败时返回备用结果。将try。原创 2025-05-03 12:08:38 · 1127 阅读 · 0 评论 -
Power Query精通指南1:查询结构设计、数据类型、数据导入与迁移(平面文件、Excel、Web)
数据分析师的工作通常涉及从数据源提取数据、转换数据、合并数据表、重塑数据结构等。Excel 公式、VBA 和 SQL 是传统数据处理的常用工具,但它们需要较高的技能水平和大量的时间来掌握和维护,这种依赖少数专家的方式存在风险,一旦这些专家离职,后续维护会变得困难。根据业务需求,可对数据进行进一步的处理,比如删除不需要的列、重命名列等,每次操作都会在【应用的步骤】窗口中生成一个新步骤。Power Query 提供了一个安全的环境,让用户可以放心尝试各种操作,而不用担心损坏原始数据。原创 2025-05-03 11:48:16 · 1449 阅读 · 0 评论 -
Power Query M函数
目前已经有超过700个M函数了,基本上各式各样的数据处理需求都可以使用M函数实现。如果你觉得这些还不够,或者使用起来不是很方便,也可以在PQ中自定义函数。,确定后出现参数调用窗口:这个自定义函数只有一个参数x,函数会生成从1到x的序列。指定为自定义函数后,左边的空查询类型就变成了fx,名称可以根据自定义函数的含义进行重命名,这里把函数名改成mylist。在参数x输入10,点击"调用",就生成了从1到10到一个序列。原创 2025-02-22 17:49:50 · 2057 阅读 · 0 评论 -
PowerBI教程一:Power BI入门
Power BI是微软推出的数据分析和可视化工具,可以从各种数据源中提取数据,并对数据进行整理分析,然后生成精美的图表,并且可以在电脑端和移动端与他人共享。:Windows 桌面应用程序,用于创建和设计报表,在本地处理数据,适合数据分析师和报表创建者。数据连接和转换:从多种数据源提取数据并进行清理和转换,使用功能强大的 Power Query 编辑器。数据建模:可创建复杂的模型关系、自定义计算、度量指标等。报表设计:提供丰富的可视化工具和布局功能,用于创建详细的交互式报表。发布。原创 2025-02-11 11:13:57 · 7572 阅读 · 0 评论 -
PowerBI 之DAX 1:DAX概述、逻辑、筛选函数
了解 Power BI Desktop 中的 DAX 基础知识》《DAX 概述》DAX 是的缩写,专为数据分析而设计。它的主要功能是查询和运算,通过查询函数筛选数据,通过聚合函数执行计算。DAX 公式依赖于上下文,包括外部上下文(如标签和切片器)和内部上下文(DAX 公式本身),这增强了度量值的灵活性。参考《函数》运算符种类运算符功能示例算术运算符+,-,*,/加减乘除法运算,前两者也做亿元运算符,分别表示正数和负数乘方运算(幂运算)16^4比较运算符大于、等于、小于、大于等于,小于等于==原创 2025-04-06 15:16:57 · 1756 阅读 · 0 评论 -
PowerBI数据建模2:计算选项、计算组
当你需要执行更复杂或独特的数据分析时,可以使用数据分析表达式(DAX)来创建自定义度量值。DAX 是一种公式语言,它使用了许多与 Excel 公式相同的函数、运算符和语法。与 Excel 不同,DAX 函数专门设计用于处理关系数据,并在你与报表进行交互时执行动态计算。这意味着度量值的计算结果会根据报表中的筛选条件和上下文动态变化。通过这些度量值(报表级别),用户可以添加特定业务逻辑、创建视觉计算或执行与报表上下文相关的计算,而无需更改原始数据集。原创 2025-04-06 15:36:11 · 1358 阅读 · 0 评论 -
PowerBI 之DAX 3:文本、信息、财务、时间智能函数
除了以上预设的格式化函数,你也可以自定义格式。只有一个部分:格式表达式应用于所有值,例如"$#,##0"。有两个部分:第一部分应用于正数和零,第二部分应用于负数,例如"$#,##0;($#,##0)"。有三个部分:第一部分应用于正数,第二部分应用于负数,第三部分应用于零,例如"$#,##0;($#,##0);Zero"自定义格式描述示例输出货币格式表示货币格式,千位分隔,两位小数$1,234.56日期格式表示完整的日期格式时间格式表示12小时制的时间格式。原创 2025-04-06 15:28:58 · 1212 阅读 · 0 评论 -
PowerBI之DAX 2:聚合、统计、关系、表操作函数
SUM是DAX中最常用的聚合函数,它只有一个参数:<column>销售总额 = SUM( '订单表'[销售额] )<table>:将要进行计算的表,可以是FILTER表表达式计算得到的筛选表:对表中每一行进行计算的表达式所以SUMX返回的就是:对表的每一行按表达式进行计算,再进行求和。销售总额 =SUMX( '订单表','订单表'[销售额] )由于SUM函数只有一个参数,决定了它只能处理一个表的一列的求和,而涉及到多列/多表的计算,或者对特定表达式的求和,它就不适用了。原创 2025-04-06 15:23:16 · 1591 阅读 · 0 评论 -
PowerBI窗口函数与视觉计算
本节使用Power BI Desktop 的 Contoso 销售示例文件参考《使用视觉计算(预览版)》《在 Power BI Desktop 中创建视觉计算》视觉计算是一种直接在视觉对象上定义和执行的 DAX 计算。与传统 DAX 计算不同,视觉计算不存储在模型中,而是存储在视觉对象上,只能引用视觉对象上的内容(包括列、度量值或其他视觉对象计算),这意味着视觉对象计算不必担心筛选器上下文和模型的复杂性,简化了编写 DAX 的过程,便于维护且性能更优。原创 2025-04-06 15:09:05 · 924 阅读 · 0 评论 -
PowerBI数据建模基础操作1:数据关系(基数、双向筛选、常规关系、有限关系)与星型架构(维度表、事实表)
行级安全性()在 Power BI 中用于限制特定用户的数据显示,通过在行级别设置过滤器(一般是DAX公式)来控制数据访问权限。Sales(销售表)和Customer(客户表),你的角色被设置为只能看到美国的客户数据。那么当你查询客户表时,系统会自动用公式来过滤数据,你只能看到美国客户的行。历史追踪属性列:比如IsCurrent列,用于标识每个成员是否为当前版本,以便轻松筛选当前维度成员。版本有效期列:存储每个版本的开始日期和结束日期。原创 2025-03-16 22:47:53 · 1882 阅读 · 0 评论 -
Power Query数据清洗
上图结构也很常见,课程和成绩都有多个列,无法直接通过逆透视来实现,此时可以先合并相同类型的列。合并课程1和成绩1两列,分割符可以任选一个,比如选空格。同样的方式把课程2和成绩2、课程3和成绩3合并。2. 选中“姓名”列,逆透视其他列3. 删除不必要的“属性”列,拆分“值”列。上面的步骤很简单,不过如果列数特别多,第一步合并列将会非常繁琐。通过下面这个自定义函数“批量多列合并”,可以一次性将这种结构的表转换为一维表。右键该查询,选择创建函数。弹出“未找到参数”窗口,点击确认。=let。原创 2025-02-22 19:56:01 · 1932 阅读 · 0 评论