Листы Google – Запросы и перекрестные ссылки между несколькими таблицами

Вопрос или проблема

У меня есть столбец запроса. Я пытаюсь взять возвращаемое значение для этой ячейки, проверить, содержит ли она строку, и получить значение из столбца B, где запрос совпадает со столбцом A, но только если другой столбец пустой. Всё это строки.

Пример:

Лист 1: StaticReport

Столбец A
запрос

Лист 2: RollingLog

Данные Другие данные
сжатые данные Другие данные

Лист 3: StaticDB

Список кодов Расширенная информация
Код объяснение кода

Как я пытался это сделать:

=QUERY({RollingLog!$A2:B;StaticDB!A2:B},"SELECT Col4 WHERE Col1 LIKE Col3"&if(Col2=""))

Пытаюсь сравнить Данные из RollingLog со Список кодов из StaticDB и вернуть Расширенные из StaticDB, где Код содержится в Данных, но только для строк, где Другие данные пусты.

Вероятно, я подхожу к этому неправильно, есть идеи?

Ответ или решение

Для решения вашей задачи с использованием функции QUERY в Google Sheets с несколькими листами, нам потребуется немного изменить ваш подход. Чтобы выполнить сравнение между данными на листе "RollingLog" и "StaticDB", а также вернуть значения из столбца "Expanded Info", где "Other Data" является пустым, мы можем воспользоваться формулой, которая будет проверять оба условия.

Во-первых, давайте более чётко определим ваши действия:

  1. Сравнить значения в столбце "Data" на листе "RollingLog" со значениями в столбце "CodeList" на листе "StaticDB".
  2. Вернуть значение из столбца "Expanded Info" на листе "StaticDB", где "Other Data" на листе "RollingLog" является пустым.

Вот шаги, которые нужно выполнить:

Шаги для создания формулы:

  1. Создание вспомогательного столбца: Вам нужно создать вспомогательный столбец на листе "RollingLog", который будет использоваться для проверки, присутствует ли любой код из "StaticDB" в "Data". Например, вы можете обозначить столбец "C" как вспомогательный. В ячейку C2 следует ввести формулу:

    =IF(AND(ISBLANK(B2), REGEXMATCH(A2, JOIN("|", StaticDB!A$2:A))), "Match", "")

    Эта формула проверяет, является ли "Other Data" (столбец B) пустым и содержит ли "Data" (столбец A) какую-либо строку из "CodeList". Если оба условия выполняются, возвращается "Match".

  2. Использование функции QUERY: Теперь вы можете использовать функцию QUERY, чтобы вернуть значение из листа "StaticDB", если совпадает хотя бы одно значение из "Data". Предположим, вы хотите вернуть результаты на новом листе (например, "Results"). В ячейку A1 на листе "Results" добавьте следующую формулу:

    =QUERY({StaticDB!A2:B; FILTER(RollingLog!A2:C, RollingLog!C2:C="Match")}, "SELECT Col2 WHERE Col1 MATCHES '"&JOIN("|", FILTER(StaticDB!A2:A, StaticDB!A2:A <> ""))&"'", 0)

Описание формулы:

  • Мы используем {StaticDB!A2:B; FILTER(RollingLog!A2:C, RollingLog!C2:C="Match")} для объединения данных из "StaticDB" и тех строк из "RollingLog", где у нас есть совпадение.
  • Далее используем MATCHES, чтобы искать значения, которые соответствуют вашему коду.
  • Убедимся, что условия выполняются, и в результирующем наборе данных вы получите только те строки, у которых "Other Data" пустое.

Как использовать формулу:

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

Таким образом, вы сможете получить искомое значение из "StaticDB" на основе условий, которые вы указали. Если у вас возникли дополнительные вопросы или нужна помощь с другими аспектами, не стесняйтесь обращаться!

Оцените материал
Добавить комментарий

Капча загружается...