【问题标题】:Query and ImportRange with Dynamic Values使用动态值查询和 ImportRange
【发布时间】:2019-07-06 06:05:53
【问题描述】:

我有两张相连的床单。

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

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    1. 在 Sheet-2 的新工作表(选项卡)上,复制此函数(填写 sheet_1_url):
    =IMPORTRANGE("sheet_1_url", "Ops Action Sheet!$A:$B")
    
    1. 您应该会在该选项卡中看到 Sheet-1 中数据的副本。您可以根据需要隐藏或保护此标签。
    2. 在 Sheet-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 次内导入数据,这将对性能造成巨大影响。

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

    【讨论】:

      【解决方案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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-07-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多