随笔分类 - PowerBI和数据分析
摘要:所谓模型的关系,是模型中的两个表,通过两个列建立的连接。关系的用途,是把过滤器从一个表传递到其他表。过滤器传递的方向,是关系的方向;过滤器传递的路径,是由两个表之间相关联的两列组成的。表,表之间的关联,以及关联的方向,也构成了数据模型。因此,对于一个数据模型来说,关系传播的路径是确定的,这意味着,过
阅读全文
摘要:原文:Nested grouping using GROUPBY vs SUMMARIZE EVALUATE ADDCOLUMNS ( VALUES ( 'Product Category'[Category] ), "Max SubCat Avg Price", CALCULATE ( MAXX
阅读全文
摘要:原文:Best practices using SUMMARIZE and ADDCOLUMNS 在实践中,可以用SUMMARIZE添加分组列,而用ADDCOLUMNS添加计算列。 ADDCOLUMNS( SUMMARIZE( <table>, <group by column>,... ), <c
阅读全文
摘要:下面列出的5个表函数,都是DAX中用于做分组聚合的函数。 ADDCOLUMNS(<table>, <name>, <expression>[, <name>, <expression>]…) SELECTCOLUMNS(<Table>, [<Name>], <Expression>, [<Name>
阅读全文
摘要:创建Field Parameter时,第一列是参数名称,第二列是NAMEOF,第三列是参数的顺序,从第四列开始,都是对前散列的分组。 1,Field Parameters 的层次结构 2,Field Parameter的分组 把多个列设置到一个组中 文档: Power BI Field Parame
阅读全文
摘要:原文:Nested grouping using GROUPBY vs SUMMARIZE GROUPBY函数的作用是根据输入的表进行数据聚合,输入的表可以是表表达式,也就是说,GRUOPBY的参数可以是一个动态查询返回的表,也就是说GROUPBY函数可以用于嵌套聚合的情况。但是,GROUPBY 不
阅读全文
摘要:简单来说,如果多个Report共用一个Dataset,那么这个Dataset是共享数据集。每当共享Dataset刷新后,任何引用这个Dataset的Report都会自动刷新,这也是共享数据集的一个优点。 共享数据集的一个重要作用,是把后端(建立数据集)的任务从整个报表开发流程中分离出来,后端只需要把
阅读全文
摘要:EARLIEST和EARLIER函数只用于行上下文中,并且主要用于计算列的行上下文中。行上下文的作用是迭代,逐行扫描表,并且不会筛选数据。 EARLIER函数用于访问外层行上下文,即使用外层行上下文,而不是最内层的行上下文检索列的值。 EARLIER(<column>, <number>) EARL
阅读全文
摘要:简单的说,当ALL用作表函数时,忽略应用到表上的任何过滤器,并返回数据表;当ALL用作CALCULATE和CALCULATETABLE函数中修饰器时,ALL函数从扩展表中移除已经应用的过滤上下文。 注意自动存在(auto-eixist)对ALL()函数的影响。 正常情况下,包含 ALL() 函数的
阅读全文
摘要:LOOKUPVALUE函数用于根据一个或多个搜索条件,从另一个表中获取一个或0个值。LOOKUPVALUE运行在行上下文中,根据当前表中的当前行,从另一个表中查找条件相等的行,查找不需要两个表之间存在关系,搜索结果也不受过滤条件的影响。当两个表之间存在关系时,考虑使用RELATED函数,因为RELA
阅读全文
摘要:DAX 中的 SUMMARIZE 函数功能强大,但同时也很难使用,它可用于执行表之间的分组和连接。不幸的是,它在计算聚合值时存在一些众所周知的性能问题。除了性能之外,SUMMARIZE 的计算限制是它无法聚合在查询本身内动态计算的值。 一,SUMMARIZE函数的限制 例如,考虑以下查询,它应该为每
阅读全文
摘要:原文:All the secrets of SUMMARIZE 作为一个查询函数,SUMMARIZE 执行三个操作: 它可以按表本身或相关表的任何列对表进行分组; 它可以创建新列,在行上下文和过滤上下文中计算表达式; 它可以产生不同级别的小计(subtotal)。 在 SUMMARIZE 的三个主要
阅读全文
摘要:异常检测通过自动检测时间序列数据中的异常来增强折线图,并且提供了异常解释,以帮助用户进行根本原因的分析。异常检测只能用于Line Chart中,并且必须有Date字段作为X坐标轴,实际上,PowerBI按照时间序列,用SR-CNN算法来检测数据的异常,即微软的时序异常检测服务(Time-Series
阅读全文
摘要:关键因素(Key Influencer)图表能够帮助用户分析KPI的因素,并按照因素的重要性进行排名,也就是说,该图表可以查看哪些因素会影响到KPI,并计算出因素的相对重要性。使用Key Influencer Visual,不仅可以查看单个因素的影响,还可以查看多个因素构成的组合(称作Segment
阅读全文
摘要:函数ADDCOLUMNS和SELECTCOLUMNS的功能相似,都是迭代函数,在行下文中计算表达式,并返回一个表。当需要切换到过滤器上下文时,需要用到CALCULATE函数。 从数据沿袭的角度来看: ADDCOLUMNS函数:新添加的列不具有数据沿袭的能力。 SELECTCOLUMNS函数:SELE
阅读全文
摘要:自动存在是 DAX 中内置的一项技术,其唯一的目标是避免无用计算,换句话说,它是 DAX 的过滤机制使用的一种优化技术,目的是减少计算值的工作量。 例如,假设有人构建了一份按大陆和国家/地区划分的报告。 在一个数据库中,一个人可能有两大洲和五个国家: 在这些数据上,可以运行一个简单的查询,如下所示:
阅读全文
摘要:数据沿袭实际上存在DAX中的每个角落,它的设计如此好,以至于很多开发人员在不知情的情况使用。 DAX使用数据沿袭来维护关于列值来源的信息。数据沿袭实际上是一个标签(Tag),分配给表中的每一列,此Tag用于标识数据模型中的原始列,即列的值源自于该列。通过数据沿袭,DAX可以利用现有的关系来过滤数据模
阅读全文
摘要:在筛选上下文中,一列可能是由于应用了过滤器而被直接筛选,也可能是由于关系的传递,其他列被筛选而导致该列被间接筛选。因此,可以把数据模型中的筛选分为直接过滤和交叉过滤。 一,判断直接过滤和交叉过滤 直接过滤:当过滤器直接作用到表中的一列上时,该列是被直接过滤的。直接过滤是由外部的切片器和查询上下文中的
阅读全文