google-spreadsheet
  • formulas
  • 2014-12-04 1 views 1 likes 
    1

    I have this spreadsheet as an example to illustrate the problem.Листа конкретного QUERY неизвестной ошибка причина

    У меня есть два запроса, ссылающихся различные листы на одной и ту же таблицу.

    =QUERY(Transfers!A1:H, "select F where E = 'Mild Ale (24) '") 
    
    =QUERY(stocktake!A1:J, "select I where H = 'TOTAL:'") 
    

    У одного есть сообщение об ошибке, другое - нет. Я не могу определить, что вызывает ошибку, поскольку оба запроса достаточно похожи.

    Большое значение.

    ответ

    1

    От Query Language Syntax:

    Все значения в столбце будет иметь тип данных, который соответствует типу столбца или нулевое значение.

    Ваша проблема в том, что столбец H имеет смешанные типы, число и строку.

    +0

    Вы можете использовать одну из функций 'LOOKUP' вместо Query. – Mogsdad

    1

    Кажется, что столбец H в stocktake был отформатирован как автоматический, и запрос не хочет выбирать из него текстовое значение.

    Одним из решений может быть применять цифровые коды для TOTAL:, WASTAGE:, INCOME: и DISCREPANCY:. Другим может быть помещено эти описания у подножия столбца B и соответствующим образом отрегулировать запрос.
    Другая возможность - форматировать ColumnH как обычный текст.

    +0

    Пробовал форматирование в обычный текст, но не повезло. Этот лист - всего лишь фрагмент очень большой, динамически созданной электронной таблицы, поэтому стараюсь избегать повторной записи фрагмента скрипта приложений. Спасибо за помощь. – AshClarke

    1

    В дополнение к предыдущему сообщению вы можете преобразовать все в текст в запросе. Нечто подобное должно работать:

    =ArrayFormula(QUERY(stocktake!A1:J&"", "select Col9 where Col8 = 'TOTAL:'")) 
    

    Если вы хотите вывести быть формат, как число, а затем добавить +0 должен сделать трюк:

    =ArrayFormula(QUERY(stocktake!A1:J&"", "select Col9 where Col8 = 'TOTAL:'")+0) 
    

    Примечание: для текущей ситуации альтернативного (возможно, проще), было бы использовать vlookup.

    =vlookup("TOTAL:", stocktake!H1:I30, 2, 0) 
    

    Надеюсь, что это поможет?

     Смежные вопросы

    • Нет связанных вопросов^_^