东北软件 > macOS操作系统 >

多表查询无忧 一技之长轻松驾驭!

时间:

查询引用这一概念,对于我们来说并不陌生。在以往的一些案例中,我们已经详细地讨论了许多相关的方法。对于那些尚未掌握这些方法的读者,建议您查阅历史消息中的相关文章。然而,今天我要分享的是关于多表查询引用的内容,其表格结构如下所示:

我们有一个Excel工作簿,其中包含了四张工作表,分别命名为“人事部”、“销售部”、“财务部”以及“查询表”。我们的目标是根据“查询表”中的“员工姓名”这一字段,查询出员工的所属部门和月薪。具体来说,我们需要查询员工的“部门”和“月薪”。

这一查询看似简单,但当我们深入分析时,会发现一些有趣的现象。例如,“小乔”和“黄盖”属于“人事部”;“曹操”和“诸葛亮”则属于销售部;“司马懿”、“甘夫人”、“孙尚香”则属于生产部。然而,在基础信息表中,并没有直接列出“部门”这一列。那么,我们该如何实现这一查询呢?别着急,让我们先来学习两个关键的函数。

一、Indirect函数

功能:该函数能够根据文本字符串指定的引用返回相应的值。此函数会立即对引用进行计算,并显示其内容。如果需要更改公式中对单元格的引用,而不更改公式本身,可以使用Indirect函数。

语法结构:=Indirect(单元格引用,[单元格引用样式]);“单元格引用样式”分为A1-样式和R1C1-样式。

1.如果“单元格引用”是对另一个工作簿的引用(外部引用),则此工作簿必须被打开,否则返回错误值#REF!。

2.“单元格引用样式”为逻辑值,如果为TRUE或省略,则为A1-样式的引用;否则为R1C1-样式的引用。

应用技巧:

1.函数的参数:单元格名称或符合单元格地址的字符串。

2.函数的返回值:参数所指定的单元格的值。

示例,如下表:

1.在C3单元格中输入公式:=INDIRECT('a6'),则返回值为:A3。

解读:在公式中,参数给定的即是字符串,也符合单元格地址格式,所以直接对参数代表的单元格的值进行引用。

2.在C3单元格中输入公式:=INDIRECT(A6),则返回值为:1。

解读:此时的返回值为1,即A3单元格的值,因为参数指定的A6,在这里A6是一个单元格的地址,而非字符串,所以要取出单元格A6(也就是字符串“A3”)的值,然后对取出的地址(A3)进行取值得到1。

3.在C3单元格中输入公式:=INDIRECT(A3),则返回值:#REF!。

解读:Indirect函数的功能为:返回文本字符串所指定的引用,而公式=INDIRECT(A3)中,A3单元格的值为1,没有一个地址为1的单元格,所以会报错。

4.在C3单元格中输入公式:=INDIRECT(B3&A5),则返回值为1。

解读:虽然公式参数中有“&”连接字符,但参数仍然不是字符串,更不是单元格地址或者名称,首先要做的就是将参数转化成字符串格式的地址或者名称。B3单元格的值为“A”,A5单元格的值为3,通过&连接后的字符串为“A3”,因此同时也就转化成了=INDIRECT('A3'),所以最终的返回值为1。

二、Countif函数

功能:该函数用于计算指定区域中满足给定条件的单元格个数。

语法结构:=Countif(条件范围,条件)。

目的:计算相应“学历”的人数。

方法:

在目标单元格中输入公式:=COUNTIF(F3:F12,J3)。

三、Lookup函数

功能:从单行或单列或数组中查找符合指定条件的值。

语法结构:=Lookup(查询值,查询值所在的区域或数组,[返回值所在的区域或数组])。

目的:根据员工姓名查询对应的“月薪”。

方法:

在目标单元格中输入公式:=LOOKUP(1,0/(B3:B12=J3),G3:G12)。

四、Vlookup函数

功能:搜索表区域满足条件的元素,确定待检索单元格在区域中的行号后,再进一步返回选定单元格的值。

语法结构:=Vlookup(查询值,查询值所在的数据范围,返回值的相对列数,[匹配模式])。

目的:根据员工姓名查询对应的“月薪”。

方法:

在目标单元格中输入公式:=VLOOKUP(J3,B3:G12,6,0)。

五、多表查询

(一)判断员工所属部门。

在目标单元格中输入公式:=COUNTIF(INDIRECT({'人事部';'销售部';'生产部'}&'!b:b',1),B3)。

解读:选取公式,按F9键之后,可返回一个数组{1;0;0},其中非0数字1的位置就是员工所在工作表的位置,即“人事部”的工作表中。

(二)返回员工所属部门名称。

在目标单元格中输入公式:=LOOKUP(1,0/COUNTIF(INDIRECT({'人事部';'销售部';'生产部'}&'!b:b',1),B3),{'人事部';'销售部';'生产部'})。

解读:此用法为Lookup函数的经典用法,其实质还是向量形式。

(三)返回员工的月薪。

在目标单元格中输入公式:=VLOOKUP(B3,INDIRECT(C3&'!b:g',1),6,0)。

解读:此公式的重点在于INDIRECT(C3&'!b:g',1),其含义请参阅文章中Indirect部分的解读。