Power BI技巧之新手上路必备的 DAX 函数(下)
PowerBI技巧之Power BI中的DAX基础知识

DAX简介DAX(数据分析表达式)是一种公式表达式语言,可用于不同的BI和可视化工具。
DAX也称为函数语言,其中完整代码保存在函数内。
DAX编程公式包含两种数据类型:数字和其他。
数字包括 - 整数,货币和小数,而其他包括:字符串和二进制对象。
以下是DAX公式的示例,该公式使用函数计算表中的列。
DAX函数还可以包括其他函数,条件语句和值引用。
DAX功能在Power BI中,您可以使用不同的函数类型来分析数据,并创建新的列和度量。
它包括来自不同类别的功能,例如 -AggregateTextDateLogicalCountingInformationPower BI提供了一种查看所有功能列表的简便方法。
当您在公式栏中开始键入函数时,您可以看到以该字母开头的所有函数的列表。
Aggregate FunctionsDAX has a number of aggregate functions.MINMAXAverageSUMSUMXCounting FunctionsOther counting functions in DAX include −DISTINCTCOUNTCOUNTCOUNTACOUNTROWSCOUNTBLANKLogical FunctionsFollowing are the collection of Logical functions −ANDORNOTIFIFERRORTEXT FunctionsREPLACESEARCHUPPERFIXEDCONCATENATEDATE FunctionsDATEHOURWEEKDAYNOWEOMONTHINFORMATION FunctionsISBLANKISNUMBERISTEXTISNONTEXTISERRORDAX Calculation TypesIn Power BI, you can create two primary calculations using DAX −Calculated columnsCalculated measures导航到“建模”选项卡时,您可以在屏幕顶部看到“新建列”选项。
PowerBI技巧之DAX_ SUMMARIZECOLUMNS 基本原理与用法

本文讲解DAX函数SUMMARIZECOLUMNS基本的原理与用法前述国内外关于DAX函数的讲解已很多,但个别函数还是有必要拿出来再讲讲。
本文结合MarcoRusso关于SUMMARIZECOLUMNS函数的理论以及自身对其的研究,专门讲解该函数,并分为多个篇章。
本篇将讲解其基本原理与用法。
语法首先是函数的语法:SUMMARIZECOLUMNS(<groupBy_columnName>[, < groupBy_columnName >]…, [<filterTable>]…[, <name>, <expression>]…)其参数定义如下表所示:参数必要可重复描述groupBy_ColumnName✓✓用于分组的列filterTable×✓提供筛选上下文的表或表表达式name×✓添加的新列名称expression×✓新列的表达式基本原理与用法先讲一个此函数的典型特征:SUMMARIZECOLUMNS只有筛选上下文,没有行上下文。
比如对于如下数据模型:使用DAX新建表如下:SUMMARIZECOL_NONMEASURE =SUMMARIZECOLUMNS ('DimProductCategory'[ProductCategoryName],'DimDate'[FiscalMonth])它将根据这两列,单纯地CROSSJOIN成一个笛卡儿积表,也就是两个字段值所有可能的组合,如下:这就是因为SUMMARIZECOLUMNS本身并未指定主表,两个来自不同表的字段不能产生任何关联,而函数引擎也无法为其生成对应的行上下文。
一旦在函数中引入可选参数filterTable,并指定主表,公式就可以返回数据集中真实存在的非空组合,而非笛卡儿积, 这就是因为SUMMARIZECOLUMNS利用了’FactSales’的行上下文对结果集进行了筛选。
PowerBI中的高级计算DAX函数详解

PowerBI中的高级计算DAX函数详解在PowerBI中,DAX函数是一种用于数据分析和报表制作的强大工具。
它们可以用于计算、过滤、聚合和转换数据,以及执行各种复杂的计算任务。
本文将对PowerBI中一些常用的高级计算DAX函数进行详细解析,帮助读者更好地理解和应用这些函数。
一、SUMX函数SUMX函数是PowerBI中的一个高级计算函数,用于按照给定的表达式对表中的每个行进行求和。
它的语法如下:SUMX(表达式表,TABLE[列名])其中,表达式表是一个包含需要计算的表达式的表,TABLE是待求和的表,[列名]是需要求和的列名。
通过该函数,我们可以对表中的每个行进行计算,并将结果进行求和。
这对于一些需要对每个行进行计算后再求和的场景非常有用,比如计算每个产品销售量总和。
二、RANKX函数RANKX函数是用于计算给定表达式在给定表中的排名。
它的语法如下:RANKX(表,TABLE[列名],表达式,[排序顺序],[排名排序])其中,表是需要进行排名的表,TABLE是需要排名的表,[列名]是用于排序的列名,表达式是需要进行排名的表达式,[排序顺序]是指定排名是升序还是降序,[排名排序]是指定排名是否跳过相同排名的项。
通过该函数,我们可以方便地得到表中各项的排名。
三、FILTER函数FILTER函数用于根据给定的条件筛选表中的数据,并返回满足条件的行。
它的语法如下:FILTER(表,条件)其中,表是需要进行筛选的表,条件是一个布尔表达式,用于指定筛选条件。
通过该函数,我们可以快速地筛选出表中满足特定条件的行,便于进一步分析和展示。
四、CALCULATE函数CALCULATE函数是PowerBI中最常用的函数之一,用于对指定的表达式进行计算,并应用一个或多个筛选条件。
它的语法如下:CALCULATE(表达式,筛选条件1,筛选条件2,......)其中,表达式是需要计算的表达式,筛选条件是一个或多个布尔表达式,用于指定需要应用的筛选条件。
PowerBI技巧之POWER BI_DAX函数简介(转自微软官方)

什么是 DAX?DAX 是公式或表达式中可用来计算并返回一个或多个值的函数、运算符和常量的集合。
简而言之,DAX 可帮助您通过模型中已有的数据创建新信息。
为何 DAX 如此重要?创建工作簿并向其中导入一些数据的过程很轻松。
您甚至可以不使用任何 DAX 公式,即可创建显示重要信息的数据透视表或数据透视图。
但是,如果您需要跨多个产品类别和针对不同日期范围分析关键的销售数据,那该怎么办?或者,如果您需要组合来自不同数据源的若干表中的重要库存数据,又该怎么办?DAX 公式提供了这一功能以及许多其他重要功能。
了解如何创建有效的 DAX 公式将帮助您最大限度地利用您的数据。
当您获得所需的信息后,可以开始解决影响您的利润的实际业务问题。
这就是商业智能,DAX 将帮助您实现它。
先决条件您可能已经熟悉了如何在 Microsoft Excel 中创建公式。
此知识将有助于您了解 DAX,但即使您对 Excel 公式没有任何经验,此处介绍的概念也将帮助您开始创建 DAX 公式和立即解决实际的商业智能问题。
我们将焦点移到特定于了解 DAX 公式在计算中使用。
您应该已经熟悉这两种Power Pivot帮助中介绍的计算的列和度量值(也称为计算字段)的基本概念。
您也应该熟悉Power Pivot创作环境和工具的 Excel 中。
示例工作簿学习 DAX 的最佳方式是创建一些基本的公式,将其与某些实际数据结合使用并自行查看结果。
这些示例和任务使用 Contoso Sample DAX Formulas.xlsx 工作簿。
可以从/fwlink/?LinkID=237472&clcid=0x409下载此工作簿。
在将此工作簿下载到您的计算机上之后,请将其打开,然后打开Power Pivot 窗口。
现在开始!我们将围绕三个非常重要的基础概念设置 DAX 的框架:“语法”、“函数”和“上下文”。
当然,DAX 中还有其他重要概念,但了解这三个概念将为您增强 DAX 技能提供最佳基础。
PowerBI技巧之DAX的参数查询

PowerBI技巧之DAX的参数查询DAX(Data Analysis Expressions)是Power BI中的一种查询语言,用于计算和分析数据模型中的数据。
DAX提供了丰富的函数和运算符,可用于创建复杂的计算和筛选条件。
其中一个强大的功能是使用DAX进行参数查询。
参数查询允许用户在查询中使用变量,而不是固定的值,从而提供了更灵活、动态和可重用的查询选项。
在Power BI中使用DAX参数查询的步骤如下:````````````4. 调用查询:在Power BI的报表或仪表盘中,可以调用查询并提供参数的值。
这样,用户可以根据需要动态地更改查询的结果。
使用DAX参数查询的好处有很多。
首先,它提供了更灵活和动态的查询选项。
用户可以根据需要更改查询的参数,而不是每次都修改查询的代码。
其次,参数查询可以使查询更具可重用性。
用户可以定义一次查询,然后多次调用它,并提供不同的参数值,而不必每次都重新创建查询。
然而,使用DAX参数查询也有一些注意事项。
首先,需要确保定义的变量在查询中被正确使用和引用。
否则,查询可能无法正常工作。
其次,需要注意变量的作用域。
变量只在声明它们的查询中可见,不能跨查询使用。
此外,参数查询可能会对性能产生影响。
当查询使用多个参数时,可能需要进行额外的计算和过滤,从而导致查询的执行速度变慢。
综上所述,DAX的参数查询是Power BI中一个强大且实用的功能。
它提供了灵活、动态和可重用的查询选项,使查询更容易理解和维护。
然而,使用参数查询需要注意变量的定义和作用域,并且要注意对查询性能的影响。
掌握DAX参数查询可以提升Power BI的数据分析和报告功能,为用户提供更多的自定义和控制选项。
Power BI技巧之重点函数 _ 表函数与 DAX 查询

重点函数 | 表函数与 DAX 查询Hello,小伙伴们大家好,今天讲解下表函数与DAX查询。
在写DAX的时候,我们往往会通过筛选表来得到想要的数据,但是这个过程在公式中嵌套比较抽象,需要脑补相应的画面,而表函数可以帮助我们还原对应的数据,帮助理解。
除此之外,可以生成临时需要的表,不再需要excel或数据库导入,或者做一些类似SQL查询,方便查数,来看下具体示例:1.GENERATE与ROW组合使用当我需要模拟一张每日流水表时,这个组合可以帮我快速得到想要的表。
打开Power BI Desktop,选择建模下的新表选项卡:输入DAX公式:每日销售额表=GENERATE (CALENDAR ( DATE ( 2019, 1, 1 ), TODAY () ),ROW ( "销售额", RANDBETWEEN( 200, 1000) ))下面我们来看一下Power BI Desktop中的函数解释:有一张物理表(Excel导入Power BI Desktop)记录了以下信息,需要查看各市各类别的产品销售汇总情况,这时可以用SUMMARIZE或者ADDCOLUMNS。
SUMMARIZE的第一个参数是表,后面的参数是要汇总聚合的列,然后添加一列名称,是要汇总的值。
这里需要注意的是SUMMARIZE本身具有行列筛选组,度量会自动进行筛选转换,不需要CALCULATE显式转换。
如果是用ADDCOLUMNS就需要显式转换了。
表查询2 =ADDCOLUMNS (SUMMARIZE ( '物理表', '物理表'[类别], '物理表'[省] ),"销售额", CALCULATE ( SUM ( '物理表'[销售额]) ))ADDCOLUMNSADDCOLUMNS(<table>, <name>, <expression>[, <name>, <expression>]…)返回具有DAX表达式指定的新列的表。
powerbidax关系函数

powerbidax关系函数在Power BI中,DAX(Data Analysis Expressions)是一种用于创建自定义计算和衍生列的查询语言。
DAX包含一系列函数,用于建立表和列之间的关系。
这些函数使得在数据模型中执行各种计算和分析变得非常方便。
下面是一些常见的DAX关系函数:1.RELATED:通过关系返回相关表中的数据。
它常用于建立多个表之间的连接,尤其是在一个表中需要使用另一个表中的数据进行计算时。
例如,如果有两个表,一个是销售表,另一个是产品表,可以使用RELATED函数获取每个销售记录对应的产品名称:Sales[Product] = RELATED(Products[Product])2.RELATEDTABLE:通过关系返回相关表中的整个表格。
该函数返回一个由相关行组成的表格,并且可以在这个表格上进行进一步的分析。
例如,如果要获取与一些销售员有关的所有销售记录,可以使用RELATEDTABLE函数:SalespersonSales = RELATEDTABLE(Sales)3.CROSSFILTER:用于在两个表之间设置交叉过滤。
交叉过滤是指启用一个表对另一个表进行过滤,以便只显示相关的行。
例如,如果想要在订单表和产品表之间建立关系,并启用交叉过滤,可以使用CROSSFILTER函数:CROSSFILTER(Orders[ProductID], Products[ProductID], BOTH)ERELATIONSHIP:用于在两个表之间创建新的关系,覆盖已有的默认关系。
例如,如果有两个日期表,一个是订单日期表,另一个是物流日期表,可以使用USERELATIONSHIP函数创建一个新的关系,以便在报表中按照物流日期进行分析:USERELATIONSHIP(Orders[OrderDate], Shipping[ShippingDate])5.PATH:用于在层次结构中导航并返回从根节点到当前节点的路径。
powerbidax关系函数

powerbidax关系函数DAX(Data Analysis Expressions)是一种用于Power BI和其他Microsoft分析工具的表达式语言,它用于定义计算列、计算字段和创建自定义度量等数据计算任务。
DAX函数是DAX语言的基本构建块,关系函数是其中一类常用的函数,用于执行与数据模型中表之间关系有关的操作。
1.LOOKUPVALUE函数LOOKUPVALUE函数用于在一个关系中查找一些表中与指定条件匹配的值,并返回相应的结果。
语法如下:LOOKUPVALUE(<返回列>,<列1>,<条件1>,…,<列N>,<条件N>)例如,我们有一个销售表和一个产品表,两者之间建立了关系。
可以使用LOOKUPVALUE函数在销售表中查找产品表中的一些产品的数量。
具体的DAX表达式如下:LOOKUPVALUE(产品表[数量],产品表[产品名称],"产品A")2.RELATED函数RELATED函数用于在已建立关系的表之间传递过滤器,从而进行跨表计算。
它返回当前行在相关表中特定列的值。
语法如下:RELATED(<列名>)例如,我们有一个销售表和一个客户表,通过客户ID建立了关系。
可以使用RELATED函数获取销售表中每个销售记录对应的客户的名称。
具体的DAX表达式如下:RELATED(客户表[客户名称])3.CALCULATE函数CALCULATE函数是最常用的关系函数之一,它允许在已建立关系的表之间进行计算,并可以动态修改计算的上下文环境。
CALCULATE函数使用一个或多个过滤器表达式对计算进行修饰。
语法如下:CALCULATE(<表达式>,<过滤器表达式1>,…,<过滤器表达式N>)例如,我们有一个销售表和一个日期表,通过日期建立了关系。
可以使用CALCULATE函数计算其中一时间范围内的销售总额。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
新手上路必备的 DAX 函数(下)
各位读者大家好~今天为大家带来的是新手上路必备的DAX函数下篇。
上篇链接☞新手上路必备的DAX函数 (上)
让我们整理好思路继续学习吧!
三、统计函数
统计函数是最常用的函数,同时也是最复杂的函数,为数据分析提供非常强力的工具。
同时,在使用统计函数时,必须考虑到数据模型,表之间关系,数据重复等因素,一般都会搭配过滤函数实现数据的提取和分析。
1:求和函数
SUM(<列名>)
和
SUMX(<Table>,<expression>)
函数是两兄弟,SUM()函数在单个数据列上运行,没有行的概念;而SUMX()可以通过表达式来计算复杂的求和。
例如:总销售额SUMX = SUMX(销售表,销售表[数量] *销售表[单位价格])
2:计数函数
计算函数分为:COUNTX和COUNTAX,COUNTX只统计数值,忽略空值(blank),date,逻辑值或文本值;COUNTAX函数统计非空值(blank),包含数值,date,逻辑值或文本值。
COUNTX(<table>,<expression>)
COUNTAX(<table>,<expression>)
3:唯一值计数
统计列的唯一值计数,参数是表列,允许是任意数据类型,当找不到任何数据行时,返回BLANK,否则,统计唯一值的数量。
DISTINCTCOUNT(<column>)
4:分组聚合函数
DAX 中功能最强大的函数,对相互关联的Table按照特定的字段,分组聚合,由于分组列是唯一的,通过SUMMARIZE函数,可以获得多列的唯一值。
SUMMARIZE(<table>,<groupBy_columnName>[, <groupBy_columnName>]…[, <name>,<expression>]…)
示例:
对数据表 “交易明细” ,按照字段 ‘日历’[年] 和 ‘业态’[业态分类]分组,计算 SUM(‘交易明细’[交易金额])和 SUM(‘交易明细’[交易件数]) 。
SUMMARIZE(“交易明细”
, ‘日历’[年]
, 业态[业态分类]
, "销售额", SUM(“交易明细”[交易金额])
, "销售件数", SUM“交易明细”[交易件数])
)
分组聚合函数,能够利用关系,引用相关表的字段,也就是说,SUMMARIZE函数能够对有关系的表执行连接(Join)运算,计算笛卡尔乘积,对Join的结果集执行分组聚合。
分组聚合函数常用于创建新表。
四、文本函数
1 : 格式函数
按照指定的格式把值转换成文本
FORMAT(<value>,<format_string>)
2 : 空值
在DAX中,空值(Blank)和数据库的NULL值是相同的,通过函数ISBLANK(value)判断当前的字段值是否是空值。
BLANK( )
ISBLANK(<value>)
3 : 查找函数
在一段文本中查找字符串时,从左向右读取文本,查找函数返回第一次匹配的字符的序号,序号从1开始,依次递增。
SEARCH 函数不区分大小写,而FIND函数区分大小写。
FIND(<find_text>,<within_text>[, [<start_num>]
[, <NotFoundValue>]])
SEARCH(<find_text>,<within_text>[, [<start_num>]
[, <NotFoundValue>]])
参数 NotFoundValue 是可选的,当查找不到匹配的子串时,返回该参数的值,一般设置为0,-1或BLANK()。
4 : 拼接函数
把表中的数据按照指定的分隔符拼接成字符串
CONCATENATEX(<table>,
<expression>,[delimiter])
五、逻辑函数
1:逻辑判断函数
最常用的IF,使用方法和Excel相同。
IF(logical_test>,<value_if_true>,<value_if_false>)
2:布尔值函数
TRUE( )
FALSE( )
通常用于表示数据库的bit类型的值。
3 : 错误函数
如果表达式返回错误,返回value_if_error;如果表达式不返回错误,返回表达式的值。
IFERROR(expression, value_if_error)
错误函数等价于:
IFERROR(A,B) := IF(ISERROR(A), B, A)
常用的函数基本上就是这些,如何正确的理解表间关系与指标逻辑,是正确使用DAX函数的关键。
希望大家能够在PowerBI的学习路上少走弯路,精益求精!
下期再见!。