Читая документацию по =QUERY
функции 1 , 2 , 3 , некоторые из них, по-видимому, подразумевают, что я должен иметь возможность использовать заголовки столбцов непосредственно в своем запросе. Например, =QUERY
функция принимает третий необязательный параметр , HEADERS
, который позволяет указать количество строк заголовка.
Большинство моих запросов было бы намного красивее, если бы я мог использовать заголовки столбцов, поэтому не нужно было использовать индексы столбцов, но я не смог заставить его работать.
Пример:
A B C
---------------------
Name Phone City
Vidar 12345678 Oslo
Rupert 32165487 Berlin
Я могу запросить это с помощью индексов столбцов:
=QUERY(Sheet1!A1:C; "select A, B, C where A = 'Vidar'"; 1)
... но не используя заголовки столбцов:
=QUERY(Sheet1!A1:C; "select A, B, C where Name = 'Vidar'"; 1)
... это дает мне ошибку: Неверный запрос: столбец [Имя] не существует в таблице
Можно ли вообще использовать такие заголовки столбцов? Если нет, какова цель этого HÈADERS
параметра?
источник
HEADERS > 0
тогда указанное число строк заголовка будет возвращено=QUERY
поверх результатов запроса, верно? Это имеет смысл - я думал, чтоHEADERS
только указанные строки игнорируются в запросе.OFFSET
можно использовать для игнорирования первых строк.Да, это возможно. Во-первых, вам нужно использовать MATCH, чтобы получить номер столбца столбца, значение которого соответствует «Имя». Затем вам нужно использовать АДРЕС, чтобы получить ссылку на ячейку. Наконец, вам нужно использовать SUBSTITUTE, чтобы удалить номер строки из ссылки на ячейку.
источник
В то время как старый пост, я хотел добавить свое решение в микс. Вы можете использовать имена столбцов, которые я считаю более полезными. Таким образом, вам не нужно редактировать вызовы функций запросов при вставке или удалении столбцов из исходных данных.
Я видел, как другие использовали сопоставление и замену, я реализовал что-то немного отличное от простого вызова функции запроса.
Первый - создайте таблицу поиска для всех имен ваших столбцов, как это. Моя таблица поиска начинается в столбце E листа «Конфиг» только потому, что у меня есть другие элементы на листе, и ее можно легко разместить на своем собственном листе.
Столбец 1 (Название столбца)
Колонка 2 (Колонка №)
Колонка 3 (Колонка Письмо)
Я открыт для доработки, чтобы преобразовать номер столбца в букву. Эта формула ограничена тем, что обрабатывает только 78 столбцов. Хотя более чем достаточно для меня.
Теперь ваш вызов функции Query будет выглядеть примерно так:
Сохраняйте его красиво отформатированным, и управлять им совсем не плохо. Единственное, что вы будете страдать, это если вы измените индекс столбца вашего диапазона vlookup. Но это не должно часто меняться, если вообще, учитывая, что это вспомогательный диапазон.
источник
Старый вопрос, но я думаю, что это решение может стоить того.
Вы можете использовать пользовательскую функцию сценария, которая получает индекс столбца (то есть A, B, C ...), используя имя заголовка, позволяя сделать что-то вроде:
С
colIndex
функцией:Который может быть проще в использовании и чтении.
источник
Вот мое решение:
если у вас есть столбец с именем "city", создайте новую ячейку с индексом этой ячейки:
Затем вы можете создать именованный диапазон для ячейки Z: 2 с именем: "name", Z: 3 = "phone", Z: 4 = "city"
в своем запросе вы можете написать:
Вы можете объединить это с решением для сопоставления адресов, чтобы не отслеживать отслеживаемые столбцы.
источник