[已解决] 【power query/pivot】替代vlookup 实现模糊查找功能

  [复制链接]
查看274416 | 回复190 | 2020-8-5 08:18:49 | 显示全部楼层 |阅读模式
问题:
需要返回在左侧数据区域(A1:B13) 查找到的最接近 当前查找值(7)的结果。补充:
左侧数据区域 A1:B13
用来查找的指数7
返回的结果 0.7 (这个是 指数 6 所在行对应的数值部分)

之前在excel中可以使用 vlookup函数 实现模糊匹配,现在power query中如何实现呢?

9619011511071.png

9619011511072.rar (43.38 KB, 下载次数: 0)
回复

使用道具 举报

┋黑洞└ | 2020-8-5 08:25:49 | 显示全部楼层
我也想知道。过来占位。个人认为:这两个工具处理这个问题并不合适,即使能做到。
回复

使用道具 举报

dg_gaga | 2020-8-5 08:30:49 | 显示全部楼层
用IF试试,如果两列有相同值,就直接匹配,如果没有相同值,取比它小的值里的最大值,再进行匹配。
回复

使用道具 举报

Gacia.lopez | 2020-8-5 08:35:50 | 显示全部楼层
不用IF 也OK,直接用小于或等于当前值的最大值去匹配
回复

使用道具 举报

野仔 | 2020-8-5 08:40:50 | 显示全部楼层
let
  数据源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],
  查询表= Excel.CurrentWorkbook(){[Name="表3"]}[Content],
  结果=Table.AddColumn(查询表, "结果", each List.Last(Table.SelectRows(数据源,(x)=> x[指数]<=[指数1])[数值]))
in
  结果

9619011511073.rar (44.63 KB, 下载次数: 0)
回复

使用道具 举报

伟哥 | 2020-8-5 08:47:50 | 显示全部楼层
let
  数据源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],
  查询表= Excel.CurrentWorkbook ...


非常感谢,问题解决~
回复

使用道具 举报

longhorn | 2020-8-5 08:52:50 | 显示全部楼层
不用IF 也OK,直接用小于或等于当前值的最大值去匹配


思路是ok的,我主要是不会用PQ里的函数,[尴尬]
回复

使用道具 举报

yankai | 2020-8-5 08:57:51 | 显示全部楼层
let
  数据源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],
  查询表= Excel.CurrentWorkbook ...


大佬,我试了这种方法是可行的,遇到了一个新的问题:
我这边的数据有40万条,如果用PQ处理好,需要1分钟的样子,不过,我需要上传 加载到 Power Pivot模型,
加载的速度就很慢了,基本上是每秒2条。。。
不知该如何解决比较好?谢谢~
回复

使用道具 举报

lubaby726 | 2020-8-5 08:59:51 | 显示全部楼层
思路是ok的,我主要是不会用PQ里的函数,[尴尬]


PP里很EASY
回复

使用道具 举报

Fire | 2020-8-5 09:03:51 | 显示全部楼层
可以先缓存数据,然后再处理,参考Table.Buffer,或List.Buffer
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则