
-----精选段落-----
第4章通过应用与组合,提升函数的威力
在单元格 A2做出这种处理的是下面的函数公式。
=MATCH(A1,$F$1:$I$1,0)
MATCH 函数中第一参数指定的值,会导出在第二参数指定范围中位于第几位的数字。第三参数基本上“只要输入0就行了”。
在图中,将单元格 A2的公式一直复制粘贴到 D2。因为第一参数不做绝对引用,单元格 B2里被复制粘贴的公式中的第一参数为 B1,单元格 C2里被复制粘贴的公式的第一参数为 C1,D2中则是 D1。
第二参数限定了纵列或横行的范围。
▲指定纵列的范围
第一参数指定的值为在此范围内的上数第几行。
▲指定横行的范围
第一参数指定的值为在此范围内左数第几列。
单元格范围限定为 F1:I1,则呈现如下状态:
单元格 A1即“商品名”位于左数第2个
能够在单元格中显示数字2、4、3、1,是因为 MATCH 函数的处理。
在 VLOOKUP 函数的第三参数中加入 MATCH 函数,即使“输入表”与“负责部分”的项目的排列顺序不同,也能够通过 MATCH 函数取得“‘输入表’的各项目名在‘负责部分’下位于第几列”的数字,把这样的结构嵌入 VLOOKUP 函数第三参数中就能够解决顺序不同的问题。在输入表的单元格 C3,请输入以下公式:
=VLOOKUP($B3,$I:$N,MATCH(C$2,$I$2:$N$2,0),0)
然后复制到整个表格,画面则显示如下:
在单元格 C3中输入=VLOOKUP($B3,$I:$N,MATCH(C$2,$I$2:$N$2,0),0)并复制粘贴至全表
分析 MATCH 函数的处理
可能乍一看上述的公式很复杂,接下来我们来仔细分析一下。关键在于理解嵌入 VLOOKUP 函数第三参数的 MATCH 函数是如何发挥作用的。
MATCH(C$2,$I$2:$N$2,0)
这个公式得出的数字指向的是,第一参数指定的单元格 C2的值(即商品名的值)位于第二参数指定范围($I$2:$N$2)的左数第几个。在这一例子中为数字2,它与单元格 C3中以 B3的值(数字1)为检索值的 VLOOKUP 函数里,检索范围 I:N 从左数第几列的对应数字是一致的。
将输有单元格 C3内容的单元格一致复制粘贴到 G6,为了不让参照项移位,需要设定绝对引用。
在有多个相同检索值的工作表中使用 VLOOKUP 函数的技巧
VLOOKUP 函数会以最初达成一致的检索值单元格作为对象
在 A 列中重复输入了同一家客户公司的名称,B 列中则为相应的负责人的名字。
如果以 A 列和 B 列中的数据为基础,想要在 E 列中按顺序输入相应的负责人,这时使用 VLOOKUP 函数可能会无法得到想要的结果。我们来实际操作一下。
在单元格 E1中输入以下公式:
=VLOOKUP(D2,A:B,2,0)
将单元格 E1中的公式一直复制粘贴到第7行。
E 列中的相同的公司对应同一名负责人。例如,ABC 股份有限公司,原本是按铃木、田中、加藤这样的顺序排列,而现在全部变为了“铃木”。
像这样检索值存在重复的情况,VLOOKUP 函数会以从上数、与起始处一致的检索值的单元格为对象来处理数据。单元格 E2、E3、E4也同样如此,都以“ABC 股份有限公司”为检索值,在作为检索范围的 A 列中以最初的单元格 A2为对象运行 VLOOKUP 函数,所以会返回“铃木”这个值。
无重复状态下应加工后再处理
为了解决这个问题,我们可以把有重复数据的 A 列和 D 列中的数据“加工”成唯一的状态,也就是该列下无重复的状态。这里,我们需要重新追加操作用的数据列,再进行处理。
这个方法的原理是,给重复的客户公司名称标上不同的固定编号。
首先,在各个表的左侧分别追加2列,作操作用。
表格左侧分别追加2列,供操作用
按照以下步骤,给相同客户公司名称的每个数据分别标上编号。每个公式引用的哪个单元格,进行了怎样的处理,我们一边看一边分析。
在单元格 A2输入以下公式,一直复制粘贴到第7行。
=COUNTIF($C$2:C2,C2)
※C 列的客户公司名称标上数字
同样地,单元格 F2输入下列公式,一直复制粘贴到第7行。
=COUNTIF($H$2:H2,H2)
※H 列的客户公司名称标上数字
在单元格 B2中输入以下结合了固定编号和客户公司名称的公式,一直复制粘贴到第7行。
=A2&C2
同样地,在单元格 G2输入下列公式,一直复制粘贴到第7行。
=F2&H2
做完以上步骤,在 I 列输入下列 VLOOKUP 函数后,目标单元格中就会自动显示相应的负责人了。
=VLOOKUP(G2,B:D,3,0)
显示个别对应的负责人名称
这个方法的关键在于,用 COUNTIF 函数给每个数据设定编号(出现次数),通过编号与检索值得到新的固定检索值,并将其嵌入 VLOOKUP 函数中,由此就能得出正确结果了。
是否能用 VLOOKUP 函数获得检索列左侧的数值?
VLOOKUP 函数下,无法取得检索列左侧的数值
VLOOKUP 函数可以说是 Excel 中最重要的函数,这里让我们再来看看其具体的公式和功能。
【公式】
=VLOOKUP(检索值,检索范围,列数,0)
【功能】
在检索范围最左一列中查找与检索值相同的单元格,然后在该单元格中返回第三参数指定的列数中的某个单元格的值。
“从检索范围的最左边的列返回到第三参数指定的列数中的某个单元格的值”,也就是“返回位于该列右侧的值”。