Вопрос или проблема
У меня есть столбец запроса. Я пытаюсь взять возвращаемое значение для этой ячейки, проверить, содержит ли она строку, и получить значение из столбца 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" является пустым, мы можем воспользоваться формулой, которая будет проверять оба условия.
Во-первых, давайте более чётко определим ваши действия:
- Сравнить значения в столбце "Data" на листе "RollingLog" со значениями в столбце "CodeList" на листе "StaticDB".
- Вернуть значение из столбца "Expanded Info" на листе "StaticDB", где "Other Data" на листе "RollingLog" является пустым.
Вот шаги, которые нужно выполнить:
Шаги для создания формулы:
-
Создание вспомогательного столбца: Вам нужно создать вспомогательный столбец на листе "RollingLog", который будет использоваться для проверки, присутствует ли любой код из "StaticDB" в "Data". Например, вы можете обозначить столбец "C" как вспомогательный. В ячейку C2 следует ввести формулу:
=IF(AND(ISBLANK(B2), REGEXMATCH(A2, JOIN("|", StaticDB!A$2:A))), "Match", "")
Эта формула проверяет, является ли "Other Data" (столбец B) пустым и содержит ли "Data" (столбец A) какую-либо строку из "CodeList". Если оба условия выполняются, возвращается "Match".
-
Использование функции 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" пустое.
Как использовать формулу:
- Убедитесь, что все данные организованы и форматы соответствуют.
- Скопируйте предложенные формулы в соответствующие ячейки на ваших листах.
- Обновите формулы, если данные будут изменены или добавлены.
Таким образом, вы сможете получить искомое значение из "StaticDB" на основе условий, которые вы указали. Если у вас возникли дополнительные вопросы или нужна помощь с другими аспектами, не стесняйтесь обращаться!