Как изменить источник сводной таблицы в Excel? [закрытый]

Я хочу, чтобы изменить его из одной базы данных в другую.

в контекстном меню сводной таблицы нет никаких опций для этого

10 ответов


просто понял-нажмите в любом месте таблицы, затем перейдите на вкладки в верхней части страницы и выберите Параметры-оттуда вы увидите выбор источника данных изменения.


похоже, это сильно зависит от вашей версии Excel. Я использую версию 2007, и она не предлагает опции мастера при щелчке правой кнопкой мыши по таблице. Вам нужно нажать на сводную таблицу, чтобы дополнительные "инструменты сводной таблицы" появились справа от других вкладок в верхней части экрана. Нажмите вкладку "Параметры", которая появляется здесь, то есть большой значок в середине ленты с именем "изменить источник данных".


щелкните правой кнопкой мыши на сводной таблице в Excel выберите мастер нажмите кнопку "Назад" нажмите "Получить данные"...' в окне запроса Определение Таблицы Файлов

затем вы можете создать новую или выбрать другое соединение


для изменения источника данных с ленты в excel 2007...

нажмите на сводную таблицу на листе. Перейдите на ленту, где написано "инструменты сводной таблицы", вкладка "параметры". Нажмите кнопку Изменить источник данных. Появится диалоговое окно.

чтобы получить правильный диапазон и избежать сообщения об ошибке... выберите содержимое существующего поля и удалите его, затем перейдите на новый лист источника данных и выделите область данных (диалоговое окно останется поверх всех окон). Как только вы правильно выбрали новый источник данных, он заполнит пустое поле (которое вы удалили раньше) в диалоговом окне. нажимать OK. Вернитесь к сводной таблице, и она должна быть обновлена новыми данными из нового источника.


  • щелкните правой кнопкой мыши сводную таблицу, выберите мастер сводной таблицы.
  • дважды нажмите кнопку "Назад".
  • выберите внешний источник данных, нажмите кнопку Далее.
  • Нажмите Получить Данные
  • на первой вкладке базы данных первым вариантом является "новый источник данных"

Это дополнение сделает трюк для вас.

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

Он показывает строку подключения и позволяет ее изменять. Не забудьте также изменить SQL запроса, если это необходимо (с тем же инструментом).


будьте немного осторожны с любым решением, которое не требует повторного создания сводной таблицы с нуля. Имена параметров ваших сводных полей могут не синхронизироваться со значениями, которые они представляют в базе данных.

например, в одной книге я имею дело с демографическими данными, если вы попытаетесь выбрать опцию возрастной группы "20-24", Excel фактически представит вам цифры для возрастов 25-29. Это, конечно, не говорит вам, что он делает это.

см. ниже для программного (VBA) подхода к проблеме, которая решает эту проблему среди других. Я думаю, что это довольно полный/надежный, но я не использую сводные таблицы, поэтому буду признателен за обратную связь.

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 выберите мастер нажмите кнопку "Назад" нажмите - получить данные...'в файле окна запроса - Определение Таблицы

затем вы можете создать новую или выбрать другое соединение

работало отлично.

кнопка Получить данные находится рядом с крошечной кнопкой с красной стрелкой рядом с полем ввода текста диапазона.


для версии офиса MS excel 2000, нажмите на сводную таблицу вы найдете вкладку над ribon, называемую Pivottable tool-нажмите на нее Вы можете изменить источник данных с вкладки Data


в случае Excel 2007 вы можете изменить источник данных в меню опций / изменить источник данных