搜索
首页专题excelexcel中的vlookup-哪个公式最快?

今天,我们将使用几种不同的公式在Excel中进行vlookup,测量其计算速度并评估一致性,以便您可以选择获胜者。

在不同表中找到信息是Excel中最常见的任务之一。遗憾的是,在处理能力和灵活性方面,经典的Vlookup功能是臭名昭著的。难怪多年来,Excel用户提出了自己的解决方案,例如索引匹配公式。幸运的是,微软终于意识到Vlookup有太多的弱点,并发布了更强大的继任者Xlookup功能。那么,哪一个最适合使用?

如果您的桌子只有几十行,那么很可能有任何方法都足够快,您不会注意到差异。但是,如果以数千分的数量测量行的数量,则该功能的正确选择至关重要 - 性能的差异可能超过10倍!因此,让我们开始计时器,看看谁是最快的:)

源数据

在所有示例中,我们都使用以下数据集:

  • 主表包含500,000行
  • 查找表包含500行

我们的目标是匹配项目名称,并将价格从查找表中提取到主桌上。

excel中的vlookup-哪个公式最快?

对于每种方法,我们将输入C2中的公式,并通过C500001将其降低,以衡量计算50万单元格所需的时间。

自然,结果将取决于许多因素,例如您的CPU性能,RAM大小,Excel版本等。在本实验中,重要的不是绝对数字。比较了解每个公式的性能,它们的优势和缺点更为重要。

我们的示例假设您对功能具有基本知识,并且我们不会对其语法进行太多的态度。为了您的方便,包括指向深度教程的链接。

所有测试均在我的Dell笔记本电脑(Intel Core i5-8250U; RAM 16 GB)上进行,并使用Microsoft 365应用程序进行业务; Excel 32位,2011年版,Build 13415,Beta频道。我的同事在Excel 64位上也进行了相同的测试,一些结果截然不同!

vlookup公式

在查找和检索Excel中的匹配数据时,想到的第一个功能是旧的Vlookup。实际上,这并不是那么好,但是我们稍后再谈:)

vlookup(lookup_value,table_array,col_index_num,[range_lookup])

要将价格从查找表(E2:F501)提取到主表(A2:B500001),我们为我们的Vlookup公式定义了以下论点:

  • Lookup_value :B2-在查找表中搜索的值。
  • table_array :$ e $ 3:$ f $ 501-请注意,我们用$符号锁定参考文献,以便它们在复制公式时不会移动。
  • col_index_num :2-数据将从查找表的2列中检索。
  • range_lookup :false-查找确切的匹配。

完整的公式是:

=VLOOKUP(B2, $E$3:$F$501, 2, FALSE)

上面的公式转到C2,然后我们双击右下角的加号,以在整列上复制公式。在双击时刻,我们进行了秒表,并看到此计算需要6.6秒。

excel中的vlookup-哪个公式最快?

在实际工作表中进行Vookup时,许多人为Table_array提供了整个列,以适应未来可能的添加:

=VLOOKUP(B2, E:F, 2, FALSE)

它会影响性能吗?是的,确实如此。计算整列需要14.2秒。这很难相信,所以我进行了仔细检查。相同的结果 - 不到范围的速度一半。

除了迅速,您的配方还需要坚固耐用,对吗?遗憾的是,Vlookup无法夸耀可靠性和弹性。

vlookup限制

如前所述,Excel Vlookup具有许多令人讨厌的约束。最重要的是:

  • 看不到它的左边。 Vlookup函数只能在表数组的最左边列中查看,并从右侧返回信息。
  • 无法在色谱柱插入或缺失中幸存下来。由于返回列被指定为索引号,因此一旦将新列添加到或从表数组中删除后,vlookup公式就会停止工作。
  • 查找值限制为255个字符。

计算时间:范围-6.6秒;整列-14.2秒。

深度教程:初学者的Excel Vlookup示例

索引匹配公式

对于许多用户而言,Excel中的高级查找形式是神奇的索引匹配公式。以通用形式,看起来像这样:

index( return_column ,match( lookup_valuelookup_column ,0))

对于我们的数据集,公式采用此表格:

=INDEX($F$2:$F$501, MATCH(B2, $E$2:$E$501, 0))

excel中的vlookup-哪个公式最快?

与vlookup一样,请记住使用绝对参考进行查找和返回范围,以确保公式正确复制到下面的单元格。

在同一张纸上两张表的情况下,索引匹配的执行速度比Vlookup慢得多(在6.6秒中为8.9)。

但是,如果我们将查找表移至另一个工作表,则该公式开始工作得更快(〜5秒),这比Vlookup更好。

无论如何,索引匹配构成了很多重要的好处。

索引匹配优势

  • 可以从右到左看。是的,一个索引匹配公式不在乎查找列的位置,因为与Vlookup不同,它明确定义了查找范围而不是表数组。
  • 免疫柱插入和删除。使用索引匹配,您可以安全地添加和删除列,因为您指定了返回范围,而不是索引号。
  • 查找值的大小没有限制。虽然Vlookup限制为255个字符,但索引匹配在处理更长的字符串方面没有问题。
  • 可以使用上面链接的示例中的多个标准执行vlookup。
  • 可以进行二维查找,并在特定行和列的交点处返回值。

计算时间:范围-8.9秒;整列-17.7秒;从另一张纸-5.2秒。

深度教程:Excel中的索引匹配公式

偏移匹配公式

这是在Excel中垂直查找的另一个公式,这是Vookup的许多局限性:

offset( lookup_table ,match( lookup_value ,offset)( lookup_table ,0, n ,lows( lookup_table ),1),0),0)-1, m ,1,1)

在哪里:

  • n-是查找列偏移量,它指定了从表的开头移动到查找列的多少列。
  • M-是返回列偏移量,它确定要移动到返回列的列数量。

在我们的情况下,查找列偏移量(n)为0,因为我们在第一列中搜索,因此不需要偏移。返回列偏移量(M)为1,因为匹配项在第二列中,我们需要向右移动1列以获取它们:

=OFFSET($E$2:$F$501, MATCH(B2, OFFSET($E$2:$F$501, 0, 0, ROWS($E$2:$F$501), 1), 0) -1, 1, 1, 1)

excel中的vlookup-哪个公式最快?

与以前的解决方案相比,公式太麻烦了,对吗?但是,它比Vlookup或索引匹配快得多。计算50万行需要不到3秒!在整个列上,偏移量较慢-3.5秒。

=OFFSET(E:F, MATCH(B2, OFFSET(E:F, 0, 0, ROWS(E:F), 1), 0) -1, 1, 1, 1)

但是,在Excel 64位中,结果并不令人印象深刻 - 大约7.5秒。为什么?对Microsoft家伙的好问题:)

偏移匹配优势

除了速度外,该公式还有其他一些优点:

  • 可以执行左侧的Vlookup和上部Hlookup。
  • 可以根据列和行值进行双向查找。
  • 当插入或从查找表中删除列时,不会破裂。

偏移匹配缺陷

复杂的语法。

计算时间:范围-2.9秒;整列-3.5秒。

深入的教程

  • 用公式示例的偏移功能
  • 如何在Excel中使用匹配功能

Xlookup公式

Microsoft 365订户提供了一个新的功能更强大的功能,可以在其工作表中查找信息:

Xlookup(lookup_value,lookup_array,return_array,[match_mode],[search_mode],[if_not_found])

出于我们的目的,最后3个参数的默认值正常工作,因此我们仅指定所需的前3个参数。参数的名称是直观的,我相信您可以理解该公式而没有其他解释:

=XLOOKUP(B2, $E$2:$E$501, $F$2:$F$501)

excel中的vlookup-哪个公式最快?

Xlookup优势

与传统的Vlookup相比,Xlookup功能具有许多改进,例如:

  • 简化,更有意义的语法
  • 能够在任何方向上垂直和水平查找:右,左,底部或向上。
  • 对于排序数据,它具有特殊的二进制搜索模式,该模式比常规搜索快得多。
  • 以相反的顺序搜索以获取最后一次发生。
  • 能够返回多个值的能力。
  • 处理多个条件,如具有多个标准的Excel Xlookup中所述。
  • IN构建如果错误功能。

Xlookup缺陷

Xlookup仅在Excel 365和2021中可用。在Excel 2019,Excel 2016及更早版本中,不支持它。

现在,让我们看看这个新功能有多迅速。 11.2秒 - 非常令人失望:(

如果我们使用列参考而不是范围怎么办? =XLOOKUP(B2, E:E, F:F)

24.5秒。没有言语……几乎是Vlookup慢的两倍。

计算时间:范围-11.2秒;整列-24.1秒。

综合教程:Excel Xlookup功能与示例

excel表中的vlookup

您可能知道,可以通过使用表和列名代替单元格地址来引用Excel表中的数据。这称为结构化参考,我想知道它是否对计算速度有任何影响。

要检查一下,让我们将范围转换为表并重新测试我们的公式。

为方便起见,我们的表被命名为main_table (A1:C500001)和Lookup_table (E1:F5001)。

要创建表参考,请在第一个单元格(C2)中键入公式,选择要引用的单元格和范围,Excel将自动插入结构化的引用。

例如,以下是vlookup公式的样子:

=VLOOKUP([@Item], Lookup_table, 2, FALSE)

excel中的vlookup-哪个公式最快?

Excel表的一个重要特征是,一旦您进入一个单元格中的公式,它就会立即在同一列中的所有其他单元格中填充。此外,表本质上是动态的,并且会自动扩展,以包括您在表旁边输入的任何新数据。

在我们的表中,Vookup公式在2.3秒内计算出,索引在2.6秒内匹配,在2.7秒内取消和匹配,以及Xlookup在3.3秒内。如您所见,与范围相比,计算速度显着增加。

该公式在下面列出以供您参考:

=INDEX(Lookup_table[Price], MATCH([@Item], Lookup_table[Item], 0))

=OFFSET(Lookup_table, MATCH([@Item], OFFSET(Lookup_table, 0, 0, ROWS(Lookup_table), 1), 0) -1, 1, 1, 1)

=XLOOKUP([@Item], Lookup_table[Item], Lookup_table[Price])

有趣的是,即使有常规参考, Excel表也非常快。也就是说,如果您仅将第一个范围(A1:C500001)转换为表,并使用普通的Vlookup公式从查找范围中提取数据,则主表中的整列将在大约2.5秒内计算出来!

计算速度:根据公式从2.3到3.3秒。

端到端教程

  • 带有示例的excel表
  • Excel表中的结构化参考

带有动态阵列的vlookup

2020年1月发生的Excel 365计算引擎的开创性变化增加了对所谓动态阵列的支持。简而言之,这些是可重大的阵列,它们根据在一个单元中输入的公式自动计算并返回多个单元格。

关于动态阵列的最好的事情之一是,它们几乎可以与任何传统的Excel功能一起使用。对于我们的vlookup公式,看起来像这样:

=VLOOKUP(B2:B500001, E2:F500001, 2, FALSE)

与经典的Vlookup函数的不同之处在于,您为第一个参数提供了整个查找阵列,而不是单个查找值。因为仅在一个单元格中输入公式,因此您不必担心用绝对引用锁定范围。

excel中的vlookup-哪个公式最快?

至于性能,动态阵列的工作速度甚至比Excel表更快!几乎立即填充了一百万个细胞:1.8秒 - 非常令人印象深刻!

其他结果如下列出:

索引匹配 - 4.4秒

=INDEX(F2:F501, MATCH(B2:B500001, E2:E501, 0))

Xlookup -7.3秒

=XLOOKUP(B2:B500001, E2:E501, F2:F501)

嗯…Xlookup应该通过设计动态的Xlookup比旧功能差。诡异的!

计算速度:从1.8到7.3秒,具体取决于公式。

深度教程:Excel动态阵列,功能和公式

用电源查询拉比赛

为了完整,让我们对我们的任务 - 功率查询进行更多可能的解决方案。当然,将公式的计算与更新查询进行比较并不是很正确的,但是我只是好奇它更快:)

使用电源查询的详细步骤在下面提到的单独教程中描述。在这里,我们将评估结果:

excel中的vlookup-哪个公式最快?

合并的表已在8.5秒内从电源查询编辑器加载到Excel中。与公式不同,查询不会自动更新。在源数据中进行每次更改之后,您必须通过单击数据查询选项卡上的“刷新”按钮手动更新结果表。我们的500,000行在大约7秒内刷新。还不错,但是Excel公式可以做得更好。考虑到设置查询远非是一个单击的过程,这可能是我要使用的最后一种方法,只有在没有其他作用的情况下。

性能:加载到Excel 8.5秒;刷新7.6秒

深入的教程

  • 如何将桌子与Excel Power查询相结合
  • 如何在Excel中使用电源查询 - 实际示例
  • 初学者的Excel教程中的Power查询

额外的奖金:合并桌子向导

我们的Ultimate Suite的用户在其Excel工具箱中使用了另一个工具,可以根据一个共同的列合并两个表。让我们看看它与Excel的比较。

要运行合并表向导,请单击“ ABLE”数据选项卡上的合并两个表按钮。然后,只需遵循向导的步骤即可,它将带您完成整个过程。

excel中的vlookup-哪个公式最快?

好吧,该工具花了大约3秒钟才能完成。对于半百万唱片来说还不错!

excel中的vlookup-哪个公式最快?

仔细查看上面的消息,您可能会注意到并非找到所有匹配项。但是,这并不意味着该工具存在缺陷。它只是让您知道查找表中的某些项目(查找值)不存在。在这种情况下,vlookup函数返回#n/a错误,而合并表格向导会留下一个单元格空白。

性能:3.2秒

更多信息:在Excel中合并两个表

摘要和结论

如果您仔细阅读所有示例,那么您很可能已经得出了自己的结论。如果您跳过了详细信息,则可以在此比较表中找到一个快速摘要:

功能 计算速度以秒为单位
范围 整列 桌子 动态数组
vlookup 6.6 14.2 2.3 1.8
索引匹配 8.9 17.7 2.6 4.4
偏移匹配 2.9 3.5 2.7 -
xlookup 11.2 24.1 3.3 7.3
电源查询 8.5
合并表 3.2

下面,我根据测试结果进行了一些观察。也许,它们也对您有用。

  • 尽管有所有局限性和缺点,Vlookup的表现也很好,尤其是在动态阵列的情况下。
  • 索引匹配不如预期。对我来说,这似乎很奇怪,因为它处理了单个列,而不是像Vlookup这样的表格数组。
  • Xlookup具有许多惊人的功能,但在巨大的数据集上比Vlookup和索引匹配慢。希望Microsoft能够在将来的版本中提高其性能。
  • 偏移匹配是Excel 32位最快的匹配。但是由于其复杂的语法,有很大的机会犯错。另外,它与动态阵列无法使用,至少我无法强迫它。
  • 除非绝对必要,否则没有任何意义来计算整个列。这使得公式慢了两次。
  • Excel Tables Rock!为了充分利用您的Excel,请尽可能使用它们。
  • 动态阵列是未来。

请记住,这些观察结果是基于我在Dynamic Excel 365中的测试,我没有机会在其他版本中进行测试。如果您这样做,欢迎您的评论,将不胜感激!

练习工作簿下载

Excel中的最快vlookup公式(.xlsx文件, 74MB

以上是excel中的vlookup-哪个公式最快?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
如何在Excel中创建时间轴以滤波枢轴表和图表如何在Excel中创建时间轴以滤波枢轴表和图表Mar 22, 2025 am 11:20 AM

本文将指导您完成为Excel Pivot表和图表创建时间表的过程,并演示如何使用它以动态和引人入胜的方式与数据进行交互。 您的数据在Pivo中组织了

如何在Excel中下拉如何在Excel中下拉Mar 12, 2025 am 11:53 AM

本文说明了如何使用数据验证(包括单个和因列表)在Excel中创建下拉列表。 它详细介绍了该过程,为常见方案提供解决方案,并讨论诸如数据输入限制和PE之类的限制

excel 能否导入 xml 文件excel 能否导入 xml 文件Mar 07, 2025 pm 02:43 PM

Excel可以使用其内置的“来自XML数据导入”功能导入XML数据。 进口成功在很大程度上取决于XML结构。结构良好的文件很容易导入,而复杂的文件可能需要手动映射。 最佳实践包括XML

如何在Excel中概括一列如何在Excel中概括一列Mar 14, 2025 pm 02:42 PM

本文讨论了使用SUM函数,Autosum功能以及如何总和特定单元格中的Excel中总和列的方法。

如何在Excel中制作饼图如何在Excel中制作饼图Mar 14, 2025 pm 03:32 PM

本文详细介绍了在Excel中创建和自定义饼图的步骤,专注于数据准备,图表插入和个性化选项,以增强视觉分析。

如何计算excel中的平均值如何计算excel中的平均值Mar 14, 2025 pm 03:33 PM

文章讨论使用平均功能在Excel中计算平均值。主要问题是如何有效地将此功能用于不同的数据集。(158个字符)

如何在Excel中制作桌子如何在Excel中制作桌子Mar 14, 2025 pm 02:53 PM

文章讨论了Excel中的创建,格式化和自定义表,并使用诸如总和,平均和透视物等功能进行数据分析。

如何在Excel中添加下拉如何在Excel中添加下拉Mar 14, 2025 pm 02:51 PM

文章讨论了使用数据验证在Excel中创建,编辑和删除下拉列表。主要问题:如何有效管理下拉列表。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能