Google sheets 具有动态值的查询和导入

Google sheets 具有动态值的查询和导入,google-sheets,google-sheets-formula,array-formulas,gs-vlookup,importrange,Google Sheets,Google Sheets Formula,Array Formulas,Gs Vlookup,Importrange,我有两张相连的纸 表1:具有ID列和状态列(状态字段由团队手动更新) 表2:具有ID列和状态列(+许多其他字段) 要求:如果第2页中的ID列=第1页中的ID列,则第2页中的状态列将从第1页更新 我编写了一个查询和ImportRange,但只有当我将它与一个静态值(例如Yes)进行比较时,我才能发现查询有效。我想要的是对照这两个工作表的ID列中的值进行检查,并仅导入匹配的行 =QUERY(IMPORTRANGE("1ZkPaYb1IIIkcbVerdmZ-Ru1vxFu1YMWj74QNQj2jl

我有两张相连的纸

表1:具有ID列和状态列(状态字段由团队手动更新)

表2:具有ID列和状态列(+许多其他字段)

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

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

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

这并不能直接回答您关于使用
QUERY
的问题,但我相信该函数可能不是您想要做的事情的最佳工具

我在下面使用可选函数
VLOOKUP
编写了一个解决方案

我在这里假设,从您使用的
IMPORTRANGE
来看,“Sheet-1”和“Sheet-2”实际上是指完全不同的电子表格

如果您不介意将第1页的内容复制到第2页中,您可以这样做:

  • 在第2页的新工作表(选项卡)上,复制此功能(填写
    工作表1\u url
    ):
  • 您应该在该选项卡中看到表1中数据的副本。如果愿意,可以隐藏或保护此选项卡
  • 在第2页的主数据选项卡上,将此公式复制到状态列中(假设您的
    ID
    位于A2
  • 尽可能多地复制那个公式

  • 但是,无论出于何种原因,如果您不想在第2页中有第1页数据的副本,您可以跳过上面的步骤1-2,直接转到步骤3,在第2页中使用以下公式:

    =IFERROR(VLOOKUP($A2,IMPORTRANGE("sheet_1_url", "Ops Action Sheet!$A:$B"),2,),)
    
    我不推荐这样做,因为从技术上讲,您实际上要导入数据的次数在formula N以内,这将对性能造成巨大影响

    您可以在此处查看上述公式的参考:


    这并不能直接回答您关于使用
    查询的问题,但我相信该功能可能不是您尝试执行的最佳工具

    我在下面使用可选函数
    VLOOKUP
    编写了一个解决方案

    我在这里假设,从您使用的
    IMPORTRANGE
    来看,“Sheet-1”和“Sheet-2”实际上是指完全不同的电子表格

    如果您不介意将第1页的内容复制到第2页中,您可以这样做:

  • 在第2页的新工作表(选项卡)上,复制此功能(填写
    工作表1\u url
    ):
  • 您应该会在该选项卡中看到表1中数据的副本。如果愿意,您可以隐藏或保护该选项卡
  • 在第2页的主数据选项卡上,将此公式复制到状态列中(假设您的
    ID
    位于A2
  • 尽可能多地复制那个公式

  • 但是,无论出于何种原因,如果您不想在第2页中有第1页数据的副本,您可以跳过上面的步骤1-2,直接转到步骤3,在第2页中使用以下公式:

    =IFERROR(VLOOKUP($A2,IMPORTRANGE("sheet_1_url", "Ops Action Sheet!$A:$B"),2,),)
    
    我不推荐这样做,因为从技术上讲,您实际上要导入数据的次数在formula N以内,这将对性能造成巨大影响

    您可以在此处查看上述公式的参考:


    编辑以反映并粘贴到电子表格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中

    编辑以反映并粘贴到电子表格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中