Как выполнять сложные вычисления внутри формул запроса?

В таблицах Google я получаю #NA без объяснения причин, когда пытаюсь вычислить разницу между двумя суммами, которые я только что вычислил по той же формуле.

Разве это невозможно с помощью запроса, или я делаю это неправильно?

  • Моя формула: =query(B5:H16,"select ((sum(G)/sum(F)) - (sum(D)/sum(C))) / (sum(D)/sum(C))")

Первая часть работает: =query(B5:H16,"select ((sum(G)/sum(F)) - (sum(D)/sum(C)))

Я пытаюсь выполнить тот же расчет, что и формула A3 на скриншоте, но в формуле запроса

Ссылка на электронную таблицу: https://docs.google.com/spreadsheets/d/1VrYO-TayV6TD-iHUDT3Axgkr3gI4s9OHvj0-yW59wRA/edit#gid=0

снимок экрана электронной таблицы с формулами и данными


person Sigurd    schedule 27.01.2020    source источник
comment
поделитесь копией своего листа с примером желаемого результата   -  person player0    schedule 27.01.2020
comment
Выполнено! Хорошая точка зрения :)   -  person Sigurd    schedule 27.01.2020
comment
какая-либо причина, по которой для этого нужен запрос?   -  person player0    schedule 27.01.2020
comment
да. В реальных данных я беру данные из многих столбцов в одну строку. Так что, если я смогу обрабатывать все вычисления в рамках одной формулы для каждой строки, это все упростит.   -  person Sigurd    schedule 27.01.2020


Ответы (1)


Разве это не эквивалентно формуле, которую вы пытаетесь получить ?:

=query(B5:H16, "select (sum(G)/sum(F))/(sum(D)/sum(C)) - 1")

Я надеюсь, что это поможет.

person Iamblichus    schedule 27.01.2020
comment
Спасибо. Он отлично работает в листе с примерами. Но когда я добавляю эту часть (sum (K) / sum (J)) / (sum (H) / sum (G)) - 1 перед предложением where в более длинной формуле, она больше не работает - но вернуть #NA. Примерно так: query ('sheet'! A: Z, select sum (A), sum (B), '1', sum (B) / sum (A), 'all c', F, sum (G), сумма (H), сумма (H) / сумма (G), сумма (J), сумма (K), сумма (K) / сумма (J), (сумма (J) -сумма (G)) / сумма (G ), (sum (K) -sum (H)) / sum (H), (sum (K) / sum (J)) / (sum (H) / sum (G)) - 1, где F соответствует '& join ( |, 'лист'! F5: F15) & 'группировать по F) - person Sigurd; 27.01.2020
comment
@ Сигурд, пожалуйста. В этом случае я предлагаю вам создать новый вопрос, объясняющий, чего вы хотите достичь, поскольку это не было частью исходного вопроса. - person Iamblichus; 28.01.2020