【问题标题】:Google Sheet Arrayformula with Vlookup matching Data带有 Vlookup 匹配数据的 Google Sheet Arrayformula
【发布时间】:2021-01-03 03:56:38
【问题描述】:

我希望你们都做得很好。

我一直在使用 ArrayFormula 和 Vlookup 来匹配来自不同工作表的数据,下面的公式在 sheet2 列中可用,标题为“评论”

问题是公式不匹配所有列,甚至没有粘贴 Sheet1 列“F”中可用的结果。

有人可以查看问题以修复错误/问题。

=ArrayFormula({"Comments";IF(B2:B="",,IFERROR(VLOOKUP(B2:B&" "&C2:C&" "&D2:D&" "&E2:E,SPLIT(TRANSPOSE(TRIM(QUERY(TRANSPOSE(IMPORTRANGE("https://docs.google.com/spreadsheets/d/11R59FJN9oRkoh3TRNjf_lW_thkhRRxeslDjKRCP3Fhg/edit#gid=0","A:E")&IF(SEQUENCE(1,5)=4,"|",)),,5))),"| ",0),2,0),"*** NOT FOUND ***"))})

下面是表格链接

https://docs.google.com/spreadsheets/d/11R59FJN9oRkoh3TRNjf_lW_thkhRRxeslDjKRCP3Fhg/edit?usp=sharing

https://docs.google.com/spreadsheets/d/1yYEc5l5oZNIyMwCwfcYRuRxk_VBB70BUzgefDq6Kerw/edit?usp=sharing

如果有任何简单的方法可以用单一公式做到这一点,请分享。

【问题讨论】:

  • 对不起,我很难理解:你能提供一个你想从公式中看到的输出的例子吗?您能否也请确保您共享测试数据而不是真实数据。谢谢。
  • vlookup 工作很简单,Vlookup (A2) 匹配单个单元格,而它匹配 A2、B2、C3、D3 和 E3 然后将“F”结果从 Sheet1 粘贴到 Sheet2,是我已经删除了必要的数据。
  • 您是否需要将所有这些都放在一个公式中?您不能先将您的范围导入另一张纸吗?然后创建一个 ID 列,在其中连接值,然后执行 INDEX MATCH?
  • 是的,先生,正在寻找单一公式的解决方案。

标签: arrays google-sheets vlookup matching


【解决方案1】:

我想我已经找到了你的问题。

您的公式没有比较等效的“字段”。
对于来自 importrange 函数的数据,您没有在第一列中包含 MCM 字段。因此,当您将值与 VLOOKUP 进行比较时,它们永远不会匹配。

您可以通过在 VLOOKUP 公式中删除列 E 的串联来测试这一点 - 从此更改“

VLOOKUP(A2:A&" "&B2:B&" "&C2:C&" "&D2:D&" "&E2:E

到这里:

VLOOKUP(A2:A&" "&B2:B&" "&C2:C&" "&D2:D

然后大多数记录都匹配了。

如果我在这里遗漏了什么,请告诉我。

更新:我删除了显示数据对齐的图像,但我已将其删除,因为数据可能不是通用数据。

更新#2: 我在您的示例 Sheet2 中添加了一个新选项卡 MCM-GK,并且我在 M1 中放置了一个公式,以替换您在 F1 中的公式。但是,当您执行VLOOKUP 时,不清楚您希望从数据中得到什么结果。我假设您希望返回包含状态说明的第六列。如果这是你想要的,请告诉我。如果不是,请清楚说明您希望从Sheet1 的IMPORTRANGE 返回什么数据。

请注意,隐藏的列 G 到 L 显示了中间步骤,仅用于说明。它们不是最终公式所必需的,可以在需要时删除。

【讨论】:

  • 先生,我做到了,但它仍然无法正常工作,我需要在匹配数据行明智后从 Sheet1 获得列“F”结果。
  • 非常好,您能否详细说明为什么在“ImportRangeData-Merged”的中间步骤中需要多个转置和查询功能的逻辑?我不关注。
  • @iansedano 不幸的是,该工作表不再共享,我忽略了复制。为了清楚起见,不需要中间列 - 上面答案中提供的单个数组公式给出了他在问题中要求的完整结果(我相信)。但据我记得,Shazir 进行了多次转换和拆分,因为他试图连接五列中的四列,并返回两列,让他的 VLOOKUP 工作。很有可能公式的这一部分可以提高效率 - 我专注于正确匹配列。
  • @Shazir,您能否从 Sheet1 MCM 选项卡中确认您想要在 Sheet2 状态列、E 列或 F 列中的哪一列?如果您可以再次共享 Sheet2 一天,以便我可以复制公式在此处显示 - 如果您愿意,请删除所有数据行。或者在评论中粘贴 M1 的内容?谢谢。
  • kirkg13 当然,先生,我可以。在将剩余的 5 列数据匹配到两个给定的工作表中之后,我希望在 sheet2 中添加列 F。现在您可以访问这两个工作表。
【解决方案2】:

在浏览了您的演示表后,我想出了这个解决方法。我添加了一个查询来获取您的查找数据范围并将其内置到列中。下面的例子对我有用。

=ArrayFormula(If(A2:A="",,ifError(VLOOKUP(A2:A&" "&B2:B&" "&C2:C&" "&D2:D,Query(SPLIT(TRANSPOSE(TRIM(QUERY(TRANSPOSE(IMPORTRANGE("https://docs.google.com/spreadsheets/d/11R59FJN9oRkoh3TRNjf_lW_thkhRRxeslDjKRCP3Fhg/edit#gid=0","MCM!A:F")&IF(SEQUENCE(1,5)=4,"|",)),,5))),"| ",0),"Select Col1,Col2"),2,false),"*** NOT FOUND ***")))

祝你好运!

【讨论】:

  • 我相信他希望Sheet1中MCM选项卡中的Status列F列更新Sheet2中MCM选项卡中的对应记录。但我可能是错的......!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-24
  • 2021-11-27
  • 1970-01-01
  • 2021-09-08
  • 2017-10-28
  • 2021-10-15
相关资源
最近更新 更多