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

有没有办法在DAX中将DISTINCTCOUNT计算为SUMX?

在DAX中,可以通过使用SUMX函数来计算DISTINCTCOUNT。SUMX函数是一种迭代函数,它可以对给定的表达式进行迭代,并将每个迭代结果相加。要将DISTINCTCOUNT计算为SUMX,可以按照以下步骤进行操作:

  1. 首先,使用SUMMARIZE函数创建一个包含需要计算DISTINCTCOUNT的列的汇总表。例如,如果有一个Sales表,包含产品名称和销售数量两列,可以使用以下DAX公式创建一个汇总表:
  2. 首先,使用SUMMARIZE函数创建一个包含需要计算DISTINCTCOUNT的列的汇总表。例如,如果有一个Sales表,包含产品名称和销售数量两列,可以使用以下DAX公式创建一个汇总表:
  3. 接下来,使用SUMX函数对汇总表进行迭代,并在每次迭代中计算DISTINCTCOUNT。假设需要计算产品的唯一数量,可以使用以下DAX公式:
  4. 接下来,使用SUMX函数对汇总表进行迭代,并在每次迭代中计算DISTINCTCOUNT。假设需要计算产品的唯一数量,可以使用以下DAX公式:
  5. 在这个公式中,每次迭代都会将1相加,最终得到DISTINCTCOUNT的结果。

通过以上步骤,可以在DAX中将DISTINCTCOUNT计算为SUMX。这种方法适用于需要对某个列进行DISTINCTCOUNT计算的情况,可以根据具体需求进行调整。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云DAX产品介绍:https://cloud.tencent.com/product/dax
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

PowerBI DAX 如何使用变量表里的列

进一步地,我们想对这个表求和,可能会这样写: VAR vResult = SUM( vTable[LineSellout] ) 这里是希望表达计算销售额,但会遭遇一个语法错误,这里不能使用 vTable...解决方案 表, DAX 分为模型表以及非模型表。 直接加载到 DAX 数据模型的就是模型表,又称为:基表(base table)。...聚合运算 如果希望直接进行聚合运算,则: VAR vResult = SUMX( vTable , [LineSellout] ) 这里的 vTable 作为表使用,而 [LineSellout] 作为其中的列被引用到...其次,要强调一个问题,或者一个思考,那就是: 既然 VALUES 和 DISTINCTCOUNT 都不能使用到诸如 vTable[LineSellout] 的列,那么,是不是存在某个场景,是无法实现表达的...对于大家而言,我们只要记住:DAX 很强,很成熟,很好用,都可以实现即可。

4.2K10

从SUM让人看看PowerBI DAX的坑爹之深

用户订单表创建了一个计算列,并写入一个简单的公式,在按下回车的时候,每行的值应该是多少?请思考10秒继续。 有两个选择: A 每行都是一样的数字,整个列值的和。...真正的原因在于:DAX中,是不存在SUM的,任何的SUM计算时都会转化成SUMX。...也就是说:SUM(T[C])会被无一例外的转化为SUMX( T , T[C] ),因此DAX实际执行的时候,是没有SUM的。...回到这个问题来看,这里确实不会忽略行上下文,而是将SUM转换成了SUMX,并进入SUMX进行计算,而SUMX将创建新的迭代过程,表中逐行迭代,进而得到了整列的聚合结果。...他们引入了特例且用这种生硬的办法来定义规则,不可接受。但我也充分知道他们和我一样是知道SUM会被转换为SUMX的,他们这样描述,我猜想是要避免告诉你这么多底层的内容,就会增加学习难度。

3K20

【性能优化】面向存储引擎,优化基础度量值得到海量性能提升

性能优化, DAX 中是很重要的问题,对 DAX 的性能优化大致可以归结为针对 SE(存储引擎) 或 FE(公式引擎) 的性能优化。...我们会通过一系列文章来帮助大家各个角度来体会 DAX 的性能优化技术。 今天我们来看一个案例。...这个定义没有问题,放在 PowerBI 中的计算也是正确的,但不久就会发现它的性能问题,于是,通过 DAX Studio 来检查可以看到: ? 我晕,居然惊现了 779 个查询。...该查询的意义是计算每天的大订单个数。但这种方法显然是不行的。虽然度量值的定义上非常自然。 我们再来看看从 PowerBI 中拖拽的情况,如下: ?...那么进而想到另一种方式: OrderPurchaseNumber = CALCULATE( DISTINCTCOUNT( 'Order'[OrderID] ) , FILTER

61220

看专家怎么用 Power BI 算零售业务中的订单数,知道差距了

,不仅仅是业务上需求的提出者,更可以成为:自助者,想要的,不管有没有别人,自己可以实现。...具体说来,换货单据中,有的退 1 件换 1 件,整单销量 0;有的退1件换2件,整单销量大于 0;有的退 2 件换 1 件,整单销量小于 0。...其 PowerBI DAX 定义如下: 单据数1 = DISTINCTCOUNT( 'Model-Factsales'[单据编号] ) 备注 Model-Factsales 是订单事实表。...很多业务逻辑表达时有些绕口,一旦你可以用 PowerBI DAX 去定义出来,它将很清晰,其 PowerBI DAX 定义如下: // 先定义: Core.销量 = SUM( 'Model-Factsales...其 PowerBI DAX 定义如下: 单据数4 = VAR vOrdersAll = DISTINCTCOUNT ( 'Model-Factsales'[单据编号] ) VAR vOrdersInvalid

1.9K30

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

度量值拖入到之前创建的"多行卡"中,操作如下: 除了以上计数的需求外,在数据分析时我们还需要进行去重统计,这就需要用到DISTINCTCOUNT函数,DISTINCTCOUNT函数的用法如下: DISTINCTCOUNT...下面我们创建新的度量值"不重复机器数"来统计"2022年点播订单表"中不重复的机器数量,操作如下: 度量值DAX公式:不重复机器数 = DISTINCTCOUNT('2022年点播订单表'[机器ID]..."季度"和"月份"设置列,度量值表中将刚刚创建的"年累计营收"设置值,绘制可视化图如下: 按照以上同样的方式,创建"季累计营收"和"月累计营收"度量值,并输入对应的度量值DAX公式: TOTALQTD...度量值DAX公式:当月工资 = SUM('2021~2022年工资表'[工资]) "度量值表"中创建新的度量值"去年同期月份工资" 度量值DAX公式:去年同期月份工资 = CALCULATE('..."度量值表"中创建新的度量值"工资环比增长率" 度量值DAX公式:工资环比增长率 = DIVIDE('度量值表'[当月工资]-'度量值表'[上月工资],'度量值表'[上月工资]) "报表"视图中创建可视化

9.4K42

阅读圣经丨筛选上下文与行上下文

[strip] 其实这里面就涉及到DAX计算逻辑中的上下文概念了。 圣经中曾提到过,DAX计算逻辑有两种上下文: 行上下文与筛选上下文。 什么叫行上下文?...DAX语言中,行上下文与筛选上下文是一个特别重要的问题,我们进行DAX代码编写的时候,必须要考虑到这两点,不然计算结果很容易出现问题。二者就是计算环境。...TOPN这个虚拟表提供了一些值,本身不符合筛选逻辑的值,直接就被PASS掉了。这里已经进行上下文转换了。 最后,SUMX只对总计生效。它只计算可见项目的可计算值。...像是一些排名符合要求的组合,SUMMARIZE它提供环境,TOPN提供值,由SUMX进行二者汇总。...这样的话,三者就完成了: 行上下文转换筛选上下文→提供筛选计算值→汇总计算 有时候写DAX经常因为上下文考虑的不周到,导致计算结果出问题,没有太好的解决办法,只能说经历的多了,写的DAX多了,才会慢慢让上下文这个概念长存于心

1.2K20

销售需求丨奖金权重分配法

这个需求,白茶也是醉了,但是木有办法,还得继续啊,将数据导入到PowerBI中,结果如下: (示例文件会放到知识星球中,小伙伴们可以搜索“PowerBI丨需求圈”,文章结尾处会有二维码。)...咱来思考一下思路,因为要求所有的结果都需要呈现在一个表格里面,那么就需要在写DAX的时候,每一段代码都要绕开“奖金”这一项,让其不显示,同时总计栏还要计算无误。...这个组合就是当IF判断不为空时,由IFSUMMARIZE提供对应项目的值。空值不显示。 最后,利用SUMX迭代循环的特性,求出SUMMARIZE这个虚拟表的IF判断值。...最后利用SUMX函数汇总。 这里白茶说一下两段代码的区别: FILTER是构建表的时候,就将“奖金”这个项目踢出去了。...SUMMARIZE函数,是先判断后面的计算值的,如果IF的判断空的话,那么虚拟表就没有这一项,因为它只显示可见组合。最后SUMX汇总可见项。 二者一个是从表出发,一个是从结果出发,结果都是一样的。

66520

Thinking in DAX with PowerBI - 逻辑框架 - 计算逻辑

我们并不用按照本科甚至考研的要求来讲解算法和数据结构,但这里面最精华的思想我们可以提炼并与 DAX 结合,大家呈现,让大家从一个更严谨更上帝视角来理解 DAX。... DAX 中,你其实已经用过了很多算法,你编写的任何 DAX 公式都是一个算法,都是一个计算方法,这些计算方法被定义成了一个核心部件,叫:度量值。...循环逻辑 那么,问题来了,DAX有没有这几种逻辑的表达呢?...总结 本文提出了我们会陆续给出《Thinking in DAX》的系列。本文只是其中一篇而已。 本文提出了逻辑框架,并揭示了数据结构和计算方法 DAX 的本质重要性。...本文详细阐述了计算方法中的三大逻辑以及 DAX 中的实现并本质地揭示了行上下文的运行逻辑,最后给出了大家修炼 DAX 运算能力的建议。

1.5K62

看专家怎么用 Power BI 算零售业务中的连带率,知道差距了

,然后把整单销量负的单据的退货数量也做扣减,因为负单的整单退货数字本身为负,所以这里使用 “ + ”,而不是像前文计算有效单据数时使用 “ - ”。...而整单销量 0 的单据不做考虑。...所不同的是单据数的计算上,一销一退两张单据并没有累计 2 张,而是通过精准的计算逻辑抵消 0。...通过单据数和连带率两个核心指标的思考和用 PowerBI DAX 给出的过程,可以发现这是零售分析的理论逻辑下,不断优化以更加接近现实。...如果没有 PowerBI DAX 辅助,而是纯手工一步步运算或者仅仅靠 Excel 的公式,这个工作量不仅很大,而很大层面上,精准定义后的计算会非常慢,导致不可用,而且容易出错。

1.9K40

PowerBI公式-SUMX函数

SUMX 函数 DAX设计了一系列后缀X的函数,SUMX,AVERAGEX,MAXX,MINX...它们与Filter和Earlier一样,都属于行上下文函数。...这个方法可以达到与SUMX同样的效果,然而我一般不建议大家这样去做。为什么呢?这是一个度量值方法与计算列方法的对比问题。第一次介绍度量值与计算列时我们提到过它们的区别。...度量值只有放到图表中才会执行计算,而计算创建后就会把整列数据存储文件中,增大文件的容量。当行数较少时可能感觉不到差别,然而如果你的表有几百万行,那就意味着增加了几百万行的数据。...所以一般的建议是不到万不得已的情况,我们不使用添加计算列的方法。 ? 除了度量值和计算列两个方法中做出选择,写一个度量值时,因为DAX提供的公式很灵活,达到同一个目的方法也有很多。...比如我们再次回到求[销售量7]这个例子,它还可以用SUMX来完成,效果是完全一样的。 ? ? 上面这个例子只是为了解释SUMX计算逻辑,并没有体现它的过人之处。

9.1K51

PowerBI DAX 递归问题如何解 - 比例型

有很多小伙伴常常问到含有递归特性的 Power BI DAX 计算问题,这在 DAX 中应该如何解呢? 本文来阐述【比例型】的解决方案。...DAX 的递归限制 DAX 并不提供对递归计算的天然支持,导致一些问题无法自然得解。Excel 中可以轻松解决的问题, DAX 中变得很复杂。... Excel 中,可以某行直接引用上一行的元素,实现递归。 DAX 中,却无法直接引用上一行元素,导致无法实现递归计算。...递归计算 由于 DAX 不支持递归,但可以用已经推导出的公式替代,化递归聚合运算,公式如下: X(n) = X(0) * ( A(n-1) * A(n-2) * … * A(0) ) 若某元素有已知值对应则取值...总结 虽然 DAX 并不支持递归,但对一部分具有特点的递归计算,可以化解成数列聚合运算模式,本文给出了这方面的探索和示范。滚动预测,存货,库存,余额等场景中均可以使用。

1K21

PowerBI DAX 矩阵分组区域内通用积累求和

反思 首先,这个问题,让我们对 DAX 计算再次反思: DAX 计算从本质来讲,永远发生在模型层。...但若对于某计算,其计算若只需依赖已经计算完毕的内容,我们称: 1、已经计算完毕的内容视图; 2、基于视图再进行的二次计算视图层计算。...这便是对 DAX 计算的反思。...2、若 PowerBI 将视图层计算功能融入到 DAX 中,将导致作为纯模型层计算的函数库 DAX 掺杂了其他内容而使得 DAX 不再纯粹,这也是不希望发生的。...本案例技巧 本案例计算按名称累计时,使用了一个非常有创意的技巧:SELECTEDVALUE( Customer[Occupation] , "座座座座" ) 默认返回"座座座座",将作为中英文世界的词语几乎是最大字符而使得小计行或总计行可以完成正确的计算

2.6K31

震撼发布:使用Copilot自动生成DAX查询

让copilot我们生成查询: 比如,对于当前文件,我想“计算每年各个省份的销售额”,输入后点击回车,copilot将开始工作: 很快,copilot我们提供了一段DAX代码: 如果觉得公式没有什么问题...,选择保留后,点击运行: 下方结果栏里,copilot我们准确计算了各个年份和省份对应的销售额。...这极大地简化了创建DAX度量值和计算表的过程,通过一行自然语言就可以让copilot生成我们想要的结果。面对复杂度量值的书写,我们会更加从容应对。...除了生成DAX查询,我们还可以对copilot提出问题让其回答,比如我们想要对比“SUM和SUMX的区别”,只需copilot输入框中输入对应的问题: 它会马上提供详细的函数说明与对比: 总结...Copilot都能自动生成DAX了,自动制作报告了,那么还有没有必要学习DAX呢?

19110

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

晕~~~ 理解 PowerBI PowerBI 进行这项计算的主要方式是通过 DAX,考虑到 通用性 和 一般性,DAX 的设计满足: 可视化层的汇总表的每个单元格都在独立的环境计算。...微软也已经发现了这个问题,就是可视化层面目前没有给出一个计算方案。用英文的准确写法是:Visual Calculation。 DAX 的强大就在于灵活的上下文,尤其是筛选上下文。...一般的思路是: 判断当前的计算环境,如果是总计行就计算全部,如果是小计行就计算当前部分,如果是元素行就默认计算。但问题是,如果用户最外部筛选了部分元素呢。...,总计行全部计算正确,且部分筛选下依然正确。...第二步中谈到的兼容计算,就是为了兼容元素,小计,总计,外部筛选等苛刻条件,保持极高的用户友好。 这里涉及一个关键函数是:SUMX。 套路:用 SUMX 按分组对 [KPI.Row] 进行包裹。

3.7K20

你真的知道你有多少家门店吗?让专家帮你用 PowerBI 算

讲解门店数的计算逻辑前,首先聊下一家门店,从开店到撤店所经历的几个重要时点。一家门店装修完成,就可以择日开张营业,营业第一天就是开店日期。...门店系统中的状态,就根据这几个阶段,分为装修中、营业中、重装中、撤店。计算门店数时,就要根据以上这些字段确定。...店铺数 一张典型的店铺表的结构如下: 用 PowerBI DAX 计算如下: 门店数 = VAR MaxDate = MAX ( 'Model-Dimdates'[Date] ) RETURN...当门店的开业时间小于等于当前期间的最大值,并且处于经营状态(撤店日期空)或者已撤店但撤店日期大于当前期间的最大值(即当前期间还未撤),那么该店在当前期间有效经营门店。...新增与撤店 对于其他指标,用 PowerBI DAX 计算如下: 门店数 本期新增 = CALCULATE ( DISTINCTCOUNT ( 'Model-Dimstore'[商店代码] ),

1.3K20

上下文系列小讲堂(回顾1)

计算列:引用原有列,通过计算生成新列 2....别急着往下看,自己先思考一下,这个“总销量”的计算列,使用SUM后会出现什么效果 ...... ...... ...... 1. 由于是计算列,所以DAX会自动创建“行上下文” 2....所以,SUMX('销量表',[销量])得到的结果是全表的销量汇总 6. 由于筛选上下文空,因此SUMX公式分到每一行的结果都相同,均为全表汇总值 ?...因为度量值不会自动创建“行上下文”,而计算列可以,所以语法源头上就出错了 (三)度量值里使用聚合类迭代函数(SUMX) 从语法上来说,度量值就是由DAX函数构成的,迭代函数也是DAX的一种,自然更没障碍...SUMX迭代函数,对上一步确定下来的表,创建一个新的“行上下文”(牢记:“行上下文”仅作用于数据模型里的原表,而非可视化表元素) 3.

1.1K20

DAX中的基础表函数

此外,DAX权威指南》的第2章中提到过,可以将变量定义DAX表达式的一部分。当时,我们使用变量来存储标量值。但是,变量也可以存储表。...通过简单地表达式指定一个名称,你可以很好地记录并理解代码。 计算列或迭代中,还可以使用RELATEDTABLE函数检索相关表的所有行。...通常,遇到嵌套函数的调用时,DAX首先计算最内层的函数,然后逐层计算其他层函数,直至最外层的函数。...第5章中,会对CALCULATE和CALCULATETABLE函数进行描述。 通常,我们不能将表函数返回的结果作为度量值或计算列的值。度量值和计算列都要求结果标量值。...因此,分母的COUNTROWS返回空,结果也空。第二个变体中,我们仍然使用VALUES函数,但是这次计算的是Sales[ProductKey]的数量。

2.6K10

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

符号等)使用大写英文字母,如: SUMX 【必】DAX 表达式中的函数与符号之间使用空格进行分隔,如: Sales = SUM( Order[Value] ) 【必】DAX 表达式中函数的开始括号与函数名称之前不使用空格...用表给度量值提供载体 度量值必须需要一个表作为载体,所以,一般度量值创建一个表来存放。...各种编程领域中,为了更好的组织各种元素,就会有命名空间的概念。这完全是一个逻辑上的概念, DAX 的度量值体系中,有个很好玩的现象是,度量值的名称可以支持非常多的字符,而不受限制。...由于 PowerBI 的 DAX 目前无法实现很多编程类语言的特点,我们只好通过手工的办法做一些记录。 这里在于说明整个模块依赖于这些列引用,原始数据模型必须包括同等语义的列引用。...此时,定义 @ZM:Z:AC 的时候,就可以依赖注入了,如下: ? 到底 Z 曲线的 AC 值怎么计算的,我们根本不 Care ,它的计算由另外的逻辑独立给出,但我们只是使用这个逻辑即可。

2.3K21
领券