前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >只是一个简单的分区间问题?No,我要告诉你更通用的表间数据匹配方法!

只是一个简单的分区间问题?No,我要告诉你更通用的表间数据匹配方法!

作者头像
大海Power
发布2021-08-30 11:38:22
1K0
发布2021-08-30 11:38:22
举报
文章被收录于专栏:用户8950297的专栏

小勤:用RELATED或LOOKUPVALUE函数都是精确匹配,但,有时候我想实现分区间的操作,怎么办?类似LOOKUP函数(或VLOOKUP函数的模糊匹配)功能,比如说有价格区间如下图所示:

怎么用来对如下产品表按单价进行区间划分?

大海:类似这种分区间的问题,我一般建议作为数据预处理的一部分,即放在Power Query里进行处理,在Power Pivot里即可以用于做相应的计算。所以,我在以前的Power Query方面的文章《PQ-M及函数:实现Excel中的lookup分段取值(如读取不同级别的提成比例)》里讲过类似的解法。

当然,这个问题在Power Pivot里也不难,公式如下:

代码语言:javascript
复制
单价区间 = CALCULATE(
    VALUES('价格区间'[区间]),
    FILTER(
        '价格区间',
        '价格区间'[单价_min]<='产品'[单价]
           &&'价格区间'[单价_max]>'产品'[单价]
    )
)

公式思路:

  1. 用产品的“单价”作为条件,对区间表里的单价范围(“单价_min”和“单价_max”)进行筛选(函数FILTER),得到产品单价归属的区间行;
  2. 通过VALUES函数取回对应的区间列的数据。

小勤:这个其实跟Power Query里的Table.SelectRows筛选得到某行然后再取值的思路很像啊。

大海:对的,实际思路都是差不多的,就是公式的写法不一样而已。同时,这种用具体条件筛选得到数据的方法,其实是表间数据匹配的最根本(通用)方法,你可以通过写各种各样的条件去把需要的数据筛选出来,然后取相应的值。比如类似RELATED函数的匹配:

代码语言:javascript
复制
cal_库存 = CALCULATE(
    VALUES('产品'[库存量]),
    FILTER(
        '产品',
        '产品'[产品名称]='订单明细'[产品]
    )
)

小勤:嗯。理解了,这的确是一个通用的思路。只是如果表间有关系,而条件有不复杂的,就可以直接用RELATED或LOOKUPVALUE等一个函数搞定了。

在线M函数快查及系列文章链接(建议复制到浏览器中打开后收藏使用):

https://app.powerbi.com/view?r=eyJrIjoiZDVhZDBlMTYtNDkzNC00YWFjLWFhMmMtMmI3NTk2Y2ZhMzc3IiwidCI6ImUxMTAyMjkxLTNkYzUtNDA1OC1iMDc3LWQ0YzU4YWJkMWRkOCIsImMiOjEwfQ%3D%3D

注意,因为公众号文章是不能直接通过点击的方式跳转到外部链接的,所以需要大家动手复制到浏览器中打开。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-07-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Excel到PowerBI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档