Power Query: citu nosacījumu izmantošana nosacītajās slejās - Excel padomi

Satura rādītājs

Piezīme

Šis ir viens no rakstu sērijas, kurā sīki aprakstīti Podcast 2316 izaicinājumam nosūtītie risinājumi.

Datu pārveidošanas risinājumā es vēlējos, lai redzētu, vai kolonnā ir darbinieka vārds vai vērtība, piemēram, Q1, Q2, Q3, Q4. Savā risinājumā es pieņēmu, ka nevienam nebūs nosaukuma ar 2 rakstzīmēm, un tāpēc es pievienoju kolonnu, lai aprēķinātu kolonnas teksta garumu.

Džeisons M izvairījās no kolonnas Garums nepieciešamības, pievienojot savai Nosacījuma kolonnai trīs Else If klauzulas.

Pievienojiet nosacīto kolonnu

Nosacītais darbinieka aprēķins pēc tam meklē, vai ceturksnis ir Null: ja (Ceturksnis) = null, tad (Kategorijas apraksts) cits ir null.

Nosacījuma aprēķins

Šeit ir Džeisona M kods:

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ý nosūtīja risinājumu, kurā tika izmantotas arī vairākas citas If klauzulas:

Vairāki citi, ja

Metjū Viks atsūtīja risinājumu ar vēl vienu veidu, kā identificēt kvartālus. Viņa metode pārbauda, ​​vai teksts sākas ar Q un otrais cipars ir mazāks par 5:

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

Identificējiet ceturtdaļas

Kristians Neibergers izmantoja šo formulu, lai iegūtu kolonnu Darbinieka vārds, Aizpildīts un pēc tam Filtrēts 1. sleja, lai iekļautu tikai Q1, Q2, Q3 vai Q4. Arī Oz Du Soleil izmantoja šo metodi.

Filtrēta kolonna

Excel MVP Ken Puls, iespējams, uzvar ar savu formulu. Tiek meklēts pasvītrojums, lai uzzinātu, vai tas nav darbinieka vārds.

Skatiet Kena pilnu risinājumu Excel MVP Attack Data Cleansing Problem in Power Query.

Meklē pasvītrojumu

Atgriezieties uz Podcast 2316 izaicinājuma galveno lapu.

Izlasiet nākamo šīs sērijas rakstu: Power Query: Darījumu ar vairākām identiskām galvenēm.

Interesanti raksti...