पावर क्वेरी: बार-बार 5 के माध्यम से 1 के रूप में रिकॉर्ड की संख्या समूह - एक्सेल टिप्स

ध्यान दें

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

मेरी पावर क्वेरी चैलेंज में, प्रत्येक 5 वें रिकॉर्ड से नाम फ़ील्ड को लेने और इसे पाँच रिकॉर्ड तक कॉपी करने का एक कदम था। मेरा मूल समाधान स्पष्ट था, इस तथ्य पर भरोसा करते हुए कि नाम की लंबाई 2 वर्णों से अधिक लंबी होगी।

एमएफ वोंग, माइकल कार्पेन, पीटर बार्थोलोम्यू, क्रिस मैकनील, जेमी रोजर्स सहित कई लोगों ने इंडेक्स कॉलम को शामिल करते हुए बेहतर समाधान का इस्तेमाल किया।

आइए उस प्रक्रिया को चुनें जहां डेटा इस तरह दिखता है:

डेटा तालिका

सबसे पहले, एमएफ वोंग ने उल्लेख किया कि आपको पहले पांच रिकॉर्ड की आवश्यकता नहीं है। आप उपयोग कर सकते हैं

Home, Remove Rows, Remove Top Rows… , 5 Rows.

शीर्ष पंक्तियों को निकालें

एक्सेल पर आग से Excel MVP Oz du Soleil को उन पांचों से भी छुटकारा मिल गया, लेकिन उन्होंने ऐसा तब किया जब वे अभी भी कॉलम थे।

फिर, कॉलम जोड़ें, इंडेक्स कॉलम जोड़ें, 0. से यह एनएन के माध्यम से 0 का एक नया कॉलम उत्पन्न करता है।

सूचकांक स्तंभ

चयनित नए इंडेक्स कॉलम के साथ, ट्रांसफ़ॉर्म टैब पर जाएं और नंबर टैब समूह से मानक ड्रॉप-डाउन मेनू चुनें। सावधान रहें: ऐड कॉलम टैब पर एक समान ड्रॉप-डाउन है, लेकिन ट्रांसफॉर्म टैब पर एक का चयन करने से अतिरिक्त कॉलम जोड़ने से रोकता है। इस ड्रॉप-डाउन से मोडुलो चुनें और फिर निर्दिष्ट करें कि आप 5 से विभाजित होने के बाद शेष चाहते हैं।

मोदुलो

फिर

मापांक

यह 0 से 4 की संख्या को बार-बार दोहराता है।

परिणाम

यहां से, कर्मचारी के नाम को लाने के चरण मेरे मूल वीडियो के समान हैं।

एक सशर्त कॉलम जोड़ें जो या तो नाम या मान शून्य पर लाता है और फिर नीचे भरें। इस कॉलम की गणना करने के और तरीके पावर क्वेरी में पाए जाते हैं: एल्स इफ़ यू क्लॉज़ इन कॉन्डिशनल कॉलम।

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

पहली पंक्ति से अगली पांच पंक्तियों तक नाम भरने के लिए नीचे भरें।

अपने वीडियो के लिए एमएफ वोंग को धन्यवाद। अंग्रेजी कैप्शन के लिए CC चालू करना सुनिश्चित करें।
https://www.youtube.com/watch?v=So1n7sLE_Mg

पीटर बार्थोलोम्यू का वीडियो:
https://www.youtube.com/watch?v=gb3OPfF_BNc

माइकल कार्पेन ने यह भी महसूस किया कि योग को हटाने और बाद में उन्हें वापस जोड़ने की कोई आवश्यकता नहीं है। उसका एम-कोड है:

let Quelle = Excel.CurrentWorkbook()((Name="UglyData"))(Content), #"Höher gestufte Header" = Table.PromoteHeaders(Quelle, (PromoteAllScalars=true)), #"Geänderter Typ" = Table.TransformColumnTypes(#"Höher gestufte Header",(("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))), #"Entpivotierte andere Spalten" = Table.UnpivotOtherColumns(#"Geänderter Typ", ("Category Description"), "Attribut", "Wert"), #"Hinzugefügter Index" = Table.AddIndexColumn(#"Entpivotierte andere Spalten", "Index", 1, 1), #"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(#"Hinzugefügter Index", "Benutzerdefiniert", each Number.Mod((Index)-1,5)), #"Hinzugefügte benutzerdefinierte Spalte1" = Table.AddColumn(#"Hinzugefügte benutzerdefinierte Spalte", "Benutzerdefiniert.1", each if (Benutzerdefiniert)=0 then (Attribut) else null), #"Nach unten gefüllt" = Table.FillDown(#"Hinzugefügte benutzerdefinierte Spalte1",("Benutzerdefiniert.1")), #"Neu angeordnete Spalten" = Table.ReorderColumns(#"Nach unten gefüllt",("Benutzerdefiniert.1", "Attribut", "Category Description", "Wert", "Index", "Benutzerdefiniert")), #"Geänderter Typ1" = Table.TransformColumnTypes(#"Neu angeordnete Spalten",(("Benutzerdefiniert", type text))), #"Hinzugefügte benutzerdefinierte Spalte2" = Table.AddColumn(#"Geänderter Typ1", "Benutzerdefiniert.2", each if (Benutzerdefiniert) = "0" then "TOTAL" else "Q"&(Benutzerdefiniert)), #"Neu angeordnete Spalten1" = Table.ReorderColumns(#"Hinzugefügte benutzerdefinierte Spalte2",("Attribut", "Category Description", "Benutzerdefiniert.1", "Wert", "Index", "Benutzerdefiniert", "Benutzerdefiniert.2")), #"Entfernte Spalten" = Table.RemoveColumns(#"Neu angeordnete Spalten1",("Attribut", "Index", "Benutzerdefiniert")), #"Pivotierte Spalte" = Table.Pivot(#"Entfernte Spalten", List.Distinct(#"Entfernte Spalten"(Benutzerdefiniert.2)), "Benutzerdefiniert.2", "Wert", List.Sum), #"Neu angeordnete Spalten2" = Table.ReorderColumns(#"Pivotierte Spalte",("Benutzerdefiniert.1", "Category Description", "Q1", "Q2", "Q3", "Q4", "TOTAL")), #"Sortierte Zeilen" = Table.Sort(#"Neu angeordnete Spalten2",(("Benutzerdefiniert.1", Order.Ascending))), #"Umbenannte Spalten" = Table.RenameColumns(#"Sortierte Zeilen",(("Benutzerdefiniert.1", "Employee Name"))) in #"Umbenannte Spalten"

ध्यान दें कि जोश जॉनसन ने एक इंडेक्स कॉलम का भी उपयोग किया, लेकिन पहले चरणों में से एक के रूप में और अंतिम चरणों में से एक में एक सॉर्ट के रूप में इस्तेमाल किया।

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

इस श्रृंखला में अगला लेख पढ़ें: पावर क्वेरी: एक कॉलम से बाएं 2 वर्ण निकालना।

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