我想将它从一个数据库更改为另一个数据库。
在数据透视表上下文菜单
上似乎没有任何选项可以执行此操作答案 0 :(得分:21)
只需在表格中的任意位置点击它,然后转到页面顶部的标签页并选择选项 - 从那里您将看到更改数据源选项。
答案 1 :(得分:6)
看起来这很大程度上取决于您的Excel版本。我正在使用2007版本,当您右键单击表格时,它不提供向导选项。您需要单击数据透视表以使额外的“数据透视表工具”显示在屏幕顶部其他选项卡的右侧。单击此处显示的“选项”选项卡,然后在功能区中间有一个名为“更改数据源”的大图标。
答案 2 :(得分:3)
右键单击excel中的数据透视表 选择向导 点击'返回' 点击“获取数据......” 在查询窗口中 文件 - 表格定义
然后您可以创建新的或选择不同的连接
答案 3 :(得分:3)
要从excel 2007中的功能区更改数据源...
单击工作表中的数据透视表。转到功能区,其中显示“数据透视表工具”,“选项”选项卡。选择“更改数据源”按钮。将出现一个对话框。
要获得正确的范围并避免错误消息...选择现有字段的内容并将其删除,然后切换到新的数据源工作表并突出显示数据区域(对话框将保持在所有视窗)。正确选择新数据源后,它将填充对话框中的空白字段(之前删除的字段)。单击确定。切换回数据透视表,它应该已使用新数据源中的新数据进行更新。
答案 4 :(得分:2)
答案 5 :(得分:2)
这个附加组件可以帮到你。
http://www.contextures.com/xlPivotPlayPlus01.html
显示连接字符串,并允许更改。 如果需要,也不要忘记更改查询SQL(使用相同的工具)。
答案 6 :(得分:2)
对于任何不涉及从头开始重新创建数据透视表的解决方案,请保持警惕。您的透视字段的选项名称可能与它们提供给数据库的值不同步。
例如,在我正在处理涉及人口统计数据的一本工作簿中,如果您尝试选择“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
答案 7 :(得分:1)
右键单击数据透视表 excel选择向导单击“返回”单击 在查询窗口File中“获取数据...” - 表定义
然后你可以创建一个新的或选择一个 不同的连接
工作得很好。
获取数据按钮位于微小按钮旁边,范围文本输入框旁边有一个红色箭头。
答案 8 :(得分:1)
for MS excel 2000 office版, 单击数据透视表 你会在ribon上方找到一个名为Pivottable工具的标签 - 点击它 您可以从“数据”选项卡更改数据源
答案 9 :(得分:1)
对于Excel 2007您可以在“选项”菜单/“更改数据源”
中更改数据源