Tenho um conjunto de dados (simplificado) que se parece com o exemplo abaixo
Pontuação | Primeira Língua | FLPorcentagem | Pontuação FLS | Segunda Língua | Porcentagem SL | Pontuação SLS | Ano | Trimestre |
---|---|---|---|---|---|---|---|---|
120 | Java | 90 | 108 | C# | 10 | 12 | 2024 | 4 |
200 | C# | 75 | 150 | C++ | 25 | 50 | 2025 | 1 |
50 | Fá# | 25 | 12,5 | Java | 75 | 37,5 | 2024 | 3 |
100 | Cobol | 100 | 100 | - | 0 | 0 | 2024 | 4 |
80 | C# | 50 | 40 | VB.NET | 50 | 40 | 2024 | 2 |
Preciso criar uma tabela dinâmica para esta tabela, mas a tabela dinâmica deve conter os valores exclusivos das colunas "Primeiro idioma" e "Segundo idioma" como uma coluna e as pontuações somadas das colunas FLScore e SLScore.
Neste exemplo, o resultado seria algo como:
Eu usei:
=UNIQUE(VSTACK(dtScore[First Language];dtScore[Second Language]))
O resultado está no intervalo M10:M16 (segunda imagem) E
=SUMIFS(dtScore[FLScore];dtScore[First Language];M10)+SUMIFS(dtScore[SLScore];dtScore[Second Language];M10)
para obter a soma total para cada idioma.
Mas preciso transformar os dados de forma que eu possa usá-los em uma tabela dinâmica que também possa filtrar por ano e trimestre.
Tenho pensado em usar as funções GROUPBY, FILTER, HSTACK, VSTACK e lambda para transformar os dados, mas não sei por onde começar e como obter o resultado em uma tabela dinâmica que atenda aos critérios mencionados.
Prefiro não usar VBA, apenas funções do Excel
Alguém pode indicar uma direção?
Atualização : Embora eu tenha usado a solução PQ, por ser a mais adequada às minhas necessidades, não parei de experimentar. Consegui usar o PIVOTBY para ter uma matriz por idioma, pontuação e anos como colunas.
A fórmula parece
=PIVOTBY(VSTACK(dtScore[First Language];dtScore[Second Language]);VSTACK(dtScore[Year];dtScore[Year]);VSTACK(dtScore[FLScore];dtScore[SLScore]);SUM)
Uma observação: vou usar VSTACK também para o parâmetro colunas. Embora a coluna seja a mesma (dtScore[Ano]). Se eu apenas inserir dtScore[Ano], a fórmula gera um erro #Value, indicando que há um número inconsistente de linhas.
O resultado do PIVOTBY