精华内容
下载资源
问答
  • PowerBI中常用的DAX函数

    千次阅读 2020-04-24 22:49:28
    DAX函数参考:https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2016/ee634396(v=sql.130)?redirectedfrom=MSDN DAX语法参考:https://docs.microsoft.com/zh-cn/dax/dax-syntax-reference DAX...

    DAX函数参考:https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2016/ee634396(v=sql.130)?redirectedfrom=MSDN

    DAX语法参考:https://docs.microsoft.com/zh-cn/dax/dax-syntax-reference

    DAX预算符参考:https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2016/ee634237%28v%3dsql.130%29

    DAX参数命名约定参考:https://docs.microsoft.com/zh-cn/dax/dax-parameter-naming-conventions

    DAX 拥有许多可用于成形、组织或分析数据的函数。 这些函数可以分为以下几个类别:

    聚合函数、计数函数、逻辑函数、信息函数、文本函数、日期函数

    1、聚合函数:DAX 提供多种聚合函数,包括以下常用函数:

    • SUM
    • AVERAGE
    • MIN
    • MAX
    • SUMX(以及其他 X 函数)

    这些函数仅适用于数字列,并通常一次只能聚合一列,但是以 X 结尾的特殊聚合函数(例如 SUMX 则可同时处理多列。 这些函数循环访问表,并为每一行计算表达式

    2、计数函数:DAX 中经常使用的计数函数包括:

    • COUNT
    • COUNTA
    • COUNTBLANK
    • COUNTROWS
    • DISTINCTCOUNT

    这些函数用来计数不同的元素,如非重复值、非空值和表行。

    3、逻辑函数

    DAX 中的逻辑函数包括:

    • AND
    • OR
    • NOT
    • IF
    • IFERROR

    这些特殊函数还可以用运算符 表达。 例如,在 DAX 公式中 AND 可以输入为(替换为) && 。

    如果公式中存在两个以上条件,则可以使用运算符(如 && ),但在其他情况最好使用函数名本身(如 AND),以增强 DAX 代码可读性。

    4、信息函数

    DAX 中的信息函数包括:

    • ISBLANK
    • ISNUMBER
    • ISTEXT
    • ISNONTEXT
    • ISERROR

    尽管这些函数在具体情况下有用,但提前知道列的数据类型,而不依赖这些函数来提供数据类型仍很有价值。

    DAX 使用 MAX 和 MIN 函数来聚合 和比较 值。

    5、文本函数

    DAX 中的文本函数包括:

    • CONCATENTATE
    • REPLACE
    • SEARCH
    • UPPER
    • FIXED

    这些文本函数与同名的 Excel 函数工作方式类似,因此,如果熟悉 Excel 如何处理文本函数,你就已经领先一步了。 如果不熟悉,则可以一直在 Power BI 上试用这些函数,以了解它们的详细行为方式。

    6、日期函数

    DAX 包含以下日期函数:

    • DATE
    • HOUR
    • NOW
    • EOMONTH
    • WEEKDAY

    尽管这些函数对于从日期 值中计算和提取信息很有用,但它们并不适用于使用日期表的时间智能。

    DAX 表函数

    DAX 提供一套丰富的函数,包括:

    • FILTER
    • ALL
    • VALUES
    • DISTINCT
    • RELATEDTABLE

     

    展开全文
  • 有关 SUMMARIZE 函数的简单查询用法

    千次阅读 2020-03-24 20:17:30
    今天给大家分享有关SUMMARIZE函数的简单查询用法。 我们都知道,在工作中会有各种各样的统计表格,比如销售表、业绩表、工资表、员工表等等,做这些统计有助于进行更好的人员配备和管理,使工作井然有序。 那么...

    今天给大家分享有关SUMMARIZE函数的简单查询用法。

    我们都知道,在工作中会有各种各样的统计表格,比如销售表、业绩表、工资表、员工表等等,做这些统计有助于进行更好的人员配备和管理,使工作井然有序。

    那么问题也来了,要是数据量少的话还好,如果数据量太大,定位到要你要找的信息就需要消耗一定的时间。怎么样才能快速找到想要看的信息呢?让我们一起走近SUMMARIZE函数。

    SUMMARIZE函数

    SUMMARIZE(<table>,<groupBy_columnName>[,<groupBy_columnName>]…
    [, <name>, <expression>]…)
    

    第一个参数是表,第二个参数是表中的某一列,列可以进行叠加。

    1 用SUMMARIZE函数提取不同的维度列

    以业绩表为例,首先我们需要一张业绩表。
    在Excel里面新建一张2018年的业绩表,里面有员工姓名、编号、2018年每个月的销售额、2018年每个季度的销售额、年度总销售额以及奖金,如下图所示(注:作为演示,里面的数据均为随机生成的虚拟数据):

    file

    建好业绩表之后,我们就可以把它导入到 Power BI中,如图所示:

    file

    把业绩表导入Power BI 之后,我们就可以使用SUMMARIZE函数查找我们需要的列了,比如我们想找员工姓名和他们对应的年度销售额累计值,如图所示写法:

    file

    得到结果如下图:

    file

    如果我们想要看更多的列,直接在后面叠加相应的条件即可,如图:

    file

    2 SUMMARIZE结合CALCULATETABLE使用

    上面我们已经介绍过可以使用SUMMARIZE函数快速找到我们想要看到的某一列或几列,但有时候,我们想要看的更具体更详细,比如我们想要看某一个人的业绩,这个时候,就要用到CALCULATETABLE函数了。
    比如,还是这个业绩表,我们想要看姓名为“陈林”的员工“2018年”的“年度销售额总计”和“奖金”,写法和结果如图所示:

    file

    只需一个简单的嵌套,这样,我们想要的结果就出来了,怎么样,是不是很简单,快动手做起来吧。
    以上就是SUMMARIZE函数比较简单的用法,关于这个函数还有很多其他重要的用法,大家可以深入去学习一下~
    file


    ** PowerPivot工坊原创文章,转载请注明出处!*


    如果您想深入学习微软Power BI,欢迎登录网易云课堂试听学习我们的“从Excel到Power BI数据分析可视化”系列课程。或者关注我们的公众号(PowerPivot工坊)后猛戳”在线学习”。


    长按下方二维码关注“Power Pivot工坊”获取更多微软Power BI、PowerPivot相关文章、资讯,欢迎小伙伴儿们转发分享~

    展开全文
  • 从 Power BI Desktop 的 2018 年 10 月版本开始,公式编辑器(通常称为 DAX 编辑器)就包括了强大的编辑和快捷方式增强功能,使创作和编辑公式更容易且更直观。工坊为几个常用快捷键制作了知识卡片,方便大家查看: ...


    从 Power BI Desktop 的 2018 年 10 月版本开始,公式编辑器(通常称为 DAX 编辑器)就包括了强大的编辑和快捷方式增强功能,使创作和编辑公式更容易且更直观。工坊为几个常用快捷键制作了知识卡片,方便大家查看:

    file

    接下来将对这些快捷键一一进行介绍,来看看你知道几个吧!

    换行缩进: Shift + Enter

    换行缩进应该是书写公式时最常用的快捷键了。保持良好的DAX书写习惯,合理缩进,做一名合格的PBIer。

    换行后不缩进: Alt + Enter

    类比换行缩进,当不需要缩进时使用Alt + Enter。

    选择当前行: Ctrl + I

    光标可以停在当前行的任意位置。搭配复制剪切粘贴效果更佳。

    在上方插入行:Ctrl + Shift + Enter

    在当前行的上方插入空行,常用于补写注释或参数。

    跳转到匹配的括号:Ctrl + Shift + \

    在繁杂的公式里,可以使用此快捷键跳转检查参数是否遗漏,保持公式完整性。

    删除行: Ctrl + Shift + K

    光标位置同样没有限制,一次性删除该行。
    注:如果电脑上安装了搜狗输入法,此快捷键可能与搜狗输入法的软键盘存在冲突。

    缩进/突出行: Ctrl + ]/[

    在书写度量值时随时调整缩进,做一名合格的PBIer * 2!

    添加注释/取消注释: Ctrl + /

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tlzyPhLl-1592472970371)(http://p1.pstatp.com/large/pgc-image/817800430828478f9a82038f9214e94b)]

    除了快捷键,直接添加注释,可以输入“//”或者“–”。

    批量查找匹配项: Ctrl + F2 / Ctrl+ Shift + L

    选中要替换的内容,快捷键一键锁定全部匹配项,然后就可以批量更改或删除了。在修改度量值时,你是否体会到那一刻的丝滑?

    除了上面分享的这些,DAX编辑器以及PBI Desktop的快捷键还有很多,可以使用
    Shift+ ? 调出快捷方式列表
    进行查看。
    希望工坊的小伙伴也把你最常用的快捷键留在评论当中,大家一起流畅写DAX~

    • PowerPivot工坊原创文章,转载请注明出处!

    如果您想深入学习微软Power BI,欢迎登录网易云课堂试听学习我们的“从Excel到Power BI数据分析可视化”系列课程。或者关注我们的公众号(PowerPivot工坊)后猛戳”在线学习”。


    长按下方二维码关注“Power Pivot工坊”获取更多微软Power BI、PowerPivot相关文章、资讯,欢迎小伙伴儿们转发分享~

    展开全文
  • POWER BI:DAX函数简介(转自微软官方)

    万次阅读 2019-01-15 09:12:48
    DAX 是公式或表达式中可用来计算并返回一个或多个值的函数、运算符和常量的集合。简而言之,DAX 可帮助您通过模型中已有的数据创建新信息。 为何 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 工作簿。可以从 http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409 下载此工作簿。在将此工作簿下载到您的计算机上之后,请将其打开,然后打开 Power Pivot 窗口。

    现在开始!

    我们将围绕三个非常重要的基础概念设置 DAX 的框架:“语法”、“函数”和“上下文”。当然,DAX 中还有其他重要概念,但了解这三个概念将为您增强 DAX 技能提供最佳基础。

    语法
    在创建您自己的公式之前,让我们先来了解 DAX 公式的语法。语法包括组成公式的不同元素,或者更简单地说,就是如何编写公式。例如,我们来看一个用于为 FactSales 表中名为 Margin 的计算列中的每一行创建新数据(值)的简单 DAX 公式(公式文本颜色仅用于阐述):

    计算列公式
    在这里插入图片描述
    此公式的语法包括以下元素:

    等号运算符 (=) 指示公式的开头,当计算此公式时,它将返回结果或值。用于计算值的所有公式都将以等号开头。

    引用列 [SalesAmount] 包含我们要从中减去某个值的值。公式中的列引用始终由方括号 [] 括起来。与引用单元的 Excel 公式不同,DAX 公式始终引用列。

    减 (-) 数学运算符。

    引用列 [TotalCost] 包含我们要从 [SalesAmount] 列的值中减去的值。

    在尝试了解如何解读 DAX 公式时,将其中每个元素分解为您日常思考和说话所用的语言通常会很有用。例如,您可按如下方式解读此公式:

    在 FactSales 表中,对于 Margin 计算列中的每一行,通过从 [SalesAmount] 列的值中减去 (-) [TotalCost] 列中的值计算出 (=) 一个值。

    我们来看一下另一种类型的公式,用于度量值中的一个:
    在这里插入图片描述
    计算列公式

    此公式包括以下语法元素:

    Sum of Sales Amount 度量值名称。度量值的公式可以包括度量值名后, 跟冒号后, 跟计算公式。

    等号运算符 (=) 指示计算公式的开头。计算后,它将返回结果。

    SUM 函数累加 [SalesAmount] 列中的所有数字。稍后您将了解有关函数的详细信息。

    括号 () 括起一个或多个参数。所有函数都要求至少一个参数。一个参数向函数传递一个值。

    引用表 FactSales。

    FactSales 表中的引用列 [SalesAmount]。通过此参数,Sum 函数可了解对哪一列累加以生成 SUM。

    可按如下方式解读此公式:

    的 度量值 中名为 Sum of Sales Amount,计算 (=) 值的总和 [ SalesAmount ] 列中的 FactSales 表。

    当放入拖放区域的数据透视表字段列表中的值时,此度量值计算,并返回定义数据透视表,每个单元格的值,如移动电话在美国。

    请注意,此公式与前面我们用于 Margin 计算列的公式相比存在一些不同点。尤其是,我们引入了一个“函数”:SUM。函数是预先编写的公式,旨在更轻松地对数字、日期、时间、文本等执行复杂的计算和操控。稍后您将了解有关函数的详细信息。

    Margin 计算列与早期版本,您将看到 [SalesAmount] 列的前面加列所属的表 FactSales。这就是完全限定的列名称,因为它包含的表名称前面的列名称。在同一个表中引用的列不需要的表名称包含在公式中。这可能会使长公式引用多个列更短更容易阅读。但是,很好的做法始终包含度量值公式,即使是在同一个表中的表名称。

    注意: 如果表名包含空格、保留关键字或不允许使用的字符,则必须将表名放在单引号中。如果名称包含 ANSI 字母数字字符范围之外的任何字符,还必须将表名称用引号引起来,而不管您的区域设置是否支持该字符集。

    您的公式务必具有正确的语法。在大多数情况下,如果语法不正确,就会返回错误。在其他情况下,语法可能正确,但返回的值可能不是您所期望的。Power Pivot(和 SQL Server Data Tools)包含 IntelliSense;此功能用于帮助您选择正确的元素来创建语法正确的公式。

    我们来创建一个简单的公式。此任务将帮助您进一步了解公式语法,以及编辑栏中的 IntelliSense 功能如何为您提供帮助。

    任务:为计算列创建简单公式

    1. 如果您未处于 Power Pivot 窗口中,则在 Excel 中的 Power Pivot 功能区上,单击“Power Pivot
      窗口”。
    2. 在 Power Pivot 窗口中,单击 FactSales 表(选项卡)。
    3. 滚动到最右侧的列,然后在列标题中单击“添加列”。
    4. 单击沿模型设计器窗口顶部的编辑栏。

    在这里插入图片描述
    PowerPivot 公式栏

    您的光标现在将出现在编辑栏中。编辑栏是您可以为计算列或计算字段键入公式的位置。

    我们花点时间来看一下位于编辑栏左侧的三个按钮。
    在这里插入图片描述

    当光标在编辑栏中处于活动状态时,这三个按钮将变为活动状态。最左侧的按钮 X 只是一个取消按钮。单击此按钮。您的光标不再出现在编辑栏中,取消按钮和对勾标记按钮不再出现。继续,然后再次单击编辑栏。取消按钮和对勾标记按钮现在将再次出现。这意味着您已准备好,可以开始输入公式了。

    对勾标记按钮是检查公式按钮。在您输入了公式后,才会执行此命令。我们稍后将回过头来讨论此按钮。

    单击Fx按钮。您将看到,将出现一个新的对话框;插入函数对话框。插入函数对话框中的最简单的方法若要开始输入 DAX 公式。我们创建一个度量值略更高版本,但现在,您不需要将函数添加到您的计算的列公式时,我们将向公式添加函数。继续操作并关闭插入函数对话框。

    在编辑栏中,键入等号 =,然后键入左方括号 [。此时将显示一个小的窗口,其中包含 FactSales 表中的所有列。这就是 IntelliSense 发挥了作用。

    由于计算列始终是在您所在的活动表中创建的,因此列名称前面不需要表名称。继续并向下滚动,然后双击 [SalesQuantity]。也可以滚动到所需的列名,然后按下 Tab 键。

    光标现在位于 [SalesQuantity] 的右侧且处于活动状态。

    键入一个空格,然后键入减号运算符 -(负号),接着键入另一个空格。

    现在,请键入另一个左方括号 [。此时,选择 [ReturnQuantity] 列,然后按 Enter。

    如果出现错误,请仔细检查您的语法。如果需要,则将其与前面介绍的 Margin 计算列中的公式进行比较。

    在按 Enter 以完成公式之后,“正在计算”将显示在 Power Pivot 窗口底部的状态栏中。此过程非常快,即使您刚刚为超过三百万行计算了新值,也会很快。

    右键单击列标题并将此列重命名为 NetSales。

    搞定!您刚刚创建了一个简单但功能非常强大的 DAX 公式。对于 FactSales 表中的“每一”行,NetSales 公式都将通过从 [SalesQuantity] 列中的值减去 [ReturnQuantity] 中的值来计算一个值。请注意,我们刚刚说了“对于每一行”。这就引入了 DAX 中另一个非常重要的概念:“行上下文”。稍后您将了解有关行上下文的详细信息。

    了解当在 DAX 公式中键入运算符真正重要内容是您正在使用的参数中的数据类型。例如,如果您要键入下面的公式,= 1 和 2,返回的值将为"12"的文本值。这是因为与号 (&) 运算符适用于文本串联运算符。DAX 解释阅读此公式: 通过学习值为文本的 1 计算结果,并为文本添加值 2。现在,如果您在此处键入 = 1 + 2,DAX 读取为此公式: 通过采用数值 1 并添加 2 的数值计算结果。当然,则结果为"3",数字值。DAX 计算结果值,具体取决于在公式中,不基于参数中使用的列的数据类型的运算符。DAX 中的数据类型是非常重要,但此快速启动中的范围之外。若要了解有关数据类型和 DAX 公式中的运算符的详细信息,请参阅 DAX 引用 (http://go.microsoft.com/fwlink/?LinkId=239769 问答 = 0x409) 联机丛书中。

    我们来尝试另一个。此时间,键入公式和使用智能感知,您将创建一个度量值。不要担心太多 if 完全不了解公式。下面是重要的是,了解如何创建在正确的语法一起使用的几个元素的公式。

    任务: 创建一个度量值的公式

    • 在 FactSales 表中,单击“计算区域”中的任意空单元格。这是位于 Power Pivot 窗口中某个表正下方的空单元格区域。

    在这里插入图片描述
    PowerPivot 计算区域

    • 在编辑栏中,键入名称 Previous Quarter Sales:

    • 键入一个等号 = 以开始计算公式。

    • 键入前几个字母 CAL,然后双击要使用的函数。在此公式中,您要使用 CALCULATE 函数。

    • 键入左括号 ( 以开始键入要传递到 CALCULATE 函数的参数。

      注意,在键入左括号之后,IntelliSense 将显示 CALCULATE 函数所需的参数。稍后您将了解参数。
      
    • 键入 FactSales 表的前几个字母,然后在下拉列表中双击 FactSales[Sales]。

    • 键入一个逗号 (,) 以指定第一个筛选器,接着键入 PRE,然后双击 PREVIOUSQUARTER 函数。在选择 PREVIOUSQUARTER 函数之后,将出现另一个左括号,表明需要另一参数;此时是用于 PREVIOUSQUARTER 函数的参数。

    • 键入前几个字母 Dim,然后双击 DimDate[DateKey]。

    • 通过键入两个右括号 )),结束传递给 PREVIOUSQUARTER 函数和 CALCULATE 函数的参数。

    公式现在应如下所示:

    Previous Quarter Sales:=CALCULATE(FactSales[Sales], PREVIOUSQUARTER(DimDate[DateKey]))

    • 单击编辑栏中的检查公式按钮以验证此公式。如果您收到错误,请验证语法的每个元素。

    你做到了!您刚创建使用 DAX,并不在的简单一个度量值。此公式将执行的操作是计算上一季度,具体取决于数据透视表或数据透视图中应用的筛选器总销售额。

    您刚刚见识了 DAX 公式的几个重要环节。首先,该公式包含两个函数。请注意,PREVIOUSQUARTER 函数将作为一个传递到 CALCULATE 函数的参数嵌套在后者中。DAX 公式可以包含多达 64 个嵌套函数。一个公式不太可能包含如此多的嵌套函数。实际上,此类公式很难创建和调试,因此,它可能不会非常快。

    在此公式中,您还使用了筛选器。筛选器可缩小将计算的内容范围。在这种情况下,您选择了一个筛选器作为参数,这实际上是另一个函数。稍后您将了解有关筛选器的详细信息。

    最后,您使用了 CALCULATE 函数。这是 DAX 中功能最强大的函数之一。当您创作数据模型并创建更复杂的公式时,可能需要多次使用此函数。对于 CALCULATE 函数的讨论超出了本快速入门的范围,但随着您对 DAX 的知识的增长,应特别留意此函数。

    > 注意: 通常,要在 DAX 公式中使用时间智能函数,必须通过使用“标记为日期表”对话框指定一个唯一日期列。在 Contoso DAX
    > Formula Samples.xlsx 工作簿中,选择 DimDate 表中的 DateKey 列作为唯一的数据列。
    
    额外知识
    您可能会问: 是什么可以创建的最简单的 DAX 公式?嗯,问题的答案是未与公式。然后,这正是中度量值使用标准聚合函数可以执行哪些操作。几乎任何数据模型需要筛选和聚合数据计算。例如,您刚才 Sum of Sales Amount 度量值中的 SUM 函数用于将特定列中的所有数字相加。DAX 中包含多个聚合值以及其他功能。您可以自动创建通过使用自动求和功能使用标准聚合公式。
    

    函数

    函数是通过使用采用特定顺序或结构的特定值(称为参数)来执行计算的预定义公式。参数可以是其他函数、另一个公式、列引用、数字、文本、逻辑值(例如 TRUE 或 FALSE)或常量。

    DAX 包括以下函数“类别”:日期和时间、信息、逻辑、数学、统计、文本以及时间智能函数。如果您熟悉 Excel 公式中的函数,则会发现 DAX 中的许多函数很相似;但 DAX 公式在以下方面很独特:

    • DAX 函数始终引用完整的列或表。如果您想要仅使用表或列中的特定值,则可以向公式中添加筛选器。
    • 如果需要逐行自定义计算,DAX可提供让您使用当前行值或相关值作为一种参数来执行计算(因上下文而异)的函数。稍后您将了解有关上下文的详细信息。
    • DAX包含的许多函数都将返回表,而不是返回值。表不会显示,而是用于向其他函数提供输入。例如,您可以检索一个表,然后对该表中的非重复值进行计数,或者计算多个已筛选表或列的动态总和。
    • DAX 包含多种“时间智能”函数。利用这些函数,您可以定义或选择日期范围,并基于它们执行动态计算。例如,您可以比较并行时段内的总和。

    有时很难知道哪些功能可能需要在公式中使用。Power Pivot和表格模型设计器中 SQL Server Data Tools,包括插入函数功能,一个对话框,可帮助您按类别选择函数,并提供有关每个函数的简短说明。
    在这里插入图片描述
    插入函数

    RELATED 函数。RELATED 函数返回另一个表中的值。当您目前所在的表与包含您要获取的值的表之间存在关系时,您可以使用 RELATED。
    正如你所看到的,DAX 中的函数可帮助您创建功能非常强大的公式。我们实际上只探讨了函数的基本知识。随着您的 DAX 技能得到改进,您将使用许多不同函数创建公式。了解有关所有 DAX 函数的详细信息的最佳位置之一是数据分析表达式 (DAX) 参考。

    上下文

    上下文是要了解的最重要的 DAX 概念之一。DAX 中有两种类型的上下文:“行上下文”和“筛选上下文”。我们先了解行上下文。

    行上下文
    行上下文最容易被视作当前行。例如,还记得学习语法时在前面介绍的 Margin 计算列吗?公式 =[SalesAmount] - [TotalCost] 针对表中的每一行计算 Margin 列中的一个值。每行的值可通过同一行的其他两列 [SalesAmount] 和 [TotalCost] 中的值进行计算得出。DAX 可以计算 Margin 列中每行的值,因为它具有上下文:对于每一行,它将采用 [TotalCost] 列中的值,并从 [SalesAmount] 列的值中减去前面的值。

    在下面所示的所选单元中,当前行中的值 $49.54 的计算方式为:从 [SalesAmount] 列的值 $101.08 中减去 [TotalCost] 列中的值 $51.54。
    在这里插入图片描述
    PowerPivot 中的行上下文

    只需行上下文不适用于计算列。行上下文也适用只要公式中包含应用了筛选器来标识表中的单个行的函数。该函数将本身应用每行的表的筛选行上下文。这种类型的行上下文最常适用范围度量值。

    筛选上下文

    筛选上下文理解起来比行上下文要更难一些。您可以非常轻松地将筛选上下文视为:在确定结果或值的计算中应用的一个或多个筛选器。

    筛选上下文不能替代行上下文;而是在应用行上下文之外应用。例如,要进一步缩小计算中要包含的值的范围,您可以应用一个筛选上下文,该上下文不仅指定行上下文,也指定该行上下文中的一个特定值(筛选器)。

    可以在数据透视表中轻松地查看筛选上下文。例如,当您将 TotalCost 添加到“值”区域,然后将 Year 和 Region 添加到行或列时,您就定义了一个筛选上下文,此上下文将基于给定的年份和区域选择数据子集。

    为什么是筛选上下文到 DAX 如此重要?因为虽然通过在数据透视表中添加列和行标签和切片器可以很容易应用筛选上下文,筛选上下文也可应用在 DAX 公式中定义筛选器使用函数,例如相关、 筛选器、 计算,通过关系,并由其他度量值和列中。例如,我们来看一下以下公式中名为 StoreSales 度量值:
    在这里插入图片描述

    很明显,此公式比您前面看到的一些其他公式更复杂。但是,为了更好地理解此公式,我们可以将其分解,这与对待其他公式的方式很相似。

    此公式包括以下语法元素:

    • 度量值名称 StoreSales 后, 跟冒号:。
    • 等号运算符 (=) 指示公式的开头。
    • CALCULATE 函数在由指定筛选器修改的上下文中计算表达式(作为参数)。
    • 括号 () 括起一个或多个参数。
    • 在同一个表表达式作为度量 [Sales]。销售额度量具有公式: = SUM(FactSales[SalesAmount])。
    • 逗号 (,) 分隔每个筛选器。
    • 引用列和特定值 DimChannel[ChannelName] =”Store”,作为一个筛选器。

    此公式将确保仅计算的销售值由销售额度量作为一个筛选器是仅对具有值"Store",作为一个筛选器 DimChannel [ChannelName] 列中的行。

    正如您所想像的,可以在公式中定义筛选上下文意味着巨大且强大的功能。能够仅引用相关表中的特定值只是这样的示例之一。如果您未能立即完全了解上下文,请不要担心。当您创建自己的公式时,您将更好地了解上下文以及它在 DAX 中如此重要的原因。

    展开全文
  • Power BI中的DAX基础知识

    千次阅读 2019-02-19 13:05:52
    DAX也称为函数语言,其中完整代码保存在函数内。 DAX编程公式包含两种数据类型:数字和其他。 数字包括 - 整数,货币和小数,而其他包括:字符串和二进制对象。 以下是DAX公式的示例,该公式使用函数计算表中的列...
  • DAX表达式中包含时间关系(Time Intelligence)相关的函数,用于对日期维度进行累加、同比和环比等分析。PowerBI能够创建关系,通过过滤器来对影响计算的上下文。 一,时间关系 DAX表达式有两种方式计算累加和,...
  • powerBI DAX 快捷键

    2020-02-28 17:05:41
    换加粗样式行后缩进 ------------快捷键:Shift + Enter 换行后不缩进 ------------快捷键:Alt + Enter 缩进 ------------向右缩进:Ctrl + ] ------------向左缩进:Ctrl + [ 选择当前行 ------------Ctrl + I ...
  • Power BI DAX语言简介1 - 基本构成

    万次阅读 2018-01-09 10:35:30
    开篇介绍过,由于DAX是针对表单和列进行计算的,无法直接对特点某些单元格内容进行计算,因此需要引用筛选器函数现将需要计算的单元格通过筛选器过滤出来,之后再应用其他类型的函数进行计算。 – 信息函数 ...
  • 关于 Power BI 中的 DAX 错误提示

    千次阅读 2020-04-08 19:43:12
    本文翻译自国际Power BI大师Marco Russo的文章——《DAX error messages in Power BI》,该文介绍了用户在Power BI中定义DAX表达式时常见的报错提示以及其相应的解决方法。 包含语法错误的DAX表达式会停止执行计算, ...
  • Power BI DAX语言简介2 - 使用场景

    千次阅读 2018-01-16 15:04:48
    为了方便用户使用,当输入某个字母时,Power BI会自动查找以此字母开头的有关函数供用户使用,当选中某一个函数时,Power BI还会给出相应帮助,提示该函数的功能以及所需要输入的参数。 a. 列出所有包含Count...

空空如也

空空如也

1
收藏数 10
精华内容 4
关键字:

powerbidax函数