Google sheets 具有动态值的查询和导入
我有两张相连的纸 表1:具有ID列和状态列(状态字段由团队手动更新) 表2:具有ID列和状态列(+许多其他字段) 要求:如果第2页中的ID列=第1页中的ID列,则第2页中的状态列将从第1页更新 我编写了一个查询和ImportRange,但只有当我将它与一个静态值(例如Yes)进行比较时,我才能发现查询有效。我想要的是对照这两个工作表的ID列中的值进行检查,并仅导入匹配的行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
=QUERY(IMPORTRANGE("1ZkPaYb1IIIkcbVerdmZ-Ru1vxFu1YMWj74QNQj2jles", "Ops Action Sheet!B2:B10000"),"select Col2 where Col1 = 'Yes'")
这并不能直接回答您关于使用
QUERY
的问题,但我相信该函数可能不是您想要做的事情的最佳工具
我在下面使用可选函数VLOOKUP
编写了一个解决方案
我在这里假设,从您使用的IMPORTRANGE
来看,“Sheet-1”和“Sheet-2”实际上是指完全不同的电子表格
如果您不介意将第1页的内容复制到第2页中,您可以这样做:
工作表1\u url
):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中