TOP

अनपिवोटेबल्स (Unpivot)

विवरण

पिवट टेबल (pivot tables) डेटा विश्लेषण में एक शक्तिशाली उपकरण हैं। हालाँकि, कभी-कभी आपको पिवोटेड डेटा को एक नियमित तालिका प्रारूप में रखने के लिए अनपिवोट (unpivot) करने की आवश्यकता होती है (जिसे अन्यथा "सीधा करना" या डेटा को अनपिवोटिंग के रूप में जाना जाता है) ताकि सभी समान मान एक ही कॉलम में हों। उदाहरण के लिए, एक नया या संशोधित चार्ट या रिपोर्ट बनाने के लिए यह आवश्यक है।

आप इस रूपांतरण को Power Query टूल का उपयोग करके Excel में कर सकते हैं, लेकिन यह तेज़ नहीं है और बहुत सुविधाजनक नहीं है। आइए Power Query के बिना सारांश डेटा को रोल आउट करने के लिए एक अलग दृष्टिकोण आज़माएँ।


समस्या का निरूपण

कल्पना करें कि हमें कुछ डेटा सेट को पिवट टेबल से एक फ्लैट टेबल (Unpivot) में बदलने की आवश्यकता है:

मैक्रो की सहायता से ऐसा कार्य बेहतर ढंग से हल किया जाता है। आइए अपनी स्वयं की प्रक्रिया लिखें जो डेटा के साथ एक क्रॉस टेबल (क्रॉस टेबल) को एक नियमित (फ्लैट) टेबल प्रारूप में परिवर्तित करने में सक्षम होगी, जो हमें फिर से अनुमति देगी सारांश परिवर्तित या पूरक डेटा के साथ।

UnPivotTable प्रक्रिया के लिए VBA कोड

संपादक Visual Basic खोलें (सेवा - मैक्रो - संपादक Visual Basic), नया मॉड्यूल डालें (Insert - Module) और इस मैक्रो के टेक्स्ट को वहां कॉपी करें:

Sub UnPivotTable()
  'moonexcel.com.ua  
  Dim InVal    As Variant
  Dim OutVal() As Variant
  Dim j, k, i  As Long
  Dim NewSheet
  
  i = 1
  InVal = Selection.Formula
  ReDim OutVal(1 To Selection.Count, 1 To 3)
  
  For j = 2 To UBound(InVal, 1)
    For k = 2 To UBound(InVal, 2)
      If InVal(j, k) <> "" Then
        OutVal(i, 1) = InVal(j, 1)
        OutVal(i, 2) = InVal(1, k)
        OutVal(i, 3) = InVal(j, k)
        i = i + 1
      End If
    Next k
  Next j
  
  Set NewSheet = Worksheets.Add
  NewSheet.Range("A1").Resize(UBound(OutVal, 1), 3).Value = OutVal
End Sub 

उसके बाद, आप VBA संपादक को बंद कर सकते हैं, Excel पर लौट सकते हैं, स्रोत तालिका का चयन कर सकते हैं (पूरी तरह से, हेडर और देशों के साथ पहले कॉलम के साथ) और मेनू के माध्यम से हमारे मैक्रो को चला सकते हैं सेवा - मैक्रो - मैक्रोज़ (Tools - Macro - Macros) (ALT+F8) .

मैक्रो कार्यपुस्तिका में एक नई शीट सम्मिलित करेगा और उस पर चयनित तालिका का एक नया, पुनर्निर्मित संस्करण बनाएगा। आप बड़ी तालिकाओं के प्रसंस्करण और विश्लेषण के लिए Excel टूल के संपूर्ण शस्त्रागार का उपयोग करके, "पूर्ण कार्यक्रम के साथ" ऐसी तालिका के साथ काम कर सकते हैं।

संबंधित आलेख: