我们在查找值时,通常会想到VLOOKUP函数,或者INDEX/MATCH函数。
VLOOKUP函数在指定区域的首列查找值,并返回指定列中对应的值。INDEX函数基于指定的行号列标从单元格区域中返回值。MATCH函数返回要查找的值的行号或列标。其中,INDEX函数和MATCH函数常常配合使用,MATCH函数负责查找指定值的行号列标,INDEX函数根据行号列标返回相应的值。
其实,如果想要获取的值是一个数字,可以考虑使用SUMIFS函数;而如果想要获取的值是其它类型,例如文本,则考虑使用传统的查找函数(VLOOKUP函数、INDEX函数、MATCH函数)。
下面是SUMIFS函数和VLOOKUP函数在查找值方面的对比。
1.如果找不到值,也就是说查找不到匹配的值,那么VLOOKUP函数会返回错误#N/A,这会影响引用该值的其它单元格或依赖该值的公式;而SUMIFS函数会返回0。
2.当存在多个相匹配的值时,VLOOKUP函数仅返回第一个相匹配的值,而SUMIFS函数返回所有匹配项之和。
3.当某值在一个单元格中作为数字类型存储,而在另一个单元格中作为文本字符串存储时,VLOOKUP不会将它们认为是相等的值,而SUMIFS函数不会这么讲究,将匹配相等的值,甚至作为不同数据类型存储。
4.当在查找区域中插入新列时,VLOOKUP函数不会更新并将返回一个不可预知的结果,而SUMIFS函数的参数sum_range在插入新列时会自动更新,即它是动态的且适应列的插入。
鉴于上述描述,当需要返回的值是数字时,我们可以考虑使用SUMIFS函数执行典型的使用传统查找函数所执行的任务。