Я не смог найти простой и аккуратный способ получить нужный макет, но вы можете использовать Index, чтобы извлечь строку и столбец из вашего запроса на основе строки и столбца, содержащих формулу, подобную этой (для первого столбца)
=if(int(rows($1:3)/3)<=countunique($A$2:$A$9),choose(mod(rows($1:3),3)+1,index(QUERY($A$2:$F$9,"select A,B,Sum(C),Sum(E) group by A,B Label Sum(C) 'Total Quantity',Sum(E) 'Total Price'") ,int(rows($1:3)/3)*2,1),"","Total"),"")
Затем он определяет, является ли это первой, второй или третьей строкой группы в отчете, и использует функцию «Выбрать», чтобы ввести имя элемента, пустую ячейку или слово «Итого».
Второй столбец работает точно так же
=if(int(rows($1:3)/3)<=countunique($A$2:$A$9),if(mod(rows($1:3),3)<2,index(QUERY($A$2:$F$9,"select A,B,Sum(C),Sum(E) group by A,B Label Sum(C) 'Total Quantity',Sum(E) 'Total Price'") ,int(rows($1:3)/3)*2+mod(rows($1:3),3),2),""),"")
Первая функция Mod используется для определения, должна ли она отображать «b» или «s» из запроса или пустое место, а вторая функция Mod определяет, должна ли она быть строкой «b» или «s» в строке запрос.
Третий столбец тоже похож
=if(int(rows($1:3)/3)<=countunique($A$2:$A$9),if(mod(rows($1:3),3)<2,index(QUERY($A$2:$F$9,"select A,B,Sum(C),Sum(E) group by A,B Label Sum(C) 'Total Quantity',Sum(E) 'Total Price'") ,int(rows($1:3)/3)*2+mod(rows($1:3),3),3),L11-L12),"")
Первая функция Mod используется для определения, должно ли она отображать количество из запроса или разницу двух предыдущих строк, а вторая функция Mod определяет, должна ли она быть строкой «b» или «s» запрос.
Четвертый столбец практически идентичен второму.
=if(int(rows($1:3)/3)<=countunique($A$2:$A$9),if(mod(rows($1:3),3)<2,index(QUERY($A$2:$F$9,"select A,B,Sum(C),Sum(E) group by A,B Label Sum(C) 'Total Quantity',Sum(E) 'Total Price'") ,int(rows($1:3)/3)*2+mod(rows($1:3),3),4),""),"")
(Я не мог понять, как рассчитывать фактическую прибыль).
person
Tom Sharpe
schedule
18.04.2017