ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] DAX越学越糊涂,连问题都不会问了,大神看内容再帮忙回答吧

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-5-5 21:12 | 显示全部楼层 |阅读模式
我有一个表table,四列,分为[时间],[magic码][数据][序号],前三列有重复数据,[序号]列是不重复的整数序列

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-5 21:22 | 显示全部楼层
以上第一次发贴,想换行不知道换,按下 ctrl+enter就发出来了,又不知道怎么删贴了,我重问吧。。。。。我有一个表table,四列,分为[时间],[magic码][数据][序号],前三列有重复数据,[序号]列是不重复的整数序列,第一步,
  1. magic table = VALUES(table[magic码])
复制代码
,我先建了一个magic码,所有的计算会依赖它,第二步,
  1. ordercount =
  2.     COUNTX(
  3.         FILTER(
  4.             table,
  5.             RELATED('magic table'[magic])>0 && table[时间].[年]<2019
  6.         ),
  7.         table[数据]
  8.     )
复制代码
,建了一个度量值 ,用来计算2019年之前的每个magic码下的数据量,是计和值。第三,
  1. test_table = FILTER('magic table',[ordercount]<20)
复制代码
,用这段代码筛选和值小于20的magic,这三步是正确的,运行起来结果也对,现在我想将第二步第三步合并,于是有了下面的代码
  1. test_table_one =
  2.     VAR thistablemeasure =
  3.         COUNTX(
  4.             FILTER(table,
  5.                 RELATED('magic table'[magic])>0 && table[时间].[年]<2019
  6.             ),
  7.             table[数据]
  8.         )
  9.     Return
  10.         FILTER('magic table',thistablemeasure<20)
复制代码
这段代码就不再起作用了,我知道用变量建立的度量值永远只返回了总值 ,所以得不到正确的结果了。不知道原理在哪里

TA的精华主题

TA的得分主题

发表于 2023-5-5 22:03 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-5-5 22:11 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
dax文档对var的说明:将表达式的结果存储为命名变量,然后可以将其作为参数传递给其他度量值表达式。 为变量表达式计算结果值后,这些值不会更改,即使在其他表达式中引用该变量。

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-5 22:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
渡渡orz 发表于 2023-5-5 22:11
dax文档对var的说明:将表达式的结果存储为命名变量,然后可以将其作为参数传递给其他度量值表达式。 为变 ...

这个描述没有错,理解也应该是这样,但如果是这样子的话,那么我上传的这张图片就有问题了,图片原文地址Power BI之DAX神功番外篇:第12回 为何Calculate筛选器是布尔类型时没有删除筛选 - 知乎 (zhihu.com),如果变量只存储一个值的话,那么这篇文章里的论点也不对了,max始终返回的是表中的最大值,而跟行无关了吧?
1683297438429.jpg

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-5 22:45 | 显示全部楼层
渡渡orz 发表于 2023-5-5 22:11
dax文档对var的说明:将表达式的结果存储为命名变量,然后可以将其作为参数传递给其他度量值表达式。 为变 ...

刚才回复你的不知道为什么看不到了呀,请看这篇贴子这里面讲了一个例子如果变量真是如此,那这个例子我就更搞不懂了,微软确实是这样说的,但如果变量是存储的一个固定值 ,那么为什么max可以进行行筛呢

TA的精华主题

TA的得分主题

发表于 2023-5-6 09:27 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
dax的确很难理解,还在学习中,天天懵懵的。

TA的精华主题

TA的得分主题

发表于 2023-5-6 13:31 | 显示全部楼层
lrypower 发表于 2023-5-5 22:40
这个描述没有错,理解也应该是这样,但如果是这样子的话,那么我上传的这张图片就有问题了,图片原文地址 ...

'数据'[地点]在矩阵的筛选上下文环境中MAX后赋值给变量x。
你也可以把MAX('数据'[地点])改成SELECTEDVALUE('数据'[地点])。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-16 19:51 , Processed in 0.035114 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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