Devido à forma como um formulário é configurado, toda vez que um usuário preenche o formulário, diferentes informações trimestrais são armazenadas em uma única linha. Para fins de análise de dados e simplicidade, eu gostaria de "transpor e mesclar" as colunas com as mesmas informações. Neste caso, todas as colunas contendo informações de **trimestre **e informações de **valor**.
Tenho a seguinte tabela:
Negócio | 1º Trimestre | 2º Trimestre | 3º Trimestre | Valor 1º Trimestre | Valor 2º Trimestre | Valor 3º Trimestre |
---|---|---|---|---|---|---|
UM | Q2 | 3º trimestre | Nulo | $ 100 | $ 200 | Nulo |
B | Q1 | Q2 | 3º trimestre | $ 50 | $ 30 | $40 |
Quero transpor as colunas Quarter e seus respectivos valores e gerar o seguinte:
Negócio | Trimestre | Valor |
---|---|---|
UM | Q2 | $ 100 |
UM | 3º trimestre | $ 100 |
UM | Nulo | Nulo |
B | Q1 | $ 50 |
B | Q2 | $ 30 |
B | 3º trimestre | $40 |
Tentei transpor as colunas, mas acabei fazendo uma bagunça e várias linhas.
Outra abordagem, possivelmente mais eficiente, é
Attribute
coluna para mostrar apenasQuarter
eValue
O problema com o último passo, usando a operação Pivot usual no PQ, é que isso resultará em um erro. No entanto, essa função personalizada evita esse problema.
Cole o código abaixo em uma consulta em branco no Editor avançado e renomeie-a como
fnPivotNoAggregation
Função personalizada
Em seguida, use o seguinte para o código principal:
Código principal
Dados originais

Resultados

Nota: É possível fazer isso sem uma função personalizada, mas o tempo de execução seria um pouco maior.
Você certamente pode testar ambos e verificar qual é mais eficiente com seus dados reais
Você pode fazer isso com uma combinação de agrupamento e desarticulação: