Você já deu uma olhada nas tabelas dinâmicas? Isso parece fazer exatamente como você deseja.
A primeira coisa a fazer é garantir que você tenha uma linha de cabeçalho na sua tabela de dados.
Em seguida, selecione qualquer célula no seu intervalo de dados, vá para a guia Inserir e escolha Tabela dinâmica.
Aceite os padrões e clique em OK. Isso abrirá uma nova tabela dinâmica e você desejará colocar Field1 e Field2 na seção "rows" (campo 1 primeiro).
Você só precisa alterar algumas opções de formatação:
Na guia Ferramentas da Tabela Dinâmica (que agora aparece como se estivesse na tabela dinâmica), clique na guia Design e, no grupo Layout, escolha Layout do Relatório / Mostrar no Formulário Tabular
Novamente nas mesmas Ferramentas da Tabela Dinâmica / Design / Layout , escolha Subtotais / Não Mostrar Subtotais
Novamente nas mesmas Ferramentas da Tabela Dinâmica / Design / Layout , escolha Grand Total / Off para linhas e colunas
Por fim, clique com o botão direito em qualquer lugar da tabela de dados e escolha Opções da tabela dinâmica e, na primeira guia (Layout e Formato), marque a caixa que diz Mesclar e centralizar células com marcadores
Você pode reutilizar essa tabela dinâmica para apontar para um novo conjunto de dados quando ele estiver disponível ( Ferramentas de tabela dinâmica / Opções / Alterar fonte de dados )
EDIT: Só para mostrar como é a saída final. Isso me levou menos de vinte cliques: