Запрос и ImportRange с динамическими значениями - PullRequest
1 голос
/ 06 июля 2019

У меня есть 2 подключенных листа.

Лист-1: имеет столбец идентификатора и столбец состояния (поле состояния вручную обновляется командой)

Лист-2: столбец идентификатораи столбец состояния (+ много других полей)

Требование: столбец состояния на листе 2 должен обновляться со страницы 1, если столбец идентификатора в листе 2 = столбец идентификатора в листе 1

Iнаписал Query и ImportRange, но я смог найти работающий Query только тогда, когда сравнил его со статическим значением (например, Да).Я хочу, чтобы он сравнивал значение в столбце ID с обоих листов и импортировал только те строки, которые совпадают.

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

Ответы [ 2 ]

0 голосов
/ 06 июля 2019

изменить, чтобы отразить и вставить в электронную таблицу 2:

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

A2:A - столбец идентификаторов в электронной таблице 2
Sheet!A:C - столбец A идентификаторов хостов этого диапазона
{2, 3} - переносит столбцы B и C из электронной таблицы 1 в электронную таблицу 2

0 голосов
/ 06 июля 2019

Это не дает прямого ответа на ваш вопрос об использовании QUERY, но я считаю, что эта функция может быть не лучшим инструментом для того, что вы пытаетесь сделать.

Я пишу ниже решение, используя альтернативную функцию VLOOKUP.

Здесь я предполагаю, что под «Листом-1» и «Листом-2» вы на самом деле имеете в виду совершенно разные таблицы, судя по использованию вами IMPORTRANGE.

Если вы не возражаете против того, чтобы иметь копию содержимого Листа 1, живущего на Листе 2, вот что вы можете сделать:

  1. На новом листе (вкладке) в Sheet-2 скопируйте эту функцию (заполните sheet_1_url):
=IMPORTRANGE("sheet_1_url", "Ops Action Sheet!$A:$B")
  1. Вы должны увидеть копию данных из Листа-1 на этой вкладке. Вы можете скрыть эту вкладку или защитить ее, если хотите.
  2. На своей основной вкладке данных в Листе-2 скопируйте эту формулу в столбце «Статус» (при условии, что ваш ID находится в A2 :
=IFERROR(VLOOKUP($A2,range_from_step_1,2,),)
  1. Скопируйте эту формулу столько, сколько вам нужно.

Однако, если вы по какой-либо причине не хотите иметь копию данных Листа-1 на Листе-2, вы можете просто пропустить шаги 1-2 выше, сразу перейдя к шагу 3, со следующей формулой в Листе -2:

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

Не то, чтобы я рекомендовал это, поскольку технически вы импортировали бы свои данные практически в формуле N количество раз, что будет огромным ударом по производительности.

Ссылки на формулы, используемые выше, вы можете увидеть здесь:

...