Nota
Este é um de uma série de artigos detalhando soluções enviadas para o desafio Podcast 2316.
Depois de estudar todas as ideias enviadas pelos espectadores, escolhi minhas técnicas favoritas de cada vídeo. Minha solução final usa estas etapas:
- Obter dados, de intervalo nomeado
- Exclua as duas etapas extras adicionadas a Promover cabeçalhos e tipo de mudança. Isso evita ter que quebrar o sufixo dos trimestres. Agradecimentos a Jason M, Ondřej Malinský e Peter Bartholomew por esta ideia.
- Transpor
- Promover cabeçalhos
- Remover, Top Rows, Top 5 Rows. Belo truque de MF Wong.
- Substitua Q1 por _Q1. Repita para os outros três quartos. Obrigado Jonathan Cooper.
- Dividido por Delimitador em _. Este passo incrível mantém os nomes em uma coluna e move os trimestres para a próxima coluna. Proposta por Fowmy, aperfeiçoada por Jonathan Cooper.
- (Nem um passo!) Acesse a Barra de Fórmula e renomeie as colunas como Funcionário e Trimestre. Obrigado Josh Johnson
- Na coluna Funcionário, substitua nada por nulo
- Preencher
- Na coluna Trimestre, altere nulo para Total. Esta ideia de Michael Karpfen
- Desviar outras colunas. Renomear Atrib para Categoria na barra de fórmulas
- Pivot Quarters
- Mova a coluna total para o final
Aqui está meu código final:
let Source = Excel.CurrentWorkbook()((Name="UglyData"))(Content), #"Transposed Table" = Table.Transpose(Source), #"Promoted Headers" = Table.PromoteHeaders(#"Transposed Table", (PromoteAllScalars=true)), #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",(("Category Description", type text), ("Administrative", type number), ("Holiday", Int64.Type), ("PTO/LOA/Jury Duty", Int64.Type), ("Project A", type number), ("Project B", type number), ("Project C", type number))), #"Removed Top Rows" = Table.Skip(#"Changed Type",5), #"Replaced Value" = Table.ReplaceValue(#"Removed Top Rows","Q1","_Q1",Replacer.ReplaceText,("Category Description")), #"Replaced Value1" = Table.ReplaceValue(#"Replaced Value","Q2","_Q2",Replacer.ReplaceText,("Category Description")), #"Replaced Value2" = Table.ReplaceValue(#"Replaced Value1","Q3","_Q3",Replacer.ReplaceText,("Category Description")), #"Replaced Value3" = Table.ReplaceValue(#"Replaced Value2","Q4","_Q4",Replacer.ReplaceText,("Category Description")), #"Split Column by Delimiter" = Table.SplitColumn(#"Replaced Value3", "Category Description", Splitter.SplitTextByDelimiter("_", QuoteStyle.Csv), ("Employee", "Qtr")), #"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",(("Employee", type text), ("Qtr", type text))), #"Replaced Value4" = Table.ReplaceValue(#"Changed Type1","",null,Replacer.ReplaceValue,("Employee")), #"Filled Down" = Table.FillDown(#"Replaced Value4",("Employee")), #"Replaced Value5" = Table.ReplaceValue(#"Filled Down",null,"Total",Replacer.ReplaceValue,("Qtr")), #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Replaced Value5", ("Employee", "Qtr"), "Attribute", "Value"), #"Pivoted Column" = Table.Pivot(#"Unpivoted Other Columns", List.Distinct(#"Unpivoted Other Columns"(Qtr)), "Qtr", "Value", List.Sum), #"Reordered Columns" = Table.ReorderColumns(#"Pivoted Column",("Employee", "Attribute", "Q1", "Q2", "Q3", "Q4", "Total")) in #"Reordered Columns"
Todos os mencionados nesses artigos ou vídeos ganham um patch do Excel Guru. Já enviei vários pelo correio. Se você não receber, deixe um comentário no vídeo abaixo.

O vencedor geral é Bill Szysz. Sua solução de quatro linhas usando M me diz que preciso aprender muito mais sobre o Power Query! Veja suas soluções em Power Query: The World of Bill Szysz.
Assistir vídeo
Aqui está meu vídeo final discutindo as soluções e mostrando a solução final.
Volte para a página principal do desafio Podcast 2316.