Создать сводную таблицу, в которой результирующие столбцы являются произведением исходных столбцов и строк? - PullRequest
1 голос
/ 31 октября 2019

Это может быть невозможно без тонны дорогостоящих сценариев, но я бы хотел, чтобы эксперты запускали их на случай, если я что-то упустил. Это сложно объяснить (потому что это бессмысленно .. т.е. не мой выбор), поэтому я просто приведу очень упрощенный пример.

Моя исходная таблица данных выглядит следующим образом ...

+----------+-------+------+--------+
|     Date | Time  | Cars | Trucks |
+----------+-------+------+--------+
| 01/01/19 | 08:00 | 2    | 12     |
| 01/01/19 | 12:00 | 4    | 10     |
| 01/01/19 | 20:00 | 6    | 8      |
| 01/02/19 | 08:00 | 8    | 6      |
| 01/02/19 | 12:00 | 10   | 4      |
| 01/02/19 | 20:00 | 12   | 2      |
+----------+-------+------+--------+

.. и я хочу, чтобы другой лист динамически отображал его как ...

+----------+---------------+---------------+---------------+
|          | 08:00         | 12:00         | 20:00         |
+----------+------+--------+------+--------+------+--------+
|          | Cars | Trucks | Cars | Trucks | Cars | Trucks |
+----------+------+--------+------+--------+------+--------+
| 01/01/19 | 2    | 12     | 4    | 10     | 6    | 8      |
| 01/02/19 | 8    | 6      | 10   | 4      | 12   | 2      |
+----------+------+--------+------+--------+------+--------+

Другими словами, столбец для каждого времени в категории объединен. Имейте в виду, что на самом деле это большой набор данных. Кроме того, у меня есть некоторая гибкость в заголовках в том смысле, что две строки заголовка в выводе могут быть одной. Что-то вроде "Автомобили 8:00", "Грузовики 8:00", "Автомобили 12:00" ... и т. Д.

Кто-нибудь знает, как это можно сделать с помощью сводной таблицы? Или какой-то другой простой метод?

Вот живая версия того же самого примера ... https://docs.google.com/spreadsheets/d/1npQikx3Zwa2QZwDAk8IxyawYw2hkeYpPe9Nh4ImkZAE/edit?usp=sharing

1 Ответ

0 голосов
/ 31 октября 2019

попробовать:

=ARRAYFORMULA({{TEXT(SUBSTITUTE(SPLIT(TRANSPOSE(QUERY(TRANSPOSE(QUERY(
 QUERY({Source!A2:B, TRANSPOSE(QUERY(TRANSPOSE(Source!C2:D),,999^99))}, 
 "select Col1,max(Col3) where Col1 is not null group by Col1 pivot Col2"), 
 "limit 0", 1)),,999^99)), " "), "1899-12-30", ), "hh:mm"), ""}; {"", 
 SPLIT(REPT(Source!C1&" "&Source!D1&" ", COUNTUNIQUE(Source!B2:B)), " ")}; 
 TRANSPOSE(QUERY(TRANSPOSE(SPLIT(TRANSPOSE(QUERY(TRANSPOSE(QUERY(QUERY({Source!A2:B, 
 TRANSPOSE(QUERY(TRANSPOSE(Source!C2:D),,999^99))}, 
 "select Col1,max(Col3) where Col1 is not null group by Col1 pivot Col2"), 
 "offset 1", 0))&" ",,999^99)), " ", 1, 0)), "where "&JOIN(" or ", "Col"&
 ROW(INDIRECT("A1:A"&COUNTUNIQUE(Source!A2:A)))&" is not null"), 0))})

0

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

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