Como @Mark mencionou, você precisa usar Tabelas Dinâmicas.
ArrasteaIDparaoscamposLinhaeCadaprodutoparaDataItems
.
Agora mova a soma dos valores de nível de coluna para linha, porque você deseja grupos com base em IDs, não em produtos, e a tabela desejada está pronta.