Excel में पिवट तालिका डेटा स्रोत कैसे बदलें?




business-intelligence xls (8)

एक्सेल 2007 में रिबन से डेटा स्रोत बदलने के लिए ...

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

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

मैं इसे एक डेटाबेस से दूसरे डेटाबेस में बदलना चाहता हूं।

पिवट तालिका संदर्भ मेनू पर ऐसा करने के लिए कोई विकल्प नहीं दिखता है


किसी भी समाधान से थोड़ा सावधान रहें जिसमें पिचोटटेबल को स्क्रैच से फिर से बनाने में शामिल नहीं है। डेटाबेस के लिए मौजूद मानों के साथ सिंक से बाहर निकलने के लिए आपके पिवोट फ़ील्ड्स के विकल्प नामों के लिए यह संभव है।

उदाहरण के लिए, एक कार्यपुस्तिका में मैं जनसांख्यिकीय डेटा को शामिल करने के साथ काम कर रहा हूं, यदि आप "20-24" आयु बैंड विकल्प चुनने का प्रयास करते हैं, तो एक्सेल वास्तव में आपको 25-29 आयु के आंकड़ों के साथ प्रस्तुत करता है। यह आपको नहीं बताता है कि यह यह कर रहा है।

समस्या के लिए एक प्रोग्रामैटिक (वीबीए) दृष्टिकोण के लिए नीचे देखें जो इस मुद्दे को दूसरों के बीच हल करता है। मुझे लगता है कि यह काफी पूर्ण / मजबूत है, लेकिन मैं पिवोटटेबल्स का अधिक उपयोग नहीं करता इसलिए प्रतिक्रिया की सराहना करता हूं।

Sub SwapSources()

strOldSource = "2010 Data"
strNewSource = "2009 Data"

Dim tmpArrOut

For Each wsh In ThisWorkbook.Worksheets
    For Each pvt In wsh.PivotTables
        tmpArrIn = pvt.SourceData
        ' row 1 of SourceData is the connection string.
        ' rows 2+ are the SQL code broken down into 255-byte chunks.
        ' we need to concatenate rows 2+, replace, and then split them up again

        strSource1 = tmpArrIn(LBound(tmpArrIn))
        strSource2 = ""
        For ii = LBound(tmpArrIn) + 1 To UBound(tmpArrIn)
            strSource2 = strSource2 & tmpArrIn(ii)
        Next ii

        strSource1 = Replace(strSource1, strOldSource, strNewSource)
        strSource2 = Replace(strSource2, strOldSource, strNewSource)

        ReDim tmpArrOut(1 To Int(Len(strSource2) / 255) + 2)
        tmpArrOut(LBound(tmpArrOut)) = strSource1
        For ii = LBound(tmpArrOut) + 1 To UBound(tmpArrOut)
            tmpArrOut(ii) = Mid(strSource2, 255 * (ii - 2) + 1, 255)
        Next ii

        ' if the replacement SQL is invalid, the PivotTable object will throw an error
        Err.Clear
        On Error Resume Next
            pvt.SourceData = tmpArrOut
        On Error GoTo 0
        If Err.Number <> 0 Then
            MsgBox "Problems changing SQL for table " & wsh.Name & "!" & pvt.Name
            pvt.SourceData = tmpArrIn ' revert
        ElseIf pvt.RefreshTable <> True Then
            MsgBox "Problems refreshing table " & wsh.Name & "!" & pvt.Name
        Else
            ' table is now refreshed
            ' need to ensure that the "display name" for each pivot option matches
            ' the actual value that will be fed to the database.  It is possible for
            ' these to get out of sync.
            For Each pvf In pvt.PivotFields
                'pvf.Name = pvf.SourceName
                If Not IsError(pvf.SourceName) Then ' a broken field may have no SourceName
                    mismatches = 0
                    For Each pvi In pvf.PivotItems
                        If pvi.Name <> pvi.SourceName Then
                            mismatches = mismatches + 1
                            pvi.Name = "_mismatch" & CStr(mismatches)
                        End If
                    Next pvi
                    If mismatches > 0 Then
                        For Each pvi In pvf.PivotItems
                            If pvi.Name <> pvi.SourceName Then
                                pvi.Name = pvi.SourceName
                            End If
                        Next
                    End If
                End If
            Next pvf
        End If
    Next pvt
Next wsh

End Sub

बस इसे तालिका में कहीं भी बाहर-क्लिक करें, फिर पृष्ठ के शीर्ष पर स्थित टैब पर जाएं और वहां से विकल्प चुनें- वहां से आप डेटा बदलें चयन डेटा देखेंगे।


ऐसा लगता है कि यह एक्सेल के आपके संस्करण पर भारी निर्भर करता है। मैं 2007 संस्करण का उपयोग कर रहा हूं और जब आप टेबल पर राइट क्लिक करते हैं तो यह कोई विज़ार्ड विकल्प नहीं देता है। स्क्रीन के शीर्ष पर अन्य टैब के दाईं ओर अतिरिक्त 'पिवोटटेबल टूल्स' दिखाई देने के लिए आपको पिवट तालिका पर क्लिक करना होगा। यहां दिखाई देने वाले 'विकल्प' टैब पर क्लिक करें, फिर 'डेटा स्रोत बदलें' नामक रिबन के बीच एक बड़ा आइकन है।


यह ऐड-ऑन आपके लिए चाल करेगा।

http://www.contextures.com/xlPivotPlayPlus01.html

यह कनेक्शन स्ट्रिंग दिखाता है, और इसे बदलने की अनुमति देता है। अगर आवश्यक हो तो क्वेरी एसक्यूएल को भी बदलना न भूलें (उसी टूल के साथ)।


एक्सेल 2007 के मामले में आप विकल्प मेनू / डेटा स्रोत बदलें में डेटास्रोत बदल सकते हैं


  • पिवट तालिका पर राइट क्लिक करें, पिवोटटेबल विज़ार्ड चुनें।
  • दो बार 'बैक' बटन पर क्लिक करें।
  • बाहरी डेटा स्रोत चुनें, अगला क्लिक करें।
  • डेटा प्राप्त करें पर क्लिक करें
  • पहले टैब में, डाटाबेस पहला विकल्प 'नया डेटा स्रोत' है

एक्सेल में पिवट तालिका पर राइट क्लिक करें विज़ार्ड का चयन करें 'बैक' पर क्लिक करें 'डेटा प्राप्त करें' पर क्लिक करें क्वेरी विंडो में फ़ाइल - तालिका परिभाषा

तो आप एक नया बना सकते हैं या एक अलग कनेक्शन चुन सकते हैं

पूरी तरह से काम किया।

डेटा प्राप्त करें बटन टेक्स्ट टेक्स्ट इनपुट बॉक्स के बगल में एक लाल तीर वाला छोटा बटन के बगल में है।





pivot-table