首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用来自另一个过滤表的多个列的条件计算sum DAX PowerBi

基础概念

DAX(Data Analysis Expressions)是Power BI中用于数据分析和建模的公式语言。它类似于Excel中的公式,但功能更强大,适用于复杂的分析需求。DAX中的SUM函数用于计算数值列的总和。

相关优势

  1. 灵活性:DAX允许你创建复杂的计算,如条件求和、时间智能计算等。
  2. 性能:DAX引擎经过优化,能够高效处理大量数据。
  3. 易用性:DAX语法类似于Excel公式,易于学习和使用。

类型

在DAX中,有多种类型的函数可以用于计算,包括但不限于:

  • 聚合函数:如SUM、AVERAGE、COUNT等。
  • 计算列:在数据模型中添加新的列,基于现有列的值进行计算。
  • 度量值:在报表视图中动态计算的值,通常用于可视化。

应用场景

当你需要根据多个条件对数据进行汇总时,DAX非常有用。例如,你可能有一个销售数据表和一个产品分类表,你想计算每个产品类别的总销售额。

示例问题及解决方案

假设你有两个表:SalesProductCategoriesSales 表包含销售数据,ProductCategories 表包含产品分类信息。你想计算每个产品类别的总销售额。

问题

如何使用DAX在Power BI中实现这一目标?

解决方案

  1. 创建关系:首先,在Power BI中创建Sales表和ProductCategories表之间的关系。假设Sales表有一个CategoryID列,ProductCategories表有一个ID列。
  2. 编写DAX公式:使用SUM和FILTER函数来计算每个产品类别的总销售额。
代码语言:txt
复制
Total Sales per Category = 
SUMX(
    VALUES(ProductCategories[CategoryName]),
    CALCULATE(
        SUM(Sales[SalesAmount]),
        ProductCategories[CategoryName] = EARLIER(ProductCategories[CategoryName])
    )
)

解释

  • VALUES(ProductCategories[CategoryName]):获取所有唯一的产品类别名称。
  • CALCULATE:用于根据条件计算值。
  • SUM(Sales[SalesAmount]):计算销售额的总和。
  • ProductCategories[CategoryName] = EARLIER(ProductCategories[CategoryName]):确保只计算当前类别的销售额。

参考链接

通过这种方式,你可以轻松地在Power BI中使用DAX进行复杂的数据计算和分析。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【大招预热】—— DAX优化20招!!!

但是,Power BI自动过滤所有带有空白值行。当从具有大量数据中查看结果时,这会限制结果集并防止性能下降。 如果更换了空白,则Power BI不会过滤不需要行,从而对性能产生负面影响。...使用变量而不是在IF分支内重复测量 由于度量是连续计算,因此[Total Rows]表达式将计算两次:首先用于条件检查, 然后用于真实条件表达式。...KEEPFILTER函数不会覆盖现有的过滤器集。而是使用两者中存在交集,从而保持当前上下文。当您想要在执行计算时维护切片器应用任何过滤器或在报告级别上使用过滤器。...使用FILTER(all(ColumnName))代替FILTER(values())或FILTER(T) bid sqlbi 若要计算独立于应用于任何过滤度量,请将All(ColumnName...它不考虑任何中包含空白。 公式意图更加清晰和自我描述。 将SEARCH()与最后一个参数一起使用 如果未找到搜索字符串,则SEARCH()DAX函数接受最后一个参数作为查询必须 返回值。

4K31

PowerBI 2018年11月更新 支持PowerBI工程式开发

并粘贴到另一个 PBIX 文件中。其原理如下: 将视觉对象从A文件复制粘贴至B文件,如果B文件具有同样名称和度量值则使用,否则则报错,并提供修复错失: ?...参考:PowerBI 实现中国式复杂报表设计 另一个巨大缺陷是:无法针对某些单独设置颜色。 在有了按字段设置颜色后,看看优化后结果: ?...度量值由全局统一管理;尽量避免计算,度量值优先;在需要使用计算时候,可以在PQ阶段完成;在需要辅助完成报表计算时候使用虚拟关系(TREATAS)。...值得一提是:PowerBI任何视觉对象都可以转为数据汇总表结构,而这个数据汇总表来自不同字段和度量值组合运算效果,这个其实是一个汇总表(对应于Tableau中计算),由于PowerBI并不提供计算...,而作为补偿,PowerBI直接提供DAX进行全局(跨越所有数据,跨越所有粒度)计算,因此也就消除了计算和行级别表达式概念。

4.1K20
  • 大数据分析工具Power BI(七):DAX使用场景及常用函数

    具体操作步骤如下: 1、在"度量值"中新建度量值"总营收金额" 度量值DAX公式为:总营收金额 = SUM('2022年点播订单'[套餐价格])-SUM('2022年点播订单'[优惠金额]) 注意在...CALCULATE函数是DAX函数中最重要和常用函数,主要功能是根据指定条件对数据进行筛选然后按照指定表达式进行计算,找出满足条件数据,其用法如下: CALCULATE(表达式,[筛选器1],[...复制 以上"表达式"参数是指对筛选后数据进行计算表达式,可以执行各种聚合计算,后续参数是一系列筛选器,筛选器也可以为空,多个筛选器之间用逗号分割,多个筛选器都满足数据集合才会被指定表达式进行计算...以上需求我们可以使用TOTALYTD进行统计,TOTALYTD用法如下: TOTALYTD(表达式,日期,[筛选器],[截止日期]) 复制 表达式参数代表统计表达式,日期参数指定日期时间,筛选器参数可以过滤数据...度量值DAX公式为:当月工资 = SUM('2021~2022年工资'[工资]) 在"度量值"中创建新度量值"去年同期月份工资" 度量值DAX公式为:去年同期月份工资 = CALCULATE('

    9.7K42

    一步一步教你制作销售业绩分析报告

    小结:Excel方式处理日期最大优势在于可以随时进行改动,也可以添加,方便在报表中使用数据。   ...2、使用DAX函数创建日期   DAX函数创建日期方式网上有很多种,这里我就介绍最简单两种方式:CALENDARTAUTO和CALENDAR函数构建日期。   ...小结:使用DAX函数创建日期最大好处不用外置表格,不用担心文件路径发生改变。这里只是展现了PowerBI DAX函数创建日期两种方式。...设置完成后我们就完成了所有图表工作,接下来进行排版后效果图 四、总结 本文中展现报告看似简单,但却使用了了PowerBI时间智能函数相关核心技术,主要内容有如下: 1、使用Excel表格、DAX...函数以及M函数创建日期 2、使用时间智能函数DATEADD,TOTALYTD与万能函数CALCULATE进行计算指标 3、使用应用商店图表控件进行多种类型KPI展现,并介绍了两种处理方式 注意:PowerBI

    5.3K21

    学习CALCULATE函数(一)

    [1240] 有位大佬曾经告诉过我,如果你深入理解了CALCULATE,那么你就相当于理解了DAX函数基础,因为它是DAX函数中最灵活多变,也是适应性最强函数之一。...第一参数是计算表达式,可以进行各种聚合运算 从第二参开始,是一系列筛选条件,可以为空,如果是多个筛选条件的话,用半角逗号分隔开 返回结果为筛选出所有筛选条件交集,并根据第一参表达式计算出相对应结果...[strip] 编写如下代码: 数量= SUM(''[])//这里我替换成了示例文件 如下图: [1240] [1240] 呈现结果如图,很明显,我们想要是分别计算销售和退货,这样才符合我们对销售数量计算...VAR是将变量转换为常量,方便根据外部筛选计算,同时可以节省代码空间;SQ在这里公式意义是聚合在中销售方式为“销售”数量,HQ是聚合“退货”数量,并且还有在最后进行总数量计算。...这是CALCULATE最经典用法之一,单条件筛选求和,以后会继续分享学习CALCULATE其他心得。我是白茶,一个PowerBI初学者。 * * * 小伙伴们❤GET了么?

    1.2K30

    DAX 系列】总计行问题终极解决方案

    晕~~~ 理解 PowerBI PowerBI 进行这项计算主要方式是通过 DAX,考虑到 通用性 和 一般性,DAX 设计满足: 在可视化层汇总表每个单元格都在独立环境计算。...其实,平时我们使用度量值是[KPI.Row],之所以出现总计行问题,也是因为没有考虑总计行问题。 在第二步中谈到兼容计算,就是为了兼容元素,小计,总计,外部筛选等苛刻条件,保持极高用户友好。...【情况3】多总计,不同,同桥 这种情况更加复杂,多来自不同,当然,有个特点是他们有一个共同桥。 什么是桥? 在多个一对多关系中,作为共享多端,就是桥。...度量值: Topic.Value.Display.FromMultiTable.ButSameBirdge = // 多总计,多来自不同,但共享一个桥 // 什么是桥,在多个一对多关系中,作为共享多端...【情况4】多总计,不同,无桥 这种情况更加更加复杂,多来自不同,而且没有共同。如下: ?

    3.7K20

    DAX学习分享:十条经验

    使用度量值,而不是计算PowerBI中有三个地方可以写DAX公式:度量值、。这三者理想使用频率是由大到小,度量值>>。 ?...很多人刚开始学习PowerBI时,喜欢使用计算,然而这意味着你并没有体验到PowerBI精华。...计算不是什么新知识,就好像在Excel中使用Vlookup添加一一样,这一是基于现有的基础上做运算,它是“静态”,运算结果不会因为切片器或透视筛选而变化,当你建立好后,它就会保存在文件中,增加你内存...下图这个图是我经常用来脑补DAX工作原理,度量值和计算都是先执行筛选再来计算,而所谓DAX用作查询语言”其实就是主要应用了筛选功能,所以某些观点“DAX查询将取代数据透视”是没有道理,一个东西你只用了一半功能...如果是仅仅完成多个文件汇总整理,没有后续分析和可视化工作,你完全可以使用Excel编辑查询器。 ?

    3.3K41

    函数周期丨筛选丨丨ALLSELECTED

    语法 DAX= ALLSELECTED([ | [, [, [,…]]]] ) 参数 :(可选项)不能是表达式,现有名称。...:(可选项可重复)不能是表达式,现有名称。 注意:要么是,要么是;如果是多,必须在同一中。返回结果 不带任何或行上下文上下文。...切片器这种,通过一些摆在明面的控制器,来影响计算,筛选条件,这里称之为显性筛选,即肉眼可见控制。 例子 模拟数据: [1240] 这是白茶随机模拟一份数据,很简单。...如果不是深度研究DAX内部运行原理,以及开发者,后续东西掌握多了,反而会影响我们对此使用。 当然,如果以后有时间了,或者实际案例用到这了,白茶会说说后续事情。 小伙伴们❤GET了么?...白茶会不定期分享一些函数卡片 (文件在知识星球PowerBI丨需求圈) [1240] 这里是白茶,一个PowerBI初学者。 [1240]

    1K00

    学习CALCULATE函数(三)

    数量= SUM(''[])//这里我替换成了示例文件 这是我们熟悉了很久基础代码,聚合。 [1240] 首先缕清思路,求总体占比就是求出当下各品类数量以及总体情况进行除法运算。...这里做一下总结: 计算总体占比 DAX= DIVIDE(SUM(''[求和项]),CALCULATE(SUM(''[求和项]),ALL(''))) 计算分类占比 DAX= DIVIDE(SUM('...'[求和项]),CALCULATE(SUM(''[求和项]),ALL(''[项目]))) 计算筛选总体占比 DAX= DIVIDE(SUM(''[求和项]),CALCULATE(SUM(''[...求和项]),ALLSELECTED(''))) 计算筛选分类占比 DAX= DIVIDE(SUM(''[求和项]),CALCULATE(SUM(''[求和项]),ALLSELECTED(''[项目...白茶会不定期分享一些函数卡片 (文件在知识星球PowerBI丨需求圈) [1240] 这里是白茶,一个PowerBI初学者。 [1240]

    95220

    函数周期丨筛选丨丨ALLEXCEPT

    语法 DAX= ALLEXCEPT(,[,[,…]]) 参数 :要清除筛选器:(可重复)位于第一参数表中,需要保留筛选。除了这一之外,其他全部不受筛选影响。...注意:不能使用表达式和表达式。 返回结果 除了保留筛选器那一,清除了其他筛选条件一个。 例子 模拟数据: [1240] 这是白茶随机模拟一份数据。...例子1: ALLEXCEPT例子1 = ALLEXCEPT ( '例子', '例子'[类别] ) 结果: [1240] 因为当前上下文环境为行上下文,默认筛选条件为空,结果返回为剔除了保留筛选一个...: [1240] 除了颜色这一保留筛选之外,清除其他筛选条件,因为当前上下文每组颜色都有多个选项,所以可以利用其特性求组内占比。...白茶会不定期分享一些函数卡片 (文件在知识星球PowerBI丨需求圈) [1240] 这里是白茶,一个PowerBI初学者。 [1240]

    72900

    DAX - 正确地提出好问题 - 你真的理解SUM

    在学习 Power BI DAX 过程中,不免会遇到一些问题和你想不一致。例如以下问题来自伙伴在实际业务中涉及到公式,我们来拆解并帮助大家梳理对于 DAX 理解。...2、在计算 SUM 时候,FILTER 会创建自己迭代环境,针对仅有的一行客户,计算SUM (' 订单 '[数量] ) > 20000 3、在 2 中计算 SUM (' 订单 '[数量] ),由于在筛选上下文中...条件,那么 FILTER ALL (' 客户 ') 全部都会返回 TRUE 导致得到全。...2、关于 DAX 使用建议 DAX 使用是有着清晰规律,对于业务人员(强调 100 次:业务人员)使用 DAX 往往需要遵循一些套路,而不是像工程师一样要死扣所有细节,或者自己给自己编制一个有问题陷阱...如图: 相关文章 彻底理解 PowerBI DAX 函数 EARLIER 【DAX 系列】高清图解迭代原理并弃用 EARLIER 从SUM让人看看PowerBI DAX坑爹之深

    1.1K30

    帕累托分析模板

    首先基于该可以简单地写一个度量值,求销售金额合计。 [销售额]=Sum('销售明细'[销售金额]) 有了度量值你可以尝试着去构造一张ABC模样。...3.Addcolumns作用是在该All后面加入一“销售额”,求得每种商品销售额。 ? 4.Addcolumns妙处是刚刚添加完这个“销售额”可以再次被利用起来。...使用Filter('Addcolumns', [销售额]>=currentsales),就可以把[销售额]大于等于1,420,202所有商品都筛选出来。 ?...相比之下,我写公式仅有五六行,而且只用了数据源一张,思路清晰且算法更优。 ? 在上一篇文章PowerBI大师知识变现能力分析使用购物篮分析也是以极简方法实现了4级难度模板。...为什么这是实用模板?主要有三点主要原因: 第一,这个方法并不复杂,任何PowerBI、Excel PowerPivot、DAX初学者都可以学习掌握,即使不懂你也可以把该模板直接复制使用

    1.6K30

    PowerBI排名问题丨RANKX函数

    下面是一些DAX书写要求: 1.如果参数只有一个,那么参数和函数需要放在一块。如下: DAX = SUM ( ''[求和项] ) 2.如果参数函数有两个,或者更多参数,那么每个参数一行。...如下: DAX = CALCULATE ( SUM ( ''[求和项] ), FILTER ( '', [条件] = "M" ) ) 3.如果函数和参数太多了,那么左括号"("和函数在一行;参数如果是新行...如下: DAX = CALCULATE ( SUM ( ''[求和项] ), FILTER ( '', [条件] = "M" && [条件] = "N" ) && FILTER...( '', [条件] = "S" ) ) 最后,给小伙伴们一个DAX格式网址,会自动将你DAX代码转换为标准格式: http://www.daxformatter.com/raw/ 具体使用办法白茶在这里就不一一赘述了...[1240] 下面是今天示例文件: [1240] [1240] 这是一份服装销售模拟数据,将其导入PowerBI中,并且输入如下代码,求出销售金额: 销售 = SUM ( '产品'[销售价] )

    3K20

    函数周期丨时间智能丨值丨TOTAL函数系列

    日期:日期。 筛选器:(可选项)筛选条件。 结束日期:(可选项)用来定义年度结束日期,只有YEAR有,前两者没有。 返回结果 月初/季度初/年初至今数据值累计之和。...DATESMTD可以用来计算日期生成,也可以与CALCULATE函数搭配求累计值。 而TOTALMTD只是单纯计算累计值,用途更纯粹一点。 后续不再对比QTD和YTD,效果都差不多。...例子2: TOTALQTD例子 = TOTALQTD ( SUM ( '销售明细'[销售数量] ), '销售明细'[销售日期] ) 结果: [1240] 逐日累计,计算本季度至今为止累计值。...到这里,时间智能函数基本上就告一段落了,对于刚开始学DAX小伙伴来说,这一类函数作为过渡使用是再好不过了,如果想根据具体案例去解决具体问题,那么还需要多多深入了解DAX哦。...白茶会不定期分享一些函数卡片哦。 (文件在知识星球PowerBI丨需求圈) [1240] 这里是白茶,一个PowerBI初学者。 [1240]

    74100

    一个简单现实案例挑战 PowerBI 水平测试 - 深度解析

    若有按排序,则该和按排序列是同时参与计算,按排序列处于隐藏状态。 业务使用名称,但同时应该伴随主键,确保名称唯一性。...而 PowerBI使用 DAX 构建公式却没有这样便利,这是很多业务伙伴无法从 Excel 切换思维到 PowerBI 重要原因。 而该问题已经在 PowerBI 社区被投票投成了热门: ?...我会将这些内容做一个专门主题发出,并整理进入我《PBI 高级》中。 本文精华包括: 几个 DAX 深坑; 来自业务本身坑; 复杂模型层计算探究; 视图层计算探究。...这启发了我们做很多问题方法。另外,它直接将我要提出 PowerBI DAX 视图级通用计算模式呼之欲出。 你可以再看一遍:视图环境克隆 + 静态化 提出了使用 DAX 新思路和玩法。...而震撼 PowerBI DAX 视图级通用计算模式 就要来了。

    2.7K31

    PowerBI DAX 度量值管理 - 基本编写到高级管理

    符号等)使用大写英文字母,如: SUMX 【必】DAX 表达式中函数与符号之间使用空格进行分隔,如: Sales = SUM( Order[Value] ) 【必】DAX 表达式中函数开始括号与函数名称之前不使用空格...创建有两种方法: DAX 创建 输入数据(也就是 PQ 创建) 推荐使用后者,且不要删除务意义,仅做隐藏即可。 这样,将度量值放入,则有: ?...在 DAX 中,什么时候可以使用名称空间呢? 例如,如果某个部分是来自 ZM 设计编写度量值,可以用 @ZM: 作为前缀,表示有锅找他。...由于 PowerBI DAX 目前无法实现很多编程类语言特点,我们只好通过手工办法做一些记录。 这里在于说明整个模块依赖于这些引用,原始数据模型必须包括同等语义引用。...此时,在定义 @ZM:Z:AC 时候,就可以依赖注入了,如下: ? 到底 Z 曲线 AC 值怎么计算,我们根本不 Care ,它计算由另外逻辑独立给出,但我们只是使用这个逻辑即可。

    2.3K21

    函数周期丨时间智能丨丨FIRSTNONBLANKLASTNONBLANK

    函数,当然,有些时候也可以作为“值函数”使用。...语法 语法1: DAX= FIRSTNONBLANK(,) 语法2: DAX= LASTNONBLANK(,) 参数 :任何,或者具有单列,也可以是表达式。...表达式:计算空值表达式,也就是判定条件。 返回结果 单列,只有一行数据。也就是只返回一个值,只不过这个值在中。...如果这里不嵌套CALCULATE函数的话,会导致计算忽略计算上下文,只考虑行上下文,那么呈现结果将是2020年1月3日。...白茶会不定期分享一些函数卡片哦。 (文件在知识星球PowerBI丨需求圈) [deb49a4b86e7588aed094a6098e341da.png] 这里是白茶,一个PowerBI初学者。

    50700

    最实用帕累托分析模板

    [销售额]=Sum('销售明细'[销售金额]) 有了度量值你可以尝试着去构造一张ABC模样。把[商品名称]字段放到透视行,值放入[销售额],再按照由大到小降序排列。 ?...3.Addcolumns作用是在该All后面加入一“销售额”,求得每种商品销售额。 ? 4.Addcolumns妙处是刚刚添加完这个“销售额”可以再次被利用起来。...使用Filter('Addcolumns', [销售额]>=currentsales),就可以把[销售额]大于等于1,420,202所有商品都筛选出来。 ?...相比之下,我写公式仅有五六行,而且只用了数据源一张,思路清晰且算法更优。 ? 在上一篇文章PowerBI大师知识变现能力分析使用购物篮分析也是以极简方法实现了4级难度模板。...有三点主要原因: 第一,这个方法并不复杂,任何PowerBI、Excel PowerPivot、DAX初学者都可以学习掌握,即使不懂你也可以把该模板直接复制使用

    1.9K41

    SUM让人看看PowerBI DAX坑爹之深

    DAX,simple but not easy.DAX,简约而不简单 ? 如果说99%的人不真正理解PowerBI DAXSUM,你信吗?...SUM迷思 从一道经典问题来看: ? 用户在订单创建了一个计算,并写入一个简单公式,在按下回车时候,每行值应该是多少?请思考10秒继续。...大家在学习了行上下文以后,了解到创建计算时候会创建行上下文,因此,SUM( FactOrders[销售额] ) 发生在当前行上下文中,而由于行上下文存在,FactOrders[销售额] 应该是当前行值...真正原因在于:在DAX中,是不存在SUM,任何SUM计算时都会转化成SUMX。...回到这个问题来看,这里确实不会忽略行上下文,而是将SUM转换成了SUMX,并进入SUMX进行计算,而SUMX将创建新迭代过程,在中逐行迭代,进而得到了整列聚合结果。

    3.1K20

    中国首款重量级PowerBIDeskTop外部工具问世

    Excel透视表现有PowerBI模型连接更新 以前面一点所述,因端口号每次打开同一个pbix都会变化,所以已创建好数据透视连接,下次使用,仍然存在端口号不对,访问失败情形。...本功能除了核心DAX查询,还将对查询周边功能进行开发,自动获取当前PowerBIDeskTop最近DAX查询,清洗DAX查询(将自动获取到DAX查询多余查询条件剔除)、格式化DAX查询,保存DAX...特别是对常用元数据如度量值、计算关系信息等,在Excel上可方便一次性浏览所有特定相关内容,体验更好。 此功能下,分别提供简易版和完整版,简易版生成速度快,可供大部分场景使用。...特别增加了新增功能,在导入对象模型不存在时,可新建一个对象,并赋值导入其他配置信息,特别适用于同一个PowerBI模型多个pbix文件版本需同步更新合并度量值、计算信息使用。 ?...批量删除PowerBI模型内各种对象 前述中仅有更新和新建功能,特意开放一个删除功能,可批量删除度量值、计算、关系等上术可查看到对象。删除有风险,请谨慎使用

    4K40
    领券