今天导表的时候出现了一个问题,v出来的数据并不完全正确,有一些明明在原表里面有数据的行,v出来的结果却是#N/A。探究以后发现,问题出在公式下拉上。
我发现我往下面的表格拉公式的时候,待查询表的区域也在随之变化,导致我原来虽然把所有的数据都选上了,但是下拉以后,有的数据就没被选中。在百度以后发现,这因为VLOOKUP函数没有进行绝对引用。
VLOOKUP函数的基本用法
示例:=VLOOKUP(D2,’[统计表.xlsx]Sheet1’!$A2:2:2:F$30,6,0)
结果:在名为统计表的Sheet1中的A2到F30区域,查找与D2数据相同的表格。如果有匹配的表格,则从该表格所在列数起,把该行第6列的数据返回;如果没有匹配的表格,则返回#N/A。
- D2表示需查询的单个表格所在位置
- A2表示待查询区域的左上表格,F30表示待查询区域的右下表格。也就是说,A1和F30分别为查询区域的左上角和左下角,二者确定了一个方形的表格区域
- 6表示如果在A这一列找到了跟D2一样的数据,需要从A开始数6列,把该结果返回
- 0表示精确查找,不写为大致查找,建议写
这个基本用法太难写了,用过的人肯定会用。不会用的人,还是百度一下用法吧……话说回来,不会用VLOOKUP函数的人也不会出现我这个问题了。。
相对引用和绝对引用
上面的示例就是用的绝对引用,里面用了四个$
。$
表示绝对引用。
什么意思呢?就是说在A前面加了$
,那么A就固定了,不管我怎么拉表,A都不会随之变化。
不用$
,那么就表示相对引用。
假如上面的示例公式改为:
=VLOOKUP(D2,’[统计表.xlsx]Sheet1’!A2:F30,6,0)
那么如果我进行公式下拉的操作,那么A2:F30也会随之变化。
比如,我把公式从D2拉到D3,那么待查询区域就会变成A3:F31。以此类推。
问题探究
所以我的错误就出在,我用VLOOKUP函数时,用了相对引用,导致下面的其他公式的查询区域发生变化。
试了几次之后我发现,在进行VLOOKUP函数操作时,
- 如果查询区域与需查询的数据格在同一个文件里面,那么系统会默认相对引用查询区域;(即
$A$2:$F$30
这样的格式) - 不在同一个文件里时,系统默认绝对引用查询区域。(即
A2:F30
这样的格式)
所以,如果在表格中使用VLOOKUP出现问题时,可能是因为没有绝对引用查询区域,这时只需要在公式里添加$
再下拉公式即可。