एक कॉलम में सेल कंटेंट को दूसरे कॉलम से लॉजिक का उपयोग करके


2

मैं नीचे दिए गए अन्य विवरणों से प्राप्त तर्क का उपयोग करके एक कॉलम से सेल सामग्री को संयोजित और सूचीबद्ध करना चाहूंगा

डेटा सेट

Name             Sales order number

Harry1           1234
Dave2            1235
Mary3            1234
Bill4            1234
Tom5             1235

सूत्र विक्रय आदेश संख्याओं को देखेगा, सभी नामों को समान बिक्री क्रम संख्या के साथ एकत्रित करेगा और "बेच दिया" नामक एकल कॉलम में नाम प्रदर्शित करेगा।

परिणाम

  Name            Sales Order Number            Sold by

Harry1            1234                          Harry1, Mary3, Bill4
Dave2             1235                          Dave2, Tom5
Mary3             1234                          Harry1, Mary3, Bill4
Bill4             1234                          Harry1, Mary3, Bill4
Tom5              1235                          Dave2, Tom5

यह इस तरह से करना अस्वाभाविक लग सकता है लेकिन मुझे एक बड़ा डेटा सेट मिला है और फिर "परिणाम" का उपयोग करके एक पिवट करेगा

एक साधारण IF स्टेटमेंट करके मैंने पहला नाम कॉलम द्वारा बेचा गया है, लेकिन यह पता नहीं लगा सकता है कि सभी नामों को समान बिक्री ऑर्डर के साथ कैसे एकत्रित किया जाए और उन्हें कॉलम में सूचीबद्ध करें


2
एक विशाल डेटा सेट के साथ यह एक सरल सूत्र के साथ संभव नहीं होगा। कुछ छँटाई और धुरी तालिका की तरह लगता है VBA के बिना आपका सबसे अच्छा शर्त होगा
Raystafarian

ठीक है विशाल से मेरा मतलब 26k पंक्तियों से है .. हमारे पास अन्य डेटा सेट हैं जो एक्सेल शीट के पहले टैब को अधिकतम करते हैं और हमें एक नए टैब का उपयोग करने के लिए मजबूर करते हैं लेकिन मैं इस तर्क को उस शीट पर लागू नहीं करूंगा।
user593732

क्या आपने रिलेशनल डेटाबेस में जाने के बारे में सोचा है?
रेस्टाफेरियन

जवाबों:


0

आप इस परिवर्तन कदम को मुफ्त Microsoft पावर क्वेरी ऐड-इन के साथ कर सकते हैं ।
यह VBA नहीं है, लेकिन इस मामले में, UI के उपयोग के बगल में, कोड के कुछ चरण हैं।

डेटा क्वेरी से डेटासेट -> डेटा आउटपुट तालिका "डेटासेट" -> पावर क्वेरी से डेटा आउटपुट

  1. डेटासेट को तालिका के रूप में परिभाषित करें (मैं इसे निम्नलिखित स्क्रिप्ट में "डेटासेट" कहता हूं)
  2. रिबन पावर क्वेरी पर, UI में तालिका आयात करें ("टेबल से")
  3. स्क्रिप्ट को एडवांस एडिटर में नीचे रखें (रिबन व्यू -> एडवांस्ड एडिटर)

यहाँ एम कोड है:

let
    Source = Excel.CurrentWorkbook(){[Name="Dataset"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Name", type text}, {"Sales order number", Int64.Type}}),
    #"Merged Queries" = Table.NestedJoin(#"Changed Type",{"Sales order number"},#"Changed Type",{"Sales order number"},"NewColumn",JoinKind.LeftOuter),

    // Function for Merging the matching rows
    List_MatchingRows=(Table, Column) =>
        let 
            ColumnToMerge = Table.SelectColumns(Table, Column),
            ListMatch = Table.ToList(ColumnToMerge),
            SingleLine = Text.TrimEnd(Text.TrimEnd(Lines.ToText(ListMatch, ", ")," "),",")
        in
            SingleLine,


    #"Added Custom" = Table.AddColumn(#"Merged Queries", "Sold by", each List_MatchingRows([NewColumn],"Name")),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"NewColumn"})

in
    #"Removed Columns"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.