Возврат отсортированного массива сумм столбцов - сгруппированных по столбцам - PullRequest
0 голосов
/ 21 апреля 2019

У меня есть лист данных и формула, которая для каждой строки возвращает массив в столбец H заголовков столбцов, отсортированных по данным в строке (от верхнего к низшему).

Здесьформула, которую я использую.Он выполняет свою работу.

=TRANSPOSE(QUERY(TRANSPOSE({$B$1:$G$1;$B2:$G2}),"SELECT Col1 ORDER BY Col2 DESC",0))

В столбце N я хочу вернуть еще один массив заголовков столбцов, однако на этот раз в соответствии с суммой всех строк, имеющих одинаковый «код» встолбец A (снова сортировка заголовков столбцов по возрастанию).Это означает, что строка 4, столбец N будет сортировать заголовки в соответствии с суммой строки 2 и строки 4 (поскольку каждая из этих строк имеет одинаковый код в столбце A, обозначая A1).

Я хотел бы найтирешение, которое не должно явно объявлять сумму каждого столбца в качестве конечной электронной таблицы, будет иметь около тридцати столбцов.

Я изо всех сил пытаюсь найти способ сделать это.Я рад попробовать совсем другое решение, если это необходимо.

Есть предложения?

Вот ссылка на лист ... https://docs.google.com/spreadsheets/d/15Y06GIY0HYGzOVRS-a_1SYWzVq5dBffHBnmg5k6hCxQ/edit?usp=sharing

Я пытался добавитьстолбец кода в операторе Query, однако, это не работает, так как при переносе данных столбцы имеют два разных типа данных.

Ответы [ 2 ]

0 голосов
/ 22 апреля 2019

Хорошо ... итак, после долгих исследований и экспериментов, мне удалось создать решение, используя формулу MMULT.

Вот моя последняя формула. Я также разместил рабочую версию в исходной общей таблице.

= ТРАНСП (QUERY (ТРАНСПОНИРОВАНИЕ ({$ B $ 1: $ G $ 1; MMULT (транспонирование (ArrayFormula (строка ($ A $ 2: $ А) = 0)), ARRAYFORMULA (($ A $ 2: $ A = $ A2) * $ B $ 2: $ G))}), "ВЫБЕРИТЕ Col1 ЗАКАЗАТЬ ПО Col2 DESC", 0))

Если кто-то еще хочет понять структуру MMULT-части формулы, вот ссылка на пост, который привел меня к этому решению.

https://infoinspired.com/google-docs/spreadsheet/mmult-instead-of-sumif-in-google-sheets-for-array-result/

Большое спасибо тем, кто внес свой вклад.

0 голосов
/ 21 апреля 2019

вставьте в ячейку N2 и перетащите вниз до ячейки N3 :

=TRANSPOSE(QUERY(TRANSPOSE(QUERY(QUERY(A$1:G,"where A='"&A2&"'"), 
 "select sum(Col2),sum(Col3),sum(Col4),sum(Col5),sum(Col6),sum(Col7) 
  where Col1 is not null 
  group by Col1 
  label sum(Col2)'"&B$1&"',sum(Col3)'"&C$1&"',sum(Col4)'"&D$1&"',sum(Col5)'"&E$1&"',sum(Col6)'"&F$1&"',sum(Col7)'"&G$1&"'", 1)),
 "select Col1
  order by Col2 desc"))

0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...