Jõupäring: muude tingimuste veergude kasutamine tingimusveergudes - Exceli näpunäited

Lang L: none (table-of-contents)

Märge

See on üks artiklite seeria, mis kirjeldab üksikasjalikult Podcast 2316 väljakutsele saadetud lahendusi.

Andmete ümberkujundamise lahenduses soovisin viisi, et näha, kas veerg sisaldab töötaja nime või väärtust nagu Q1, Q2, Q3, Q4. Eeldasin oma lahenduses, et kellelgi pole 2 tähemärgiga nime, ja seetõttu lisasin veeru, et arvutada veerus oleva teksti pikkus.

Jason M vältis veeru Pikkus vajadust, lisades oma tingimuslikku veergu kolm muud Ifi klauslit.

Lisage tingimuslik veerg

Töötaja tingimuslik arvutus otsib seejärel, et kvartal oleks tühi: kui (kvartal) = null, siis (kategooria kirjeldus) muul juhul null.

Tingimuslik arvutus

Siin on Jasoni M-kood:

let Source = Excel.CurrentWorkbook()((Name="UglyData"))(Content), #"Transposed Table" = Table.Transpose(Source), #"Promoted Headers" = Table.PromoteHeaders(#"Transposed Table", (PromoteAllScalars=true)), #"Added Conditional Column" = Table.AddColumn(#"Promoted Headers", "Quarter", each if (Category Description) = "Q1" then (Category Description) else if (Category Description) = "Q2" then (Category Description) else if (Category Description) = "Q3" then (Category Description) else if (Category Description) = "Q4" then (Category Description) else null), #"Added Conditional Column1" = Table.AddColumn(#"Added Conditional Column", "Employee", each if (Quarter) = null then (Category Description) else null), #"Filled Up" = Table.FillUp(#"Added Conditional Column1",("Quarter")), #"Filled Down" = Table.FillDown(#"Filled Up",("Employee")), #"Inserted Distinct Count" = Table.AddColumn(#"Filled Down", "Distinct Count", each List.NonNullCount(List.Distinct(((Category Description), (Employee)))), Int64.Type), #"Filtered Rows1" = Table.SelectRows(#"Inserted Distinct Count", each (Distinct Count) 1), #"Removed Columns1" = Table.RemoveColumns(#"Filtered Rows1",("Distinct Count")), #"Removed Columns" = Table.RemoveColumns(#"Removed Columns1",("Category Description")), #"Filtered Rows" = Table.SelectRows(#"Removed Columns", each ((Employee) "Dept. Total")), #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Filtered Rows", ("Quarter", "Employee"), "Attribute", "Value"), #"Renamed Columns" = Table.RenameColumns(#"Unpivoted Other Columns",(("Attribute", "Category Description"))), #"Pivoted Column" = Table.Pivot(#"Renamed Columns", List.Distinct(#"Renamed Columns"(Quarter)), "Quarter", "Value"), #"Inserted Sum" = Table.AddColumn(#"Pivoted Column", "Total", each List.Sum(((Q1), (Q2), (Q3), (Q4))), type number), #"Reordered Columns" = Table.ReorderColumns(#"Inserted Sum",("Category Description", "Employee", "Q1", "Q2", "Q3", "Q4", "Total")) in #"Reordered Columns"

Ondřej Malinský saatis lahenduse, mis kasutas ka mitut muud Ifi klauslit:

Mitu muud-kui

Matthew Wykle saatis lahenduse, kus oli veel üks viis kvartalite tuvastamiseks. Tema meetod kontrollib, kas tekst algab Q-ga ja teine ​​number on väiksem kui 5:

if Text.Start((Attribute),1)="Q" and Number.From(Text.Middle((Attribute),1,1))<5 then Text.Start((Attribute),2) else "Total")

Tuvastage kvartalid

Christian Neuberger kasutas seda valemit, et saada veerg 1 Töötaja nimi, Täidetud ja seejärel Filtritud veerg 1 lisada ainult Q1, Q2, Q3 või Q4. Seda meetodit kasutas ka Oz Du Soleil.

Filtreeritud veerg

Exceli MVP Ken Puls võidab tõenäoliselt oma valemiga. Allakriipsutus otsib teada, kas see pole töötaja nimi.

Vaadake Keni täielikku lahendust Exceli MVP-des Attack Data Power Cleaning Problem Power Query.

Allakriipsu otsimine

Naaske Podcast 2316 väljakutse avalehele.

Lugege selle sarja järgmist artiklit: Power Query: mitme identse päisega tegelemine.

Huvitavad Artiklid...