Запрос таблиц Google не реагирует должным образом

Я следую ссылке по GQL здесь: https://developers.google.com/chart/interactive/docs/querylanguage

Что я пытался сделать, так это выбрать имя из столбца A, если значение установлено в столбце C, на основе самого высокого значения в столбце H, ограниченное 1 результатом.

=QUERY(A5:H100,"select A where (H='"&MAX(H5:H100)&"' and C = 'X') limit 1")

Однако все, что это делает - возвращает первые 2 записи из столбца A. = MAX (H5: H100) возвращает 10.

Еще более странно, если я удалю ', окружающий раздел & MAX (H5: H100) &, он по-прежнему возвращает первые 2 записи из столбца A в поле с формулой, но помещает правильное ожидаемое совпадение (значение A на ряд с H = 10) в следующий ряд под ним.

Мне не хватает какой-то важной части функции QUERY?


person Andrew Quackenbos    schedule 25.10.2014    source источник
comment
@pnuts Я пробовал в новом пустом столбце. Даже перекрестная ссылка на другом листе и с другой функцией (MIN вместо MAX). Тот же результат. На самом деле не знаю, почему. Я даже получаю сообщение об ошибке, если в поле под ним есть значение, в котором говорится, что оно перезапишет это значение.   -  person Andrew Quackenbos    schedule 26.10.2014
comment
Я изменил максимальный диапазон на несколько столбцов после точки данных (A5: M100), и это устранило проблему. Очень странный.   -  person Andrew Quackenbos    schedule 26.10.2014
comment
Еще более странно то, что QUERY угадывает (иногда неправильно), сколько строк заголовка находится в исходных данных, если вы не укажете в (необязательном) третьем аргументе. Я рекомендую всегда указывать третий аргумент (если нет строк заголовка, укажите 0).   -  person AdamL    schedule 27.10.2014


Ответы (1)


Если ColumnH имеет числовые значения (необходимые для поиска MAX), вы не хотите пытаться выделять текст (то есть оставьте пару одинарных кавычек). Также средняя пара круглых скобок не требуется, и, как предлагает @AdamL, если вам не нужна метка, удалите ее:

=QUERY(A5:H100,"select A where H="&MAX(H5:H100)&" and C = 'X' limit 1 label A ''")
person pnuts    schedule 20.01.2018