【问题标题】:Google Sheets LOOKUP Function returning the wrong values?Google Sheets LOOKUP 函数返回错误的值?
【发布时间】:2021-04-26 03:47:19
【问题描述】:

我正在创建一个加密跟踪电子表格,并且使用 LOOKUP 函数得到了一些奇怪的结果。 我有两个命名范围:

符号范围称为 USDCoinSymbols 并且币名范围叫做USDCoinNames

以下是我尝试使用 LOOKUP 函数时的一些函数结果:

对于搜索词的混合大小写表示歉意。我在做实验,但是 看起来 LOOKUP 函数不区分大小写(例如,BNB 返回了正确的硬币名称)。

我也尝试了相反的方法,查找带有硬币名称的硬币符号(第二个结果),效果很好。 我花了好几个小时试图弄清楚这一点。

是我遗漏了什么还是这是一个错误?

编辑:这是一个link 用于示例电子表格,我正在使用 CoinGecko API 来获取这些数据。

我正在尝试使用符号提取硬币名称以填充我正在创建的表格。

【问题讨论】:

  • 目前还不清楚 - 至少对我来说 - 你想要做什么。请阅读操作方法和share a test sheet,以便更轻松地为您提供帮助。
  • @marikamitsos 我添加了一个指向示例电子表格的链接。我正在尝试使用硬币符号将顶部表格中的信息填充到底部表格中。

标签: google-sheets google-sheets-formula spreadsheet


【解决方案1】:

这不是错误。这就是LOOKUP 的工作原理。

LOOKUP 要求所有搜索列信息严格按照从小到大的顺序排列,因此它不适用于您的数据。

我添加了一个新工作表(“Erik 帮助”),它是您的第一张工作表的副本。在我的工作表中,我从B20:B27 中删除了您的LOOKUP 公式,并将它们替换为一个数组公式。此公式使用 VLOOKUP 和 FALSE 作为最终参数,这意味着您的数据不是按照严格的最小到最大顺序排序的,而是应该在任何地方搜索精确匹配。这个公式填充了B20:B 的所有结果:

=ArrayFormula(IF(A20:A="",,IFERROR(VLOOKUP(A20:A,B2:C14,2,FALSE))))

如果您要将其应用于其他地方的更大列表并希望使用您的命名范围,只需将 B2:C14 替换为 {USDCoinSymbols, USDCoinNames}

参考资料:

【讨论】:

    【解决方案2】:

    您需要改用VLOOKUP 函数

    =INDEX(IFERROR(VLOOKUP(A20:A25, {USDCoinSymbols, USDCoinNames},2,0)))
    

    这个公式就是你所需要的。
    由于您的列表未排序,您应该在函数中使用0

    (请一如既往地根据您的范围和语言环境调整公式)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-16
      • 1970-01-01
      • 2018-07-26
      相关资源
      最近更新 更多