总计不等于明细之和的解决办法

上一篇文章最后留了个问题,就是计算大于2000万的城市销售额时,总计金额不等于明细之和,看起来比较奇怪,

其实总计和上面的这两个数字都有自己的逻辑,分别代表不同的上下文环境中的销售额,按照常规的汇总逻辑来理解二者关系是没有意义的。但是为了避免误导,有时还是需要避免出现这种状况,这里有两个解决的思路,

(一)明细项目和总计项目不同时显示

(二)让总计额等于明细项之和

下面按这两种思路分别来解决。

(一)明细项目和总计项目不同时显示

也即是让明细项的金额为空值,或者让总计为空值,这里要用到一个新函数:HASONEVALUE,是个逻辑判断函数,如果有单一值,返回ture,否则返回false,具体语法如下:

HASONEVALUE(<columnName>)

参数只有一个:列名,

作用:判断外部上下文中是否为该列中的唯一值,做切片器交互时十分有用。

下面就看看这个函数如何解决上面的问题。

不同时显示又分为不显示总计值和不显示明细项的值

不显示明细项的值

新建度量值[方法1]

= IF(HASONEVALUE('产品明细'[产品名称]),

BLANK(),

[大于2000万的城市销售金额])

这个度量值的意思是,如果外部上下文在[产品名称]中,用空值表示,否则运算度量值,结果显示如下,

如果只想要销售额大于2000万的城市的汇总销售金额,可以用这种方法。

不显示总计值

如果想要总计值为空,和上面的度量值类似,BLANK换个位置就行了,新建度量值[方法2],

= IF(HASONEVALUE('产品明细'[产品名称]),

[大于2000万的城市销售金额],

BLANK())

结果如下,和我们期望的一致。

(二)让总计额等于明细项之和

实现这种方式还需要再放出一个函数:SUMX.

SUMX(<table>, <expression>)
第一个参数为被运算的表table

第二个参数是对表中的每一行计算的表达式

之前也提到过,这是一个迭代函数,可以对表进行逐行运算,用该函数建一个度量值[方法3],

= SUMX('产品明细',

[大于2000万的城市销售金额])

结果如下,总计正好等于明细项之和,

SUMX函数十分强大,有的时候甚至可以代替CALCULATE,比如用SUMX可以一步实现方法3的效果,而无需借助CALCULATE建立的度量值  [大于2000万的城市销售金额]。

使用SUMX新建度量值[SUMX方法],

= SUMX('产品明细',

SUMX(FILTER('门店城市',

[销售总额]>20000000),

[销售总额]))

结果如下,

通过SUMX嵌套实现的效果和之前的方法完全一致,其中内层嵌套的SUMX公式和之前用CALCULATE建的度量值是等效的。不过SUMX的计算原理是逐行运算,如果数据量特别大,这种方式对内存的消耗比较严重,使用这种方式候需要慎重。

通过以上这几种方法,实现了总计和明细之和不相等的问题,实际分析中遇到相似的情况,可根据具体逻辑关系和展现需求选择不同的方式来处理。


提升技能 开拓视野

(0)

相关推荐

  • Excel公式结果常见错误值的处理

    出现错误的情况:1.无限井号键:单元格显示不下,负数设置为日期格式或者时间格式时;2.#NAME?:函数名字拼错;3.#VALUE!:非数字做运算;4.#DIV/0:分母为0;5.#REF!:引用错误 ...

  • Excel 2016︱逻辑判断函数

    使用逻辑函数可以对单个或多个表达式进行逻辑计算,然后返回一个逻辑值. 逻辑函数与乘法.加法运算 AND 函数.OR 函数和 NOT 函数分别对应"与""或"和& ...

  • CAD打开很慢该怎么办?CAD2015启动慢的三种解决办法

    新版本的CAD2015确实做了一定的改观,大家在使用的时候,可能对一些改动不是很习惯,由于改版之后,加载的因素,使得cad启动异常缓慢,1分钟左右,怎样才能够使启动变快可,经过实践,下面几种方式行之有 ...

  • 沉降开裂,没有解决办法的

    沉降开裂,没有解决办法的

  • 精准拟声描述大地鹰王摩托车出现的全车异响,附解决办法!

    作者:摩男一世 自从买回DD250E-9A,除了欣喜之余,总是被车上这样那样的异响搞得心情郁闷.期间针对每一种异响都用过多种方法去尝试解决.有一次就成功解决的,也有反复搞,反复折腾到崩溃才解决的.现在 ...

  • 大众迈腾1.4T ABS系统出现03366故障码解决办法

    故障现象:行驶中仪表出现ABS警报灯长亮报警,到服务站检查,ABS控制单元显示偶发性故障码03366(真空传感器电路电器故障),清除故障码后,无规律会再次报警,存有同样的故障记忆. 故障诊断过程:VA ...

  • 大众CC更换仪表后机油灯报警解决办法

    故障现象:2012款大众CC 2.0T更换仪表后机油灯报警. 故障诊断过程: 1.用VAS6150A检测,发动机内有故障码: ⒉.检查仪表编码与原车一样. 3.检查仪表型号跟原车没任何问题. 5.对照 ...

  • 大众迈腾更换ABS泵后,自动泊车功能失效解决办法

    故障现象:大众迈腾B7L,自动泊车不起作用,找到车位挂上R档自动泊车就会自动结束,试车如客户所述自动泊车系统可以正常打开,然后自动寻找车位但是找到车位挂入R档后系统就自动结束泊车(如下图所示) 故障诊 ...

  • pt100测温元件测量出现异常的原因及解决办法

    一.pt100测温元件测量出现异常的原因 导致温度测量发生异常的原因是多种多样的.我们通常遇到的问题主要有以下几种原因造成: a:现场接线存在松动的问题 由于所处的环境一般比较恶劣,特别是振动.在长时 ...

  • 橘子树叶子发黄的原因及解决办法

    每逢春节时候,不少市民的家里肯定少不了橘子树,但是在养殖过程中难免会出现一些问题.如叶子发黄的情况,引起桔子树叶子发黄的原因是多方面的.如虫害.侵染性病害.营养失衡症(生理性病害)等.下面小编就把引起 ...

  • 浅谈企业遇到的各种税负压力,相对应的解决办法

    税筹问题千千万,<懂税帝>为你找答案 企业在日常经营中会遇到各种各样的问题,而这些问题都会导致我们的税负压力变大.比如我们企业缺少进项,那么我们的增值税税负压力就比较大.所以我们要解决我们 ...