Opmerking
Dit is een van een reeks artikelen over oplossingen die zijn ingezonden voor de Podcast 2316-uitdaging.
Nadat ik alle ideeën van kijkers bestudeerd heb, heb ik uit elke video mijn favoriete technieken gekozen. Mijn uiteindelijke oplossing gebruikt deze stappen:
- Gegevens ophalen uit benoemd bereik
- Verwijder de twee extra stappen die zijn toegevoegd aan Headers promoten en Type wijzigen. Dit voorkomt dat het achtervoegsel van de kwartalen moet worden verbroken. Met dank aan Jason M, Ondřej Malinský en Peter Bartholomew voor dit idee.
- Transponeren
- Promoot headers
- Verwijderen, bovenste rijen, bovenste 5 rijen. Leuke truc van MF Wong.
- Vervang Q1 door _Q1. Herhaal voor de andere drie kwartalen. Bedankt Jonathan Cooper.
- Gesplitst door scheidingsteken bij de _. Deze geweldige stap houdt de namen in één kolom en verplaatst de kwartalen naar de volgende kolom. Voorgesteld door Fowmy, geperfectioneerd door Jonathan Cooper.
- (Geen stap!) Ga naar de formulebalk en hernoem de kolommen naar Werknemer en Kwartaal. Bedankt Josh Johnson
- Vervang niets door null in de kolom Werknemer
- Vul naar beneden
- Wijzig in de kolom Kwartaal null in Totaal. Dit idee van Michael Karpfen
- Draai andere kolommen los. Hernoem Attrib naar Categorie in de formulebalk
- Pivot Quarters
- Verplaats de totale kolom naar het einde
Hier is mijn laatste code:
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"
Iedereen die in deze artikelen of video wordt genoemd, wint een Excel Guru-patch. Ik heb er al een aantal verstuurd. Als je er geen ontvangt, laat dan een reactie achter op de onderstaande video.

De overall winnaar is Bill Szysz. Zijn vierregelige oplossing met M vertelt me dat ik veel meer moet leren over Power Query! Zie zijn oplossingen op Power Query: The World of Bill Szysz.
Bekijk video
Hier is mijn laatste video waarin de oplossingen worden besproken en de uiteindelijke oplossing wordt getoond.
Keer terug naar de hoofdpagina voor de Podcast 2316-uitdaging.