ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 请问dax是否有vlookup近似匹配公式

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-9-9 22:27 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
各位大大,

请问pb中是否有和excel相同之近似匹配公式或用法,

VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])之[range_lookup]=1,


因为常常需要匹配参数表,如果在pb中也可以像excel一样,可以省去很多if的公式

TA的精华主题

TA的得分主题

发表于 2020-9-10 04:14 | 显示全部楼层
是想问PowerPivot或者Power BI吧?这个问题有点笼统,能实现VLOOKUP功能的函数太多了,FILTER, RELATED/RELATEDTABLE, LOOKUPVALUE, INTERSECT, TREATAS等等,各有各的神通。
VLOOKUP能够实现不同区域/表间数据的匹配查询,而PP/PBI所应用的DATA MODEL就是为数据间的关联而生的,(理想的星型模型中)表与表之间天然就有关系,哪怕是最简单的选择某一个值,与之关联的数据也就自然被筛选出来了。

DAX或者说是Tabular data model是个神奇的玩意,有着不同于EXCEL或者说是“基于行”的思维模式,入坑吧,你会爱上它的

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-9-10 23:08 来自手机 | 显示全部楼层
ThxAlot 发表于 2020-9-10 04:14
是想问PowerPivot或者Power BI吧?这个问题有点笼统,能实现VLOOKUP功能的函数太多了,FILTER, RELATED/REL ...

related的用法比较像是精確匹配,即[range_lookup]=0,但當要匹配不是1對1,是範圍查找時,要如何處理呢?如數值為0-9時,對應100;數值為10-20,對應200…,以此類推

TA的精华主题

TA的得分主题

发表于 2020-9-11 08:38 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
一般这种情况设一个参数表,应该可以用CALCULATE解决。但还是要看具体需求,不能笼统的定义为匹配的问题。建议上传具体附件。

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-9-11 18:14 | 显示全部楼层
onthetrip 发表于 2020-9-11 08:38
一般这种情况设一个参数表,应该可以用CALCULATE解决。但还是要看具体需求,不能笼统的定义为匹配的问题。 ...

范例如下
如果有明细要依参数表进行模糊匹配,不知在PB中要使用何公式?
范例.png

范例.7z

7.77 KB, 下载次数: 8

TA的精华主题

TA的得分主题

发表于 2020-9-11 20:25 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
chou680702 发表于 2020-9-11 18:14
范例如下
如果有明细要依参数表进行模糊匹配,不知在PB中要使用何公式?

在PB中的语境下,用“筛选”比“匹配”更加确切,一切DAX公式的计算都是在“筛选”进行完成后得到的结果。对于你的模拟数据,可以这么处理:
1. 将“参数表”转化成如下形式,以便进行后续金额比较的处理,这一步可以在PQ里完成

image.png

2. 将销售数据表和变形后的参数表导入PQ或者PBI,编写度量值进行计算
  1. 比率:=CALCULATE (
  2.     MAX ( Segmt[奖金比率] ),
  3.     FILTER (
  4.         Segmt,
  5.         MAX ( Sales[销售量] ) >= Segmt[下限]
  6.             && MAX ( Sales[销售量] ) < Segmt[上限]
  7.     )
  8. )
复制代码
image.png

范例.rar

66.06 KB, 下载次数: 6

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-9-11 21:24 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 chou680702 于 2020-9-12 05:28 编辑
ThxAlot 发表于 2020-9-11 20:25
在PB中的语境下,用“筛选”比“匹配”更加确切,一切DAX公式的计算都是在“筛选”进行完成后得到的结果 ...


谢谢,这正是我需要的答案
但有2個小问题请教﹕
filter一定要用吗?用不用的差异在什麼地方
&&是否与and()公式用法一样?

TA的精华主题

TA的得分主题

发表于 2020-9-12 03:43 | 显示全部楼层
chou680702 发表于 2020-9-11 21:24
谢谢,这正是我需要的答案
但有2個小问题请教﹕
filter一定要用吗?用不用的差异在什麼地方

1. 我倒是没想出不用filter的方法来,等其他高人来解答这个问题;顺便提供另一种算法
  1. 比率 =
  2. MAXX (
  3.     FILTER (
  4.         Segmt,
  5.         Segmt[下限] <= MAX ( Sales[销售量] )
  6.             && Segmt[上限] > MAX ( Sales[销售量] )
  7.     ),
  8.     Segmt[奖金比率]
  9. )
复制代码
2. DAX中的AND/OR函数都只能接收两个参数,所以一般都推荐使用&&、||运算符以避免使用AND/OR嵌套公式。

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-9-12 08:30 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
ThxAlot 发表于 2020-9-12 03:43
1. 我倒是没想出不用filter的方法来,等其他高人来解答这个问题;顺便提供另一种算法
2. DAX中的AND/OR ...

如果&&改用*、||改用+取代,也行吗?

TA的精华主题

TA的得分主题

发表于 2020-9-12 09:57 | 显示全部楼层
本帖最后由 libo5563 于 2020-9-12 10:06 编辑

不改参数表结构,用这两个试试,道理都一样的
1111.jpg
2.jpg

评分

1

查看全部评分

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

本版积分规则

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

GMT+8, 2024-11-15 15:30 , Processed in 0.039015 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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