Вы можете сделать динамический запрос без использования скрипта.
Строка запроса может содержать ссылку на другие ячейки.
Пример в таблицах.
В этом примере есть раскрывающийся список для набора данных в B2, раскрывающийся список для значения, установленного в B4.Диапазоны данных включают один из другого листа.Я использую именованные диапазоны для упрощения процесса поиска.Каждый набор данных n называется DataN.
Вы можете отделить строку запроса от ячейки с помощью фактического вызова функции запроса.Хитрость заключается в создании строки запроса с использованием INDIRECT, COLUMN и VALUE.Я поместил это в ячейку A10:
="select " & mid("ABCDEFGH",COLUMN(INDIRECT(B2)),1) & " where " & mid("ABCDEFGH",VALUE(COLUMN(INDIRECT(B2)))+1,1) & "=" & """" & B4 & """"
Четыре кавычки позволяют нам поместить буквальную кавычку в строку запроса.Символ '&' выполняет конкатенацию строк.Использование MID как способ преобразования функции COLUMN в букву, которую я получил от здесь .
Тогда ваша ячейка с запросом использует значения раскрывающегося набора данных (B2) изначение строки запроса (A10) выглядит так:
=QUERY(INDIRECT(B2),A10,1)