ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 请教,如图Filter(Values()这种组合有什么用,请帮帮忙

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-2-15 22:13 | 显示全部楼层 |阅读模式
本帖最后由 果子麦子 于 2023-2-15 22:15 编辑

  1. 计数:=CALCULATE(COUNTROWS('区域'),FILTER(VALUES('区域'[销售团队]),'区域'[销售团队]="大纺"))
复制代码

如图
问题1:把VALUES('区域'[销售团队])改成VALUES('区域')或者直接改成只保留'区域',结果好像一样啊,values这里除了把列转为表是不是没别的作用啊

问题2:Calculate的第一参数COUNTROWS('区域')是计数‘区域'这个表的行,第二参数FILTER(VALUES('区域'[销售团队]),'区域'[销售团队]="大纺")筛选的似乎是'区域'[销售团队]这一列的不重复值,Calculate为什么最后还是能得到'区域'整表中"大纺"团队的明细行数,而且还不是被Values删除重复后的行数

浅显的猜测还望指正:感觉上calculate的第二参数的结果对第一参数只是一个筛选映射的关系,实际计算的表仍是第一参数自带的,但是像CONCATENATEX(VALUES('区域'[省份]),'区域'[省份],","),这里的第一参数就不是把结果映射给Concatenatex而是直接取了第一个参数作为上下文筛选的一部分,唉,我这实在是理解不了了才强行这样解释的

请您帮我解答下疑问,万分感激!!
QQ截图20230215213405.png

测试数据.rar

174.94 KB, 下载次数: 2

TA的精华主题

TA的得分主题

发表于 2023-2-16 11:13 | 显示全部楼层
大佬学习DAX多久了啊感觉DAX好像也很有趣的样子,我猜测如果单纯行计数这样:计数:=CALCULATE(COUNTROWS('区域'),'区域'[销售团队]="大纺")就好了,如果要不重复计数,大概需要这样:计数:=COUNTROWS(DISTINCT(FILTER('区域','区域'[销售团队]="大纺")))

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-2-16 13:06 | 显示全部楼层
sayhi95 发表于 2023-2-16 11:13
大佬学习DAX多久了啊感觉DAX好像也很有趣的样子,我猜测如果单纯行计数这样:计数:=CALCULATE(COUNTR ...

谢谢帮助,我是初学不久,就是看到书上这么写也对那么写也对,又是上下文又是迭代又是隐含交叉筛选弯弯绕绕云里雾里太不直观了看不明白,所以想问问函数到底是什么机制,有没有个统一的解释,像countrows就是求和,values就是去重,怎么整合到一起有时候删除重复有时候又不是了苦恼

TA的精华主题

TA的得分主题

发表于 2023-2-16 13:43 | 显示全部楼层
果子麦子 发表于 2023-2-16 13:06
谢谢帮助,我是初学不久,就是看到书上这么写也对那么写也对,又是上下文又是迭代又是隐含交叉筛选弯 ...

看那些玄乎套子不如自已搞点数据测试结果自已去理解,那些个专业说法也是别人理解来,然后安个名字来说的,你自已去测试理解安个自已明白的名字就行了。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-2-16 14:45 | 显示全部楼层

不可能结果一样,一个是更改一列的筛选上下文,一个是更改整个表所有列的上的筛选上下文,之所以结果一样,只是碰巧而已。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-2-16 15:04 | 显示全部楼层
COUNTROWS就是计数,VALUES('表)是复制表,VALUES('表[列])是去重,这些相对都是简单的,CALCULATE就复杂了
它的完整写法一般都是:CALCULATE( 表达式, FILTER( ... ) ),当后面筛选器条件是简单的判断时,可以简化成CALCULATE( 表达式, xxx = xxxx ),它计算时是结合上下文,先进行将表按照筛选条件进行筛选,然后计算一参的表达式

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-6-3 08:18 , Processed in 0.041109 second(s), 20 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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