ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1063|回复: 9

[求助] DAX中SUMX函数的总计结果不对

[复制链接]

TA的精华主题

TA的得分主题

发表于 2021-5-7 10:59 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 jasonaxin 于 2021-5-7 11:51 编辑

有两张表,天数表和用户表,两者没有做关联;
天数表;
image.png
用户表,记录用户关注和取关时间,以及取关间隔的天数,若未取关,取关相隔天数为-100;
image.png

现在需要计算每天剩余的用户数,就如下新增度量值
  1. 留存人数 =
  2. VAR AAA = MAX('天数表'[天数])
  3. VAR BBB = SUMX('天数表',CALCULATE(DISTINCTCOUNT('用户表'[unionid]),'用户表'[取关相隔天数]>AAA||'用户表'[取关相隔天数]=-100))
  4. RETURN BBB
复制代码
公式结果如下:
image.png image.png

每一天的留存人数结果是准确的,但是总计不对,而且只用天数(周)去拆分,留存人数也是不对的,而我希望的结果是每日留存人数的和,如下:
image.png     image.png

文档在附件,请各位大佬们指导指导,公式应该如何改写,或者是用其他方法,才能得到我想要的结果?

测试.zip

1.04 MB, 下载次数: 8

TA的精华主题

TA的得分主题

发表于 2021-5-7 13:25 | 显示全部楼层
把BBB里的  >AAA 换成 >EARLIER('天数表'[天数])

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-5-7 14:25 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
flashevil 发表于 2021-5-7 13:25
把BBB里的  >AAA 换成 >EARLIER('天数表'[天数])

没错没错,感谢老哥!!

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-5-7 19:53 | 显示全部楼层
flashevil 发表于 2021-5-7 13:25
把BBB里的  >AAA 换成 >EARLIER('天数表'[天数])

老哥,还想问一下,如果这两个表有建立关系,这个公式结果就不对了;可以麻烦老哥帮我再看看么,感激不尽

比如我新增一个日期表,日期表中的[日期]与用户表中的[firstsubDate]建立关系;

如果按照之前的公式,结果是不对的
  1. 累计新增人数 =
  2. VAR BBB = SUMX('日期表',CALCULATE(DISTINCTCOUNT('用户表'[unionid]),'用户表'[firstsubDate]<=EARLIER('日期表'[日期])))
  3. RETURN BBB
复制代码

将两个表的关系去掉,这个公式的结果才是我想要的
由于回复字数限制不能截图,可以麻烦老哥在附件里面帮我看看不

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-5-7 20:13 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
flashevil 发表于 2021-5-7 13:25
把BBB里的  >AAA 换成 >EARLIER('天数表'[天数])

新问题的文档链接如下:
链接:https://pan.baidu.com/s/1wuNd9kLqkEc0pcIdwEeiwQ
提取码:mbdj

麻烦老哥有空看看谢谢谢谢!!

TA的精华主题

TA的得分主题

发表于 2021-5-8 09:00 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
jasonaxin 发表于 2021-5-7 19:53
老哥,还想问一下,如果这两个表有建立关系,这个公式结果就不对了;可以麻烦老哥帮我再看看么,感激不尽: ...

累计新增人数 =
var a = max('日期表'[日期] )
return
CALCULATE(DISTINCTCOUNT('用户表'[unionid]),FILTER(ALL('用户表'),'用户表'[firstsubDate]<=a))

TA的精华主题

TA的得分主题

发表于 2021-5-8 09:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
  1. 累计新增人数 =
  2. VAR BBB = SUMX('日期表',CALCULATE(DISTINCTCOUNT('用户表'[unionid]),'用户表'[firstsubDate]<=EARLIER('日期表'[日期])))
  3. RETURN BBB
复制代码

这个度量值的问题 出在 CALCULATE的一参 会被透视表的筛选上下文 筛选掉 只剩下某个日期的用户表[unionid],  一般用累计求和的时候 调用的求和目录是要套个ALL来避免这个问题的。 这里显然CALCULATE的一参是不能套ALL的,所以就需要给CALCULATE的二参前面套个FILTER,把FILTER的一参套个ALL来解决。所以SUMX的写法应该是
累计新增人数 =
  1. VAR BBB = SUMX('日期表',CALCULATE(DISTINCTCOUNT('用户表'[unionid]),FILTER(ALL('用户表'),'用户表'[firstsubDate]<=EARLIER('日期表'[日期]))))
  2. RETURN BBB
复制代码


我也是懂个皮毛,希望抛砖引玉。

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-5-8 10:09 | 显示全部楼层
flashevil 发表于 2021-5-8 09:00
累计新增人数 =
var a = max('日期表'[日期] )
return

这公式我也试过,但是总计和按周汇总的话,结果就不对了,只会显示最后一天的结果

TA的精华主题

TA的得分主题

发表于 2021-5-8 10:23 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 flashevil 于 2021-5-8 10:27 编辑
jasonaxin 发表于 2021-5-8 10:09
这公式我也试过,但是总计和按周汇总的话,结果就不对了,只会显示最后一天的结果

用 7楼 下面那个 sumx 试试?不过话说回来,累计值的度量值 为什么要求和呢,累计值再求和的数有啥意义。

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-5-8 12:14 | 显示全部楼层
flashevil 发表于 2021-5-8 09:10
这个度量值的问题 出在 CALCULATE的一参 会被透视表的筛选上下文 筛选掉 只剩下某个日期的用户表,  一般 ...
  1. 累计新增人数 =
  2. VAR AAA = FIRSTDATE(ALLSELECTED('日期表'[日期]))
  3. VAR BBB = SUMX('日期表',CALCULATE(DISTINCTCOUNT('用户表'[unionid]),FILTER(ALL('用户表'),'用户表'[firstsubDate]<=EARLIER('日期表'[日期])&&'用户表'[firstsubDate]>=AAA)))
  4. RETURN BBB
复制代码


后面我改成了这样,就能够通过切片器控制了,感谢老哥指导!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-15 22:21 , Processed in 0.036748 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表