具有动态值的查询和ImportRange

时间:2019-07-06 06:05:53

标签: google-sheets google-sheets-formula array-formulas gs-vlookup importrange

我有2张纸相连。

第1张:具有“ ID”列和“状态”列(“状态”字段由小组手动更新)

Sheet-2:具有“ ID”列和“状态”列(以及许多其他字段)

要求:如果工作表2中的ID列=工作表1中的ID列,则工作表2中的状态列将从工作表1中更新

我写了一个Query和ImportRange,但是只有在将它与静态值进行比较时(例如,是),我才能找到Query。我想要的是对照两个工作表的ID列中的值进行检查,并仅导入匹配的行。

=QUERY(IMPORTRANGE("1ZkPaYb1IIIkcbVerdmZ-Ru1vxFu1YMWj74QNQj2jles", "Ops Action Sheet!B2:B10000"),"select Col2 where Col1 = 'Yes'")

2 个答案:

答案 0 :(得分:0)

这并不能直接回答您有关使用QUERY的问题,但是我认为该功能可能不是您尝试执行的最佳工具。

我在下面用替代函数VLOOKUP写一个解决方案。

我在这里假设通过“ Sheet-1”和“ Sheet-2”,实际上是完全不同的电子表格,这取决于您使用IMPORTRANGE

如果您不介意在Sheet-2中保存Sheet-1内容的副本,可以执行以下操作:

  1. 在工作表2中的新工作表(标签)上,复制此功能(填写sheet_1_url):
=IMPORTRANGE("sheet_1_url", "Ops Action Sheet!$A:$B")
  1. 您应该在该选项卡中看到Sheet-1中数据的副本。您可以隐藏此标签或根据需要对其进行保护。
  2. 在工作表2的主数据标签上,将此公式复制到“状态”列中(假设您的ID位于 A2 中:
=IFERROR(VLOOKUP($A2,range_from_step_1,2,),)
  1. 根据需要复制该公式。

但是,如果出于某种原因不想在Sheet-2中复制Sheet-1的数据,则可以直接跳过上述步骤1-2,直接转到步骤3,在Sheet中使用以下公式-2:

=IFERROR(VLOOKUP($A2,IMPORTRANGE("sheet_1_url", "Ops Action Sheet!$A:$B"),2,),)

我不建议这样做,因为从技术上讲,您实际上是在次数 N 次数内虚拟地导入数据,这将对性能产生巨大的影响。

您可以在此处查看上面使用的公式的参考:

答案 1 :(得分:0)

编辑以反映并粘贴到电子表格2中:

=ARRAYFORMULA(IFERROR(VLOOKUP(A2:A, IMPORTRANGE("ID", "Sheet!A:C"), {2, 3}, 0)))

A2:A-电子表格2中的ID列
Sheet!A:C-此范围的A列托管ID
{2, 3}-将电子表格1中的B和C列带入电子表格2