पावर क्वेरी: सशर्त कॉलम में यदि क्लॉस का उपयोग कर रहा है - एक्सेल टिप्स

विषय - सूची

ध्यान दें

यह पॉडकास्ट 2316 चुनौती के लिए भेजे गए समाधानों का विवरण देने वाले लेखों की एक श्रृंखला है।

डेटा को पुन: आकार देने के मेरे समाधान में, मैं यह देखना चाहता था कि क्या कॉलम में कर्मचारी का नाम या मान जैसे Q1, Q2, Q3, Q4 है। मेरे समाधान में, मैंने मान लिया कि किसी का नाम 2 वर्णों के साथ नहीं होगा, और इसलिए मैंने कॉलम में पाठ की लंबाई की गणना करने के लिए एक कॉलम जोड़ा।

जेसन एम ने अपने सशर्त कॉलम में तीन एल्स इफ़ क्लॉज़ जोड़कर लंबाई के कॉलम की आवश्यकता को टाल दिया।

सशर्त कॉलम जोड़ें

कर्मचारी के लिए सशर्त गणना तब क्वार्टर के अशक्त होने की तलाश करती है: यदि (क्वार्टर) = शून्य तो (श्रेणी विवरण) और अशक्त।

सशर्त गणना

यहाँ जेसन के एम कोड है:

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 Oej Malinský ने एक ऐसे समाधान में भेजा जिसमें कई एल्स का उपयोग किया जाता है और साथ ही साथ:

कई और-अगर

मैथ्यू व्याकेल ने क्वार्टर की पहचान करने के लिए एक और तरीका के साथ एक समाधान में भेजा। उसकी विधि दोनों की जांच करती है कि पाठ Q से शुरू होता है और दूसरा अंक 5 से कम है:

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

तिमाहियों को पहचानें

क्रिश्चियन न्युबर्गर ने इस फॉर्मूले का इस्तेमाल एम्प्लॉई नेम, भरा डाउन, और फिर फ़िल्टर किए गए कॉलम 1 में केवल Q1, Q2, Q3 या Q4 को शामिल करने के लिए किया। ओज डू सोलिल ने भी इस पद्धति का उपयोग किया।

फ़िल्टर्ड कॉलम

एक्सेल एमवीपी केन पल्स शायद अपने सूत्र के साथ जीतता है। यह जानने के लिए कि क्या यह कर्मचारी का नाम नहीं है, एक अंडरस्कोर की तलाश करता है।

एक्सेल एमवीपी पर केन का पूर्ण समाधान देखें पावर क्वेरी में डेटा सफाई की समस्या।

अंडरस्कोर की तलाश है

पॉडकास्ट 2316 चुनौती के लिए मुख्य पृष्ठ पर लौटें।

इस श्रृंखला में अगला लेख पढ़ें: पॉवर क्वेरी: मल्टीपल आइडेंटिकल हेडर्स से निपटना।

दिलचस्प लेख...