पावर क्वेरी: बिल स्काईज़ की दुनिया - एक्सेल टिप्स

विषय - सूची

29 विभिन्न प्रविष्टियों की समीक्षा करने के बाद, मैं विजेता को बिल स्ज़िज़ घोषित कर रहा हूँ! बिल उन लोगों में से एक है जो पावर क्वेरी इंटरफ़ेस का उपयोग किए बिना आरामदायक टाइपिंग क्वेरियाँ हैं। वह लिखते हैं, “यह दर्जनों तरीकों से किया जा सकता है। मैं तुम्हें चार भेज रहा हूं। ”

आपको एप्लाइड स्टेप्स पैन का उपयोग करके एक बार में एक कदम के माध्यम से बिल के समाधान और कदम डाउनलोड करना चाहिए।

बिल का सबसे आसान उपाय है ट्रांसपोज़ विधि। लाल रंग में कुछ भी कोड है जिसे बिल ने बदल दिया या हाथ से लिखा:

let Source = Excel.CurrentWorkbook()((Name="UglyData"))(Content), #"Transposed Table" = Table.Transpose(Source), #"Promoted Headers" = Table.PromoteHeaders(#"Transposed Table", (PromoteAllScalars=true)), #"Added Index" = Table.AddIndexColumn(#"Promoted Headers", "Indeks", 0, 1), #"Integer-Divided Column" = Table.TransformColumns(#"Added Index", (("Indeks", each Number.IntegerDivide(_, 5), Int64.Type))), #"Grouped Rows" = Table.Group(#"Integer-Divided Column", ("Indeks"), (("tbl", each Table.Skip(_, 1), type table), ("Name", each _(0)(Category Description), type text))), #"Filtered Rows" = Table.SelectRows(#"Grouped Rows", each ((Name) "Dept. Total")), #"Expanded (0)" = Table.ExpandTableColumn(#"Filtered Rows", "tbl", Table.ColumnNames(#"Promoted Headers")), #"Removed Columns" = Table.RemoveColumns(#"Expanded (0)",("Indeks")), #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Removed Columns", ("Category Description", "Name"), "Atrybut", "Wartość"), #"Pivoted Column" = Table.Pivot(#"Unpivoted Other Columns", List.Distinct(#"Unpivoted Other Columns"(#"Category Description")), "Category Description", "Wartość", List.Sum), #"Inserted Sum" = Table.AddColumn(#"Pivoted Column", "Total", each List.Sum(((Q1), (Q2), (Q3), (Q4))), type number), #"Renamed Columns" = Table.RenameColumns(#"Inserted Sum",(("Atrybut", "Category Description"))) in #"Renamed Columns" 

कंबाइन विधि के लिए, बिल कहता है कि यह एम भाषा से पता चलता है। लेकिन वह एक पेशेवर अनुप्रयोग में इसका उपयोग नहीं करेगा। हालांकि, एम कोड की केवल चार लाइनों के साथ, यह प्रभावशाली है। लाल रंग की कोई भी चीज़ हाथ से लिखी जाती है:

let Source = Table.PromoteHeaders(Excel.CurrentWorkbook()((Name="UglyData"))(Content) , (PromoteAllScalars=true)), Lists = Table.FromColumns((List.Transform((0… ((List.Count(Table.ColumnNames(Source))-6)/5)-1), each List.Range(Table.ColumnNames(Source), _*5+6, 5)) )), AlmostReady = Table.Combine(Table.AddColumn(Lists, "Columns", each Table.FromColumns((Table.Column(Source, Table.ColumnNames(Source)(0))) & (List.Repeat(((Column1)(0)), Table.RowCount(Source))) & List.Transform(List.Skip((Column1), 1), each Table.Column(Source, _)), (Table.ColumnNames(Source)(0), "Name") & List.Transform(List.Skip((Column1), 1), each Text.BeforeDelimiter(_, "_")) ) )(Columns)), Ready = Table.AddColumn(AlmostReady, "Total", each List.Sum(List.Skip(Record.ToList(_), 2))) in Ready 

विधेयक की हेल्पर टेबल विधि आंशिक रूप से हाथ से लिखी गई है:

let Source = Excel.CurrentWorkbook()((Name="UglyData"))(Content), #"Promoted Headers" = Table.PromoteHeaders(Source, (PromoteAllScalars=true)), HelperTbl = Table.FromColumns((List.Skip(Table.ColumnNames(#"Promoted Headers"), 1), List.Transform((0… List.Count(Table.ColumnNames(#"Promoted Headers"))-2), each Number.IntegerDivide(_, 5)))), #"Grouped Rows" = Table.Group(HelperTbl, ("Column2"), (("tbl", each Table.TransformColumnNames(Table.SelectColumns(#"Promoted Headers", _(Column1) & (Table.ColumnNames(#"Promoted Headers")(0))), each Text.BeforeDelimiter(_, "_")), type table))), Combined = Table.Combine(Table.AddColumn(#"Grouped Rows", "Tables", (x) => Table.SelectColumns(Table.AddColumn(x(tbl), "Name", each Table.ColumnNames(x(tbl))(0)), List.Skip(Table.ColumnNames(x(tbl)), 1) & ("Name")) ) (Tables)), #"Filtered Rows" = Table.SelectRows(Combined, each ((Name) "Dept. Total")), #"Removed Other Columns" = Table.SelectColumns(#"Filtered Rows",List.LastN(Table.ColumnNames(#"Filtered Rows"), 2) & List.RemoveLastN(Table.ColumnNames(#"Filtered Rows"), 2)) in #"Removed Other Columns"

बिल की अंतिम विधि एक fxUnpivot फ़ंक्शन का उपयोग करती है जो उसने बहुत पहले लिखा था। इसे देखने के लिए वर्कबुक डाउनलोड करें।

इस श्रृंखला में अगला लेख पढ़ने के लिए: वन डायनामिक एरे फॉर्मूला।

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

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