سؤال

أريد تغييره من قاعدة بيانات واحدة إلى أخرى.

لا يبدو أن هناك أي خيارات للقيام بذلك على قائمة سياق الجدول المحوري

هل كانت مفيدة؟

المحلول 3

انقر بزر الماوس الأيمن فوق جدول المحور في Excel، اختر "معالج" انقر فوق "الرجوع"، انقر فوق "احصل على البيانات ..." في ملف نافذة الاستعلام - تعريف الجدول

ثم يمكنك إنشاء اتصال جديد أو اختيار

نصائح أخرى

فقط احسب ذلك في أي مكان في أي مكان في الجدول، ثم انتقل إلى علامات التبويب في الجزء العلوي من الصفحة وحدد الخيارات - من هناك، سترى اختيار مصدر بيانات تغيير.

يبدو أن هذا يعتمد بشدة على نسختك من Excel. أنا أستخدم إصدار 2007 ولا يقدم أي خيار معالج عند النقر بزر الماوس الأيمن على الجدول. تحتاج إلى النقر فوق جدول المحور لإجراء "أدوات PivotTable" الإضافية تظهر على يمين علامات التبويب الأخرى في الجزء العلوي من الشاشة. انقر فوق علامة التبويب "خيارات" التي تظهر هنا ثم هناك أيقونة كبيرة في منتصف الشريط المسمى "تغيير مصدر البيانات".

من أجل تغيير مصدر البيانات من الشريط في Excel 2007 ...

انقر فوق جدول المحور الخاص بك في ورقة العمل. انتقل إلى الشريط حيث تقول أدوات الجدول المحورية، تبويب الخيارات. حدد زر تغيير مصدر البيانات. سيظهر مربع الحوار.

للحصول على النطاق الصحيح وتجنب رسالة خطأ ... حدد محتويات الحقل الموجود وحذفه، ثم قم بالتبديل إلى ورقة عمل مصدر البيانات الجديدة وتسليط الضوء على منطقة البيانات (سيبقى مربع الحوار في أعلى جميع النوافذ). بمجرد تحديد مصدر البيانات الجديد بشكل صحيح، سيقوم بملء الحقل الفارغ (الذي قمت بحذفه من قبل) في مربع الحوار. انقر فوق موافق. قم بالتبديل إلى جدول المحور الخاص بك ويجب تحديث البيانات الجديدة من المصدر الجديد.

  • انقر بزر الماوس الأيمن على جدول PIVOT، واختر معالج PivotTable.
  • انقر فوق الزر "الخلفي" مرتين.
  • اختر مصدر البيانات الخارجي، انقر فوق التالي.
  • انقر فوق الحصول على البيانات
  • في علامة التبويب الأولى، قواعد البيانات الخيار الأول هو "مصدر بيانات جديد"

هذه الوظيفة الإضافية ستفعل الحيلة لك.

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

يوضح سلسلة الاتصال، ويسمح بتغييرها. لا تنس تغيير استعلام SQL أيضا، إذا لزم الأمر (مع نفس الأداة).

كن حذرا بعض الشيء من أي حل لا ينطوي على إعادة إنشاء PivotTable من الصفر. من الممكن وجود أسماء خيار حقول المحور الخاص بك من المزامنة مع القيم التي يقدمونها إلى قاعدة البيانات.

على سبيل المثال، في مصنف واحد، أتعامل مع إشراك البيانات الديموغرافية، إذا حاولت تحديد خيار "20-24"، فإن Excel يقدم لك بالفعل الأرقام للأعمار 25-29. لا يخبرك أنه يقوم بذلك، بالطبع.

انظر أدناه لنهج برنامج البرنامجي (VBA) للمشكلة التي تحل هذه المشكلة من بين أمور أخرى. أعتقد أنها كاملة إلى حد ما / قوية، لكنني لا أستخدم pivotTables كثيرا حتى نقدر ردود الفعل.

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

انقر بزر الماوس الأيمن فوق جدول المحور في Excel، اختر "معالج" انقر فوق "الرجوع"، انقر فوق "احصل على البيانات ..." في ملف نافذة الاستعلام - تعريف الجدول

ثم يمكنك إنشاء اتصال جديد أو اختيار

عملت تماما.

يوجد زر Get Data بجوار الزر الصغير باستخدام سهم أحمر بجانب مربع إدخال نص النطاق.

للحصول على إصدار Office MS Excel 2000، انقر فوق الجدول المحوري، ستجد علامة تبويب أعلى من ribon، وتسمى أداة PivotTable - انقر على ذلك يمكنك تغيير مصدر البيانات من علامة تبويب البيانات

في حالة Excel 2007، يمكنك تغيير DataSource في قائمة الخيارات / تغيير مصدر البيانات

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top