Satır Öğelerini Sıralama - Excel İpuçları

İçindekiler

Not

Bu, Podcast 2316 yarışması için gönderilen çözümleri ayrıntılarıyla anlatan bir dizi makaleden biridir.

Çözümümle ilgili sorunlardan biri, kategorilerin son sırasının mutlaka sütunların orijinal sırasına uymamasıdır. Bunu videomun en sonunda fark ettim ve özellikle önemli olmadığı için endişelenmedim.

Ancak Josh Johnson, sorunu çözen bir çözüm yolladı. Josh bir Dizin sütunu kullandığını söylediğinde, bunun Power Query'deki Dizin ve Modulo'ya benzediğini varsaydım: Kayıt Gruplarını 1'den 5'e kadar tekrar tekrar say. Ancak Josh'un kullanımı tamamen farklıydı.

Not: Excel MVP John MacDougall da bu yöntemi kullandı, ancak dizin sütununu kategori açıklamasının sonuna birleştirdi. John'un videosunu buradan izleyin: https://www.youtube.com/watch?v=Dqmb6SEJDXI ve koduyla ilgili daha fazla bilgiyi buradan okuyun: Excel MVP'leri Power Query'de Veri Temizleme Sorununa Saldırır.

Sürecin başlarında, Josh hala yalnızca altı kayda sahipken, 1'den başlayan bir dizin ekledi. Josh, formül çubuğunu tıkladı ve Dizin sütununu Kategori olarak yeniden adlandırdı.

Formül çubuğundaki değiştirilen isim

Kategori sütunu yeni son sütundur. İlk olarak hareket ettirmek için Başlangıç'a Taşı'yı kullandı:

Başa git

Bundan sonra birçok başka adım gerçekleşir. Yenilikçi olan ancak şimdiye kadar çoğunlukla diğer makalelerde ele alınan adımlardır. Bu tür pek çok adımdan sonra, 1'den 6'ya kadar olan Kategori numaralarının sadece bir hata olduğunu düşünmeye başladım. Muhtemelen Josh'un onları kullanmadan sileceğini düşündüm.

Josh Unpivots, ardından koşullu sütun, ardından doldurma, sonra pivotlar, toplamı ekler. O Kategori sütununu hiç kullanmıyor gibi görünüyor. Birçok adımdan sonra burada:

Toplam ekle

Ancak son adımlarda Josh, verileri Çalışan Adına ve ardından Kategoriye göre sıralar!

Çalışan adına göre kategoriye göre sırala

Bu noktada Kategori sütununu silebilir. Son fark: PTO, tıpkı orijinal sütunlarda olduğu gibi Proje A'dan önce gelir. Hoş bir dokunuş.

Ayrıca Josh'un bu adımlardan geçtiğini gösteren bir video gönderdiğini de belirteceğim. Power Query'nin içindeki klavye kısayollarını kullandığı için Josh'a şeref!

Klavye kısayolları

İşte Josh'un kodu:

let Source = Excel.CurrentWorkbook()((Name="UglyData"))(Content), #"Promoted Headers" = Table.PromoteHeaders(Source, (PromoteAllScalars=true)), #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",(("Category Description", type text), ("Dept. Total", type number), ("Q1", type number), ("Q2", type number), ("Q3", type number), ("Q4", Int64.Type), ("Employee 1", type number), ("Q1_1", type number), ("Q2_2", type number), ("Q3_3", Int64.Type), ("Q4_4", Int64.Type), ("Employee 2", Int64.Type), ("Q1_5", Int64.Type), ("Q2_6", Int64.Type), ("Q3_7", Int64.Type), ("Q4_8", Int64.Type), ("Employee 3", Int64.Type), ("Q1_9", Int64.Type), ("Q2_10", Int64.Type), ("Q3_11", Int64.Type), ("Q4_12", Int64.Type), ("Employee 4", type number), ("Q1_13", type number), ("Q2_14", type number), ("Q3_15", type number), ("Q4_16", Int64.Type))), #"Added Index" = Table.AddIndexColumn(#"Changed Type", "Category", 1, 1), #"Reordered Columns" = Table.ReorderColumns(#"Added Index",("Category", "Category Description", "Dept. Total", "Q1", "Q2", "Q3", "Q4", "Employee 1", "Q1_1", "Q2_2", "Q3_3", "Q4_4", "Employee 2", "Q1_5", "Q2_6", "Q3_7", "Q4_8", "Employee 3", "Q1_9", "Q2_10", "Q3_11", "Q4_12", "Employee 4", "Q1_13", "Q2_14", "Q3_15", "Q4_16")), #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Reordered Columns", ("Category", "Category Description"), "Attribute", "Value"), #"Extracted Text Before Delimiter" = Table.TransformColumns(#"Unpivoted Other Columns", (("Attribute", each Text.BeforeDelimiter(_, "_"), type text))), #"Added Conditional Column" = Table.AddColumn(#"Extracted Text Before Delimiter", "Employee Name", each if not Text.StartsWith((Attribute), "Q") then (Attribute) else null), #"Filled Down" = Table.FillDown(#"Added Conditional Column",("Employee Name")), #"Filtered Rows" = Table.SelectRows(#"Filled Down", each ((Attribute) = "Q1" or (Attribute) = "Q2" or (Attribute) = "Q3" or (Attribute) = "Q4") and ((Employee Name) "Dept. Total")), #"Pivoted Column" = Table.Pivot(#"Filtered Rows", List.Distinct(#"Filtered Rows"(Attribute)), "Attribute", "Value", List.Sum), #"Inserted Sum" = Table.AddColumn(#"Pivoted Column", "Total", each List.Sum(((Q1), (Q2), (Q3), (Q4))), type number), #"Sorted Rows" = Table.Sort(#"Inserted Sum",(("Employee Name", Order.Ascending), ("Category", Order.Ascending))), #"Removed Columns" = Table.RemoveColumns(#"Sorted Rows",("Category")) in #"Removed Columns"

Podcast 2316 yarışması için ana sayfaya dönün.

Bu dizideki sonraki makaleyi okuyun: Excel MVP'leri Power Query'de Veri Temizleme Sorununa Saldırıyor.

Ilginç makaleler...