Google Sheet 具有 Vlookup 匹配数据的 Arrayformula
Google Sheet Arrayformula with Vlookup matching Data
希望你们都做得很好。
我一直在使用 ArrayFormula along-with Vlookup 来匹配来自不同 sheet 的数据 sheet 下面的公式在 sheet2 标题为“Comment”的列中可用
问题是公式不匹配所有列,甚至不粘贴 Sheet1 列“F”中可用的结果。
有人可以查看问题以修复 bug/problem。
=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 ***"))})
下面是 sheets link
https://docs.google.com/spreadsheets/d/11R59FJN9oRkoh3TRNjf_lW_thkhRRxeslDjKRCP3Fhg/edit?usp=sharing
https://docs.google.com/spreadsheets/d/1yYEc5l5oZNIyMwCwfcYRuRxk_VBB70BUzgefDq6Kerw/edit?usp=sharing
如果有任何简单的方法可以用单一公式做到这一点,请分享。
我想我已经找到你的问题了。
您的公式没有比较等效的“字段”。
对于来自 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 显示了中间步骤,只是为了说明。它们不是最终公式所必需的,可以在需要时删除。
在完成您的演示 sheet 之后,我想到了这个解决方法。我添加了一个查询来获取您的查找数据范围并将其内置到列中。下面的例子对我有用。
=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 ***")))
祝你好运!
希望你们都做得很好。
我一直在使用 ArrayFormula along-with Vlookup 来匹配来自不同 sheet 的数据 sheet 下面的公式在 sheet2 标题为“Comment”的列中可用
问题是公式不匹配所有列,甚至不粘贴 Sheet1 列“F”中可用的结果。
有人可以查看问题以修复 bug/problem。
=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 ***"))})
下面是 sheets link
https://docs.google.com/spreadsheets/d/11R59FJN9oRkoh3TRNjf_lW_thkhRRxeslDjKRCP3Fhg/edit?usp=sharing
https://docs.google.com/spreadsheets/d/1yYEc5l5oZNIyMwCwfcYRuRxk_VBB70BUzgefDq6Kerw/edit?usp=sharing
如果有任何简单的方法可以用单一公式做到这一点,请分享。
我想我已经找到你的问题了。
您的公式没有比较等效的“字段”。
对于来自 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 显示了中间步骤,只是为了说明。它们不是最终公式所必需的,可以在需要时删除。
在完成您的演示 sheet 之后,我想到了这个解决方法。我添加了一个查询来获取您的查找数据范围并将其内置到列中。下面的例子对我有用。
=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 ***")))
祝你好运!