很多人都在争论到底是VLOOKUP函数好,还是INDEX+MATCH函数组合更胜一筹,为此,专门向专家征求了意见,我们看看专家们怎么说。
很多人都在争论到底是VLOOKUP函数好,还是INDEX+MATCH函数组合更胜一筹,为此,专门向专家征求了意见,我们看看专家们怎么说。
Bill Jelen:
毫无疑问,INDEX+MATCH组合比VLOOKUP更灵活。
如果你找到100个知道并使用VLOOKUP的人,这些人中仅3%的人熟悉INDEX+MATCH组合。
我的目标是构建其他人能够理解的电子表格,因此对于我来说VLOOKUP胜出。
然而,如果我必须处理12列的VLOOKUP(1月、2月、3月、…、12月),那么我建议使用1个MATCH和12个INDEX公式。
Ken Puls:
VLOOKUP是在Excel中要学习的最重要的函数。
它具有Excel可以提供的所有参数,包括单元格区域、数值、布尔逻辑和99%错误默认值。如果用户能够掌握这个函数,那么他们可以弄通Excel中的任何函数。
尽管如此,INDEX+MATCH更强大且更快。对于那些已经掌握了VLOOKUP的人来说,要比没有背景知识的人更容易学习INDEX+MATCH。
Purna R. Duggirala:
对于小数据集(几万或更少),使用哪一个并不重要,主要看你喜欢用哪个。
对于更大的数据集,看看你是否可以使用数据透视表或具有数据模型功能的PowerPivot。
如果对于大型数据集必须使用公式,那么使用MATCH获取指向所需信息的行的指针,并使用INDEX来获取数据。
Sumit Bansal:
我是INDEX+MATCH的忠实爱好者,喜欢它们超过了VLOOKUP。
INDEX+MATCH的强大组合让我能够完成比VLOOKUP更多的事情(诸如查找值的左侧进行查找)。
虽然我偏爱INDEX+MATCH,但是在我的在线培训和面对面培训中,我总是首先向人们介绍VLOOKUP。VLOOKUP更容易学习且更受欢迎。
Oz du Soleil:
这已经成为Excel社区的正式争论版本,很多的话题、很多的证据、很多的事实、但很少能够说服。
INDEX+MATCH优于VLOOKUP的观点已确立。然而,通常来说,优点是无关紧要的。例如:
包含50行和5列数据的单元格区域,需要从200行和6列的查找单元格区域中获取数据;在获取数据后,要复制/粘贴为值。没有什么是动态的。
在这种情况下,我使用VLOOKUP并跳过了INDEX+MATCH的语法和众多括号。
另外,我可以跳过VLOOKUP并使用Left Outer Join。
在我的工作中,INDEX+MATCH+MATCH已经证明比INDEX+MATCH更有价值。
我的底线是:这些只是工具,我的目的是完成任务。
如果家里有苍蝇飞,我会使用报纸、鞋子或纸袋消灭它。我不会开车到商店去购买适当的灭苍蝇药。目标是什么?消灭苍蝇。
VLOOKUP杀死了苍蝇!
Jon Acampora:
我喜欢VLOOKUP,但INDEX+MATCH是更好的解决方案,因为它不太容易出错。INDEX+MATCH与VLOOKUP相比有两大好处:
INDEX+MATCH允许在查找列和返回列之间插入列,而无需修改公式。
可以使用INDEX+MATCH返回查找列左侧列中的值,这不能使用标准的VLOOKUP公式来完成。
Mynda Treacy:
我个人认为它们不能相互比较,不能认为一个比另一个更好。
VLOOKUP是一个很好的适用于第一个学习的函数,它相对容易理解且非常强大。由于这些原因,它总是一个很棒的函数。
INDEX+MATCH能够克服VLOOKUP的一些局限,特别是向左查找,但是更复杂,可能令初学者望而生畏。
我通常建议人们在掌握了VLOOKUP后再学习INDEX+MATCH。
Tom Urtis:
这取决于你正在查找什么,期望公式返回什么,对Excel嵌套函数的熟悉程度,以及如果关心执行时间的细微差别(INDEX+MATCH更快),这是在非常大的运算项目中需要值得注意的。
VLOOKUP的语法是带有4个参数(其中一个是可选的)的单函数结构,对于全世界数百万工作中需要基本查找工具的Excel用户来说,它是常用的函数。VLOOKUP在任一方向都能很好地工作:左侧查找值返回右侧数据,或者相反,使用嵌套的数组常量或CHOOSE函数。VBA的VLOOKUP工作表函数对于程序员来说是直观的。VLOOKUP和HLOOKUP对于基本的查找情形来说,是有用的函数。
组合INDEX和MATCH函数可以提供VLOOKUP能做的一切,甚至更多。查找能够比通用文本更复杂。查找值区分大小写、字符数量、第一个或最后一个数字、正数或负数、绝对值、部分字符串、行和列标题标签。如果使用VLOOKUP和HLOOKUP则不能有效地处理这些查找值。INDEX+MATCH提供了比VLOOKUP更灵活、更直接的构造语法,用于单元格区域引用编辑和复杂查找。公正地说,对于某些用户来说,理解INDEX+MATCH要比 VLOOKUP花更多时间,但是这组函数组合对于解决各种查找场景的价值不可低估,并且在我看来,它是更好的选择。
John Michaloudis:
INDEX+MATCH在查找数据左侧值时是更好的办法,这是使用VLOOKUP无法实现的!
同时,使用INDEX+MATCH获得结果的速度更快,并且不会减慢计算机的内存。
Brad Edgar:
我不得不说,INDEX+MATCH和VLOOKUP公式各有各的好处。这取决于正在处理的数据集以及是否需要执行多条件查找。
如果需要实现多条件查找,我使用INDEX+MATCH数组公式来获得我的结果。
如果在数据设置中,我试图从中查找值,返回列位于我的查找区域的左侧,我也使用INDEX+MATCH函数。
最后,如果我有一个标准的返回列位于查找列右侧的查找,那么我使用VLOOKUP公式,因为它容易使用。
Kasper Langmann:
VLOOKUP确实更容易学习,这是毫无疑问的。INDEX+MATCH是Excel中最强大的查找工具,因为它非常灵活且可靠,甚至适应工作表中大部分结构变化,将其应用于所有查找需求,甚至是多条件查找。
Jeff Lenning:
对于我来说,这取决于工作簿。
如果我试图返回的值是一个数字,那么使用SUMIFS。我知道这不是选择之一,也不是传统的查找函数。但是它有很大的好处,例如即使存储为不同的数据类型,它也会匹配等价的值,支持多种条件,并且在找不到匹配项时返回零而不是错误。
如果我试图返回的值是一个文本字符串,我可能会对反复使用的工作簿来使用INDEX+MATCH,这些工作簿会在每个周期更新一次,因为在插入新列时不太可能中断。
或者,如果这是一次性工作簿或者结构不太可能更新,我将使用VLOOKUP。但是,如果数据不包含重复项并包含数字键列,我使用SUMIFS作为VLOOKUP的第一个参数。
下一次你遇到查找任务,并且返回值是数字时,试一试SUMIFS,它充当了一个令人惊讶的查找函数。
Patricia McCarthy:
真实的故事。我丈夫和我花了整整一个晚上争论哪个更好——VLOOKUP或INDEX+MATCH。
我支持VLOOKUP而他支持另一个。他的主要观点是,使用INDEX+MATCH时不需要排序数据,而在使用VLOOKUP时则需要。
我个人更喜欢VLOOKUP,因为我觉得它更直观且更容易让人们了解它的工作原理。
许多人没有意识到,如果range_lookup函数为FALSE,那么不需要担心排序问题。
只要你控制你的“表”并且可以整理它以便于查找列在你想要的位置,那么VLOOKUP优于INDEX+MATCH。
有些人声称INDEX+MATCH速度更快,也许如果你正在浏览数百万条记录,你可能会注意到一些细微差别。
因此,我投票给VLOOKUP,使用FALSE作为参数range_lookup的值,并且联合IFERROR或IFNA函数来清理结果。
现在,我使用VLOOKUP而我的丈夫仍然不服气并使用INDEX+MATCH。
Kevin Lehrbass:
对于时间和耐心有限的偶尔使用Excel的用户,VLOOKUP函数可能是最佳选择。它是更容易去掌握的一个单独的函数。
然而,那些只需投入一点时间就可以理解如何组合INDEX和MATCH函数的人肯定会受益良多!
为什么?如果你学习了INDEX+MATCH,那么你将决不需要使用VLOOKUP或HVLOOKUP(由于某种原因,HLOOKUP使我恼火!)。
我们不要忘记,INDEX+MATCH可以很容易地查找左侧(VLOOKUP需要一个复杂的技巧来做到这一点)。
使用INDEX+MATCH通常效率更高(计算时间),据我的经验,使用INDEX+MATCH时发生的错误更少,因为直接引用查找和结果列(不需要索引号)。硬编码VLOOKUP中的列索引号是危险的!
除了学习数据透视表外,学习如何组合Excel的INDEX和 MATCH函数是你可能在Excel中学习的最好的东西之一。
Ben Currier:
一般来说,当数据正确设置为查找值在左侧时,我更偏爱VLOOKUP,但当处理除我自已之外由他人使用的任何电子表格时,我会作出例外处理。
INDEX+MATCH在可靠性方面更加强大,并且允许通过添加列来更改数据布局而不会影响公式。
然而,我发现那些不能熟练使用Excel的用户在使用公式时非常困难,并且更容易接受VLOOKUP。特别是需要由上级审查或向上级解释的内容时将可能使用VLOOKUP,即使它不是解决问题的理想方案。
Rick Grantham:
当你处于顶峰时,每个人都试图对你进行攻击。VLOOKUP的敌视者正在全力施展,他们是无情的。INDEX+MATCH速度更快、更性感、更好,做出了一个更加蓬松的煎蛋卷,等等。
啊。
要清楚,VLOOKUP的敌视者有一些好的观点。INDEX+MATCH至少与VLOOKUP一样快,如果有成千上万行/列,速度可能会更快。但是,如果你有更少的数据集…呃…这不是什么问题。但是,如果你的大型电子表格正在停顿中止,那么确定…试着替换你的VLOOOKUPS和INDEX+MATCH。
INDEX+MATCH的另一个优点是其多功能性。需要向左查找?想要从VLOOKUP源中删除列?错误…VLOOKUP不适合这些情形。有一些解决方案,但谁需要这种副作用?不是我。
但请记住…每个人都知道如何处理VLOOKUP。每个人。
你几乎可以保证你可以将Excel模型交给任何人,并且在中断或需要更新时,他们可以阅读/理解你的逻辑。另外,它是非常容易、简单。
ExcelCampus的Jon Acampora将VLOOKUP与星巴克的咖啡进行比较。你沿着左边的菜单走下去,直到你找到你的拿铁,然后你向右走几列,直到找到你的位置,然后哇哈…有你的价格。每个人都能理解,因为我们习惯于在日常生活中消费数据列。
我的想法呢?好,我有点老套。我整天使用VLOOKUP。相当简单,我知道我递交电子表格给任何人,他们都能理解我的逻辑。这是最常见的事情。但是,如果我的电子表格开始减慢速度,或者需要执行更复杂的查找(向左查找等),那么我选择INDEX+MATCH。
因此,我首选VLOOKUP,然后如果需要的话是INDEX+MATCH。
Niels Weterings:
许多人知道如何使用Excel中的VLOOKUP函数,但是很少人知道如何使用INDEX+MATCH函数。
我建议大家先掌握VLOOKUP,它更容易理解。然而,VLOOKUP函数的缺点是它仅能查找表左侧的值。
因此,我们会教大家如何使用INDEX+MATCH函数来查找不在表格最左侧列中的值。
Liam Bastick:
我真的不推荐VLOOKUP和HLOOKUP。自已作为一名会计师,我知道这个行业喜欢这些函数,但它们并不总是按预期那样工作。
另一方面,LOOKUP在金融建模领域确实具有是一个有用的函数。
我更喜欢更通用的INDEX+MATCH,它是Excel中最常见和最强大的函数组合之一。事实上,INDEX+MATCH的理念甚至可以扩展。
Gasper Kamensek:
如果这是一场谁最流行的比赛,那么VLOOKUP赢了,因为它比INDEX+MATCH使用得更多。
但是如果这是一场真正的比赛,那么INDEX+MATCH组合将把奖杯带回家,因为它可以做的事,VLOOKUP不能,例如VLOOKUP不能返回查找列左侧的数据,或者返回与查找表不在同一个“表”中的结果。
然而,我非常喜欢VLOOKUP+MATCH组合进行“二维”查找。
Charles Williams:
问题不是哪个更好,而是它们都有严重的和众所周知的缺点。
VLOOKUP更简单,但INDEX+MATCH更灵活,但使用更复杂。
FastExcel的MEMLOOKUP和AVLOOKUP2+AMATCH2系列速度更快,功能更强大,使用起来更简单。
Onur Yilmaz:
两者都有优势,这取决于你的情形。
就我个人而言,我基于我正在处理的工作簿的复杂性和作用来作出决定。编写VLOOKUP是快速的和容易的。如果是一项小型的学习,我可能使用VLOOKUP。
然而,如果我正在创建复杂模板或者开发大型财务模型,那么我更喜欢使用INDEX+MATCH。因为它更可靠(独立于列号工作),所以更快且更可靠。
有时我也使用VLOOKUP+MATCH组合。
Annie Cushing:
正如我在某个贴子中所解释的,INDEX+MATCH比VLOOKUP更灵活。但是,在我看来,VLOOKUP对于新手来说更容易。
Jon Peltier:
我不使用VLOOKUP。
当我第一次需要在Excel单元格区域中查找某些东西时,我需要从二维表中找到一个值,因此我需要更灵活的东西。
我很快学习了关于INDEX(MATCH,MATCH),其中一个MATCH获取右侧行,另一个获取右侧列。正是这种增加的维度,在任何行或列中查找匹配的能力,使INDEX(MATCH)更胜一筹。
Jon Wittwer:
INDEX+MATCH更强大且灵活。
我使用INDEX+MATCH取代VLOOKUP的理由是VLOOKUP需要查找区域位于表的左侧。
MATCH函数中的lookup_array甚至不必与INDEX函数中的返回数组或引用位于同一个表或工作表中。
MATCH只是返回一个数字,你可以将该数字用于[row_num]或者[column_num]或者[area_num],或者使用2个MATCH函数用于二维查找,或者3个MATCH函数用于三维查找。
Jacob Hilderbrand:
VLOOKUP更简单,如果查找列位置左侧,那么我使用它。
如果不是,那么我使用INDEX+MATCH以便我能够从任何列中获取匹配。
Jan Karel Pieterse:
VLOOKUP更好,因为它对初学者到中级Excel用户来说都更容易理解。
INDEX+MATCH更好,因为如果你在查找表中插入或删除列并允许查找列在表中的任何位置,它都会继续工作。在需要查找同一行的多个列,它也可以更高效,只要将MATCH放置在单独的列中并引用来自具有INDEX函数的每列中的MATCH结果。
Charley Kyd:
INDEX+MATCH更好:
它永远不会比VLOOKUP慢,而且可以更快。
它返回一个引用而不是值,允许我们用于更多的目的。
它不关心结果数组与查找数组的关系。
它可以从已排序为最大到最小的数据返回近似匹配。
Chris Chua:
由于它是一个单独的函数,我很欣赏VLOOKUP函数。我非常在乎简单性,任何查看VLOOKUP函数的人都会知道你正在做什么。
然而,如果我为其他人创建模型,则可以使用VLOOKUP+MATCH作为动态列引用。
最后,如果需要更强大的能力来解决Excel应用疑难,那么INDEX+MATCH提供了灵活性和实现能力。
学习何时使用VLOOKUP、VLOOKUP+MATCH和INDEX+MATCH本身也是一项技能!