Как изменить источник сводной таблицы в 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