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

StackOverflow https://stackoverflow.com/questions/725300

Вопрос

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

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

Это было полезно?

Решение 3

Щелкните правой кнопкой мыши на таблице Pivot в Excel Выберите мастер нажмите «назад». Нажмите «Получить данные ...» в файле окна запроса - определение таблицы

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

Другие советы

Только что разобрался — щелкните в любом месте таблицы, затем перейдите на вкладки в верхней части страницы и выберите «Параметры» — оттуда вы увидите выбор «Изменить источник данных».

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

Чтобы изменить источник данных с ленты в Excel 2007...

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

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

  • Щелкните правой кнопкой мыши сводную таблицу, выберите «Мастер сводных таблиц».
  • Дважды нажмите кнопку «Назад».
  • Выберите «Внешний источник данных», нажмите «Далее».
  • Нажмите Получить данные.
  • На первой вкладке «Базы данных» первый вариант — «Новый источник данных».

Это дополнение поможет вам.

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

Щелкните правой кнопкой мыши на таблице Pivot в Excel Выберите мастер нажмите «назад». Нажмите «Получить данные ...» в файле окна запроса - определение таблицы

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

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

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

Для MS Excel 2000 Office Version, нажмите на таблицу Pivot, вы найдете вкладку над рибоном, называемая Pivottable Tool - нажмите, что вы можете изменить источник данных с вкладки Data

В случае Excel 2007 вы можете изменить источник данных в меню «Параметры» / «Изменить источник данных».

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top