Power Query 系列 (09) - 合并查询,全面超越 VLookup 函数

VLookup 函数据说在 Excel 函数的使用频率排名前三,但这个函数也有不少局限性,Microsoft 推出了一个新的函数 XLookup 可以用于取代 VLookup。但 XLookup 目前还没有正式发布。处理多表连接,如果有多条件,之前我比较多的是用 MS Access 的查询,但现在有了 Power Query (PQ),在 Excel 中也能愉快的玩耍了。多条件连接准备放在下一篇。PQ 的查询表合并,实现将两个表横向合并,无论是界面友好性方面,还是功能上,都比 VLookup 强大太多。

举一个例子:现在有一个销售记录,需要从 Material Master 中获取物料的成本价和销售价:


这是 Excel VLookup 的典型场景,我们来看看 PQ 怎么实现。

从当前工作簿加载数据到 PQ

本篇介绍从 当前工作表导入数据到 PQ 的方法。在 Material Master 工作表中,选中数据区域,像下面这样:

然后同时按下 Ctrl + T,Excel 弹出“创建表” 对话框,将 A1:D4 这个区域 (Range) 变成一个 Table。Excel 的 Table 是和 Range 相对应的一个概念,在开发用 Excel Object 对象模型中,这个对象被称为 ListObject


点击数据区域任意单元格,Excel 会多出一个选项卡:【表设计】,切换到【表设计】,将表的名称改为 MaterialMasters。

用同样的方法根据 Sales Journals 工作表创建一个名为 SalesJournals 的表 (ListObject):


接下来,将 MaterialMasters 表和 SalesJournals 表中的数据加载到 PQ。选中 MaterialNasters 表中任意一个单元格,切换到【数据】选项卡:选择【获取数据】- 【自其他源】- 【自表格/区域】


表中的数据就被导入到 PQ,这是一从当前工作簿 (Current Workbook) 中加载数据到 PQ 最方便的方法。下面给出操作的动图:


由于后面不需要对 MaterialMaster 查询进行输出显示,所以在【关闭并上载】时,选择【关闭并上载至】:

PQ 将界面切回到 Excel 工作表,弹出【导入数据】对话框:


选择【仅创建连接】,点击确定按钮,“仅创建连接”选项控制 MaterialMasters 查询表的数据不被加载到工作表中。下面是动图:

合并查询

用同样的方法将表 SalesJournal 数据加载到 PQ,这样我们现在有了两个查询。选中 SalesJournals 查询,切换到【主页】,点击【合并查询】:

弹出【合并】对话框,选中 SalesJournal 表的 MaterialNo 字段,然后在中间第二个表中选择 MasterMaters 查询表,也选中第二个表MaterialNo 字段,作为两个表的关联条件。

在连接种类中,选择【左外部】,然后点击确定按钮。PQ 在 SalesJournal 查询表中新建了一个字段:


MaterialMaster 列是一个结构化列,结构化列的每个单元格包含结构化信息,比如 MaterialMaster 字段包含物料的多个信息。结构化列是 PQ 很重要特征,后面会专门写一篇结构化列的博客来介绍其用法。选中 MasterialMaster 字段任意一个单元格,显示区下面部分相应显示对应物料主数据的信息:


下面是合并查询的动图:


点击 MaterialMaster 列的【展开】图标,将 MaterialMaster 列进行展开 (expand):


只选择我们需要的 Cost 和 Price 两个字段:


点击确定按钮,获取 Price 和 Cost 的连接:


新建一列,计算每一行的利润:


完成后点击【关闭并上载】,数据加载至 Excel 工作表。

连接类型

合并查询中。两个表的连接类型有下面几种,相当于数据库中两个表的连接类型。熟悉数据库 SQL 语句的人一看就知道怎么回事。

各种连接的图解说明如下:


示例数据:

github

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 很抱歉,VLOOKUP函数只支持单一条件引用,不支持多条件引用。如果需要多条件引用,您可以使用其他函数,例如 INDEX 和 MATCH 函数结合使用,或者使用其他数据处理工具,如 Microsoft Power Query。 ### 回答2: VLOOKUP函数是Excel中非常常用的函数之一,它使得在一个表格中根据某个值查找数据变得非常方便。但是VLOOKUP函数一般只能根据一个条件来进行查找,如果需要根据多个条件进行引用,就需要借助其他函数来实现。 一种常用的方法是使用Excel的数组函数。首先在一个单元格中用数组公式来实现多个条件的匹配,例如使用SUMPRODUCT函数或者INDEX和MATCH函数结合。然后再在VLOOKUP函数引用该单元格的数值,从而实现多条件引用。 另一种方法是使用辅助列来记录满足多个条件的结果,然后在VLOOKUP函数引用这个辅助列。具体操作是,在数据表中加入一列用于记录满足条件的结果,然后使用IF函数或者IFERROR函数来判断满足条件的情况,并将结果记录在辅助列中。最后在VLOOKUP函数引用这个辅助列,就可以实现根据多个条件进行引用。 无论是使用数组函数还是辅助列的方法,都需要对Excel函数的使用较为熟悉,并且需要根据实际情况灵活运用。另外,多条件引用可能涉及到数据的动态更新或者复杂的逻辑判断,需要仔细考虑和处理,以确保准确性和可靠性。 综上所述,VLOOKUP函数可以实现多条件引用,但需要借助其他函数或者添加辅助列来实现。这需要根据具体情况来选择合适的方法,并考虑数据的更新和逻辑的复杂性。 ### 回答3: VLOOKUP函数是Excel中一个非常有用的函数,用于在数据中查找某个值,并返回该值所在行的其他数据。它常用于多条件引用,也就是根据多个条件来确定查找的值。 要在VLOOKUP函数中使用多条件引用,我们需要使用数组公式。首先,我们需要将要引用的条件和结果值存放在一个工作表中,然后使用多个IF函数将这些条件进行逐一匹配。假设我们要在工作表A中根据两个条件(条件1和条件2)来查找结果值。 首先,在工作表B中建立一个数据表格,将条件1和条件2放在第一列和第二列,将对应的结果值放在第三列。然后,在工作表A中选择将要存放结果的单元格,并输入如下公式: =VLOOKUP(条件1&条件2, 数据表格范围, 3, FALSE) 为了让这个公式正常工作,我们需要将其转换为数组公式,即在输入完公式后,按下CTRL+SHIFT+ENTER键。然后,公式会在选择的单元格中显示结果值。 要注意的是,多条件引用中的条件需要使用逻辑运算符(如AND或OR)进行连接。例如,条件1&条件2表示同时满足条件1和条件2。数据表格范围是指存放条件和结果的工作表B中的数据范围。 通过使用VLOOKUP函数的多条件引用,我们可以根据多个条件来查找并提取相应的数据。这在处理大量数据和进行复杂的数据分析时非常实用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值