VLOOKUP函数在图书发行中的应用
2020-04-09王硕
王硕
摘 要:文章通过介绍VLOOKUP函数的语法规则,并结合具体的应用实例,对VLOOKUP函数在图书发行中的数据批量查询功能进行详细讲解。熟练掌握VLOOKUP函数,可以帮助图书发行人员提高工作效率和确保数据的可靠性。
关键词:VLOOKUP函数;数据处理;批量查询;图书发行
1 VLOOKUP函数的优势
图书发行员,在日常发行工作中,数据查询是经常会遇到的工作内容。比如,在对账、统计库存、制作销售报表、做图书重印数据和书图目录等工作中,都会涉及数据查询。在这些工作中,数据量通常都较大,如果通过Excel中常用的“查找”(Ctrl+F)来进行,不仅效率低下、耗时耗力,而且准确性也不高[1]。
如果能够进行批量查询(又称“数据匹配”),则可以解决问题。在Excel中,VLOOKUP函数是进行数据批量查询的重要函数。熟练掌握VLOOKUP函数,既可以帮助图书发行员快速查询所需要的大量数据,提高图书发行员的工作效率,也可以极大提高数据的完整性与可靠性。
2 VLOOKUP函数功能简介
VLOOKUP函数是Excel中的纵向查询函数,英文为vertical lookup(垂直查询),所以VLOOKUP的含义是在垂直方向(列)上进行查询。VLOOKUP函数的工作原理是以Excel中的某一列为查询对象,在特定的查询区域内去查询该列所对应的某一列值(又称“返回值”),如图书的定价、作者、出版日期、发货实洋、发货折扣、销售数量等信息或数据。
VLOOKUP函数的语法表达式为:
=VLOOKUP(Lookup_value,Table_array,Col_index_num,Range_lookup)
如果用通俗的语言来解释,可以理解语法表达式为:
=VLOOKUP(查询对象,查询区域,查询区域中包含返回值的列的列序号,查寻方式)
VLOOKUP函数各个参数的意义:(1)Lookup_value,表示要查找的数值,即查询对象,一般情况下指的是Excel中的某一列。(2)Table_array,表示查询对象所在的数据表范围,即查询区域。在实际应用中,有两点需要注意:第一,为了区分查询对象与查询区域所在的表,通常将此二张表分别放在Excel的不同Sheet中(注:放在同一个Sheet中也可以,但是不推荐使用,容易混淆)。第二,一个查询区域应至少包含两列,包含查询对象的列应位于包含返回值的列之前,假设包含查询对象的列是查询区域中的第1列,则可以用第2列、第3列或者更靠后的列来存放返回值(VLOOKUP函数只能检索出位于包含查询对象的列右侧的数据,是其局限之一)。(3)Col_index_num,表示查询对象在查询区域中的列序号,若该参数值为1,则返回查询区域第1列的值;参数值为2,则返回查询区域第2列的值,依此类推。一般情况下,由于第1列被用来作为包含查询对象的列,故该值通常大于等于2。(4)Range_lookup,是一个逻辑值,可以是“0”或者“1”。“0”表示查询方式为精确查询,如果找不到就会返回错误值“#N/A”;“1”表示模糊查询,先进行精确查询,如果找不到精确匹配的值,则返回近似值,如果再找不到,也会返回错误值“#N/A”。在实际操作中,通常将此参数填“0”,即使用精确查询的方式进行查询[2]。
3 VLOOKUP函数应用实例
以图书发行员对账工作内容为例,探讨VLOOKUP函数的具体应用(因本文主要是为了说明函数的使用,故数据做了简化处理)。
首先,某图书发行员收到经销商发来的对账单,包含“批销单号”和“收货实洋”两列数据,如图1所示,将此表命名为“经销商对账单”。现在该图书发行员要核对经销商所提供的每一个批销单的收货实洋与本社的发货实洋是否一致。“经销商对账单”中的第1列(A列),即“批销单号”,是本例的查询对象。
其次,該发行员将本社ERP系统中的发货清单导出放入一个新建的Sheet,并将其命名为“我社发货数据”,该表即为查询区域。“我社发货数据”包含了两列数据,第1列(A列)为“单据编号”,第2列(B列)为“发货实洋”。此时,该表中的第1列为包含查询对象的列,即“单据编号”列是与“经销商对账单”的“批销单号”列相对应,第2列是包含返回值的列,本例中的返回值指的就是该发行员本社的发货实洋。
再次,在“经销商对账单”中,新增一列(列C)并将其命名为“我社实洋”(C1),为将要用VLOOKUP函数进行操作的列。在C2单元格中,输入“=VLOOKUP”后,按回车键,即可弹出VLOOKUP函数的操作框。函数的参数设置情况,如图3所示。
Lookup_value:A:A(含义:查询对象为A列)
Table_array:我社发货数据!A:B(含义:查询区域为“我社发货数据”Sheet中的A列和B列)
Col_index_num:2(含义:返回值位于查询区域中的第2列,即返回“发货实洋”列的值,亦即B列为返回值)
Range_lookup:0(含义:精确查询)
在函数参数设置完成之后,发现C2单元格中的函数表达式自动变为:
=VLOOKUP(A:A,我社发货数据!A:B,2,0)
点击函数操作框下方的“确定”按钮,在C2单元格中返回了通过VLOOKUP函数查询出的计算结果,即“我社实洋”为793.98,如图4所示。
将鼠标移动至C2单元格右下角,当鼠标由空心十字变成实心十字形状时,将鼠标下拉至C9单元格,可以将函数由C2单元格复制至C9单元格。于是,得到“经销商对账单”中每一个批销单号对应的“我社实洋”,如图5所示。
除了C5单元格中返回了“#N/A”之外,C2至C9单元格都返回了具体的数值。C5单元格中返回的是“#N/A”错误值,表明在查询区域(表“我社发货数据”)的“单据编号”一列中,没有查询到“PXD1555”单号。即在双方的发货往来中,经销商的对账单显示其收到了“PXD1555”这票货,但是出版社方面并未发出过此单号的货。因此,在对账时,图书发行员应与经销商进行特别的沟通,从而进一步找出问题出现的具体原因。
為了进一步确认对账结果是否准确,首先,可以在“经销商对账单”中再增加一个辅助列,用以核对双方对账结果是否一致。其次,可将D列命名为“对账差异”(D1),并在D2单元格中输入“=B2-C2”,若函数计算结果为“0”,则表明无差异;若函数计算结果不为“0”,则表示有差异,需要进一步核查。最后,将公式由D2单元格复制至D9单元格,可以得出具体的对账差异情况,如图6所示。
如本文所述,D5中的“#N/A”是由于VLOOKUP函数匹配不出所致。而D9单元格中的“-50.7”则表示虽然能匹配到“PXD3636”批销单号的发货实洋,但是出版社的发货实洋与经销商的收货实洋不一致,故需要对票货进行特别沟通[3]。
4 结语
本文以图书发行员的对账工作为例,讲解了VLOOKUP函数在图书发行工作中的具体应用。对于VLOOKUP函数,还有以下几点需要注意,限于篇幅,本文不作展开讲解。
(1)为避免匹配结果显示为“#N/A”,可以通过嵌套IFERROR函数将“#N/A”显示成想要显示的文字内容。例如,在本例中,可以将函数改写成:
=IFERROR(VLOOKUP(A:A,我社发货数据!A:B,2,0),“未匹配”)
(2)查询区域中包含查询对象的列,其数据格式一定要与查询对象的数据格式一致,否则无法得到正确的查询结果。在图书发行工作中,关于书号、身份证号等比较长的数字,尤其需要注意。
[参考文献]
[1]佚名.4G元年在线教育迎来爆发期[J].中小学信息技术教育,2014(1):5.
[2]李家乐.浅谈人工智能与电子信息技术在教育中的应用[J].教育现代化,2019(38):243-244.
[3]兰国帅,郭倩,魏家财,等.5G+智能技术:构筑“智能+”时代的智能教育新生态系统[J].远程教育杂志,2019(3):3-16.
Abstract:By introducing the syntax rules of VLOOKUP function and combining with a concrete application example, this paper explains in detail the data batch query function of VLOOKUP function in book distribution. Proficient in VLOOKUP function can help book publishers improve work efficiency and ensure the reliability of data.
Key words:VLOOKUP function; data processing; batch query; book distribution