Решение:
Это довольно сложная задача ... :)
Я разработал рабочее решение для вас.
Перейдите по этой ссылке, чтобы получить это (2 листа - данные и отчет)
Пояснение:
Лист данных:
Я добавил дополнительный столбец к исходным данным - нам понадобится этот столбец в дальнейшем запросе (вы можете скрыть этот столбец)
={"Rep Desc";ArrayFormula(if(A2:A<>"";"Count of "&A2:A;))}
Отчетный лист:
Я добавил 2 дополнительных столбца (A: B) (их можно скрыть позже), чтобы лучше объяснить, что происходит. Это решение состоит из 4 основных частей - вы можете собрать их все в одну формулу, но для пояснения я оставил их отдельно.
Часть 1 Номера «Открыто / Закрыто / Внимание»
Это простой запрос - мы используем дополнительный столбец в источнике данных, чтобы получить описание желания (Количество ... вместо просто Attn, Closed и т. Д.)
=QUERY({INDIRECT($A$1)};$B$1;1)
строка для запроса
select Col5, count(Col4) where Col1 is not null group by Col5 pivot Col3 label Col5 ''
Часть 2 - «Сумма очков»
Его запрос снова вставляется в следующий запрос для удаления заголовков + «Сумма очков» в качестве дополнительного столбца (с использованием встроенного массива - {}
):
={"Sum of Points"\QUERY(QUERY({INDIRECT($A$1)};B5;1);"select * offset 1";0)}
строка для запроса
select sum(Col4) where Col1 is not null pivot Col3
Часть 3 - «Особенности»
Это довольно сложно ... Если я найду больше времени, я опишу, что здесь происходит ... но сейчас просто код:
=QUERY(
transpose(ArrayFormula(SPLIT(
transpose(SPLIT(
TEXTJOIN("^";1;transpose(
{SPLIT(join(" @@ ";transpose(query(transpose(QUERY({INDIRECT($A$1)};$B$9;1));"select Col1 offset 1";0)));" @";0;1);
QUERY(ArrayFormula(IF(TRANSPOSE(query(transpose(QUERY({INDIRECT($A$1)};$B$9;1));"select * offset 1";0))<>"";
query(QUERY({INDIRECT($A$1)};$B$9;1);"select Col1";0);""));"select * offset 1";0)}
))
;"@ ";0;1))
;"^")))
;
"select * offset 1";0)
Часть 4 - Условное форматирование
Для диапазона D9: H применять 3 правила с соответствующим цветом:
=INDEX(INDIRECT("data!$A:$A");MATCH(D9;INDIRECT("data!$B:$B");0);1)="Open"
=INDEX(INDIRECT("data!$A:$A");MATCH(D9;INDIRECT("data!$B:$B");0);1)="Closed"
=INDEX(INDIRECT("data!$A:$A");MATCH(D9;INDIRECT("data!$B:$B");0);1)="Attn"
OK
Это то, что вы собирались достичь?
Опять же - это рабочая копия для вас:
Перейдите по этой ссылке, чтобы получить это (2 листа - данные и отчет)