Этот вопрос можно перефразировать так: «Использование программно сгенерированного диапазона в FILTER ()» в зависимости от подхода, который требуется для его ответа.
РЕДАКТИРОВАТЬ - Кажется, я случайно включил слишком много информации в свойпопытки продемонстрировать то, что я пытался, чтобы мой вопрос был неясным.Изменения, которые я сделал в этом редакторе, должны исправить это.
В настоящее время я выполняю фильтрацию, используя следующую функцию:
Блок кода 1
=filter('Data Import'!1:10000,'Data Import'!D:D<12)
После импорта данных столбец D:D
может изменять позиции (например, он может находиться в столбце F:F
), но всегда имеет заголовок "student.grade".
Вопрос: Как можноЯ ссылаюсь на этот столбец переменной позиции с фиксированным заголовком в функции фильтра, как в столбце, указанном в кодовом блоке 1? Другими словами, могу ли я заменить «Импорт данных»! D: D` действительным кодом, который позволитэта функция работает независимо от расположения столбца с заголовком "student.grade?"
Что я пробовал:
Я могу использовать следующий код, чтобы правильно найти адрес столбца (каким бы он ни был после импорта данных) какстрока:
Блок кода 2
=substitute(address(1,match("student.grade",'Data Import'!1:1,0),4),1,"")&":"&substitute(address(1,match("student.grade",'Data Import'!1:1,0),4),1,"")
Функция в блоке кода 2 возвращает "D:D"
, когда заголовок "student.grade" находится в ячейке D1
и "F:F"
, когда "student.grade" находится в ячейке F1
.Я думал, что мог бы просто вставить это значение в функцию FILTER()
и быть на моем веселом пути, но чтобы преобразовать мою строку в пригодный для использования адрес, я попытался использовать функцию INDIRECT()
для строки, созданной в блоке кода 2.выше.
Кодовый блок 3
=filter('Data Import'!1:3351,'Data Import'!indirect(substitute(address(1,match("student.grade",'Data Import'!1:1,0),4),1,"")&":"&substitute(address(1,match("student.grade",'Data Import'!1:1,0),4),1,""),TRUE)<12)
Формула не будет правильно обрабатываться.
Упрощение косвенной части той же функции для проверкибудет ли он работать, если заданный диапазон вызывает ту же ошибку:
Кодовый блок 4
=filter('Data Import'!1:3351,indirect('Data Import'!&"D:D")<12)
Это заставляет меня поверить, что INDIRECT () необрабатывать диапазоны, или если это так, я не знаю синтаксис. Этот пост переполнения стека , кажется, предполагает, что это возможно, но я не могу разобраться в деталях.
Этот вопрос НЕ является попыткой заставить других помочь мне решить мою программную дилемму.Я могу сделать это с помощью различных сценариев, гигантских столбцов вторичных операторов if и многого другого.
Этот вопрос задается для понимания того, как передать переменный диапазон в функцию фильтра (если это возможно).