如何将dynamic数据透视表的部分移动到单独的表中?

我有数据透视表从我们在工作中使用的专有数据库系统的查询中提取数据。 我试图找出一种方法将数据透视表的某些部分移动到不同的工作表,在那里它不会作为数据透视表存在。 我遇到的问题是,表中更改列和行的数量取决于我们运送的东西的types和数量,所以我不能只是让我的新表等于单元格中的值数据透视表。

在这里输入图像说明

这是根据在工作中发生的变化而具有较less的列和行的枢轴数据的示例。

在这里输入图像说明

为什么我想在一个常规的表中,而不是一个数据透视表,因为还有其他的计算,我想放在表中,超出了数据透视表的能力(例如,用户名显示为他们的名字,并根据驾驶员的动作进行加权系统,但我认为这是无关紧要的。)

我一直在互联网上,似乎这个问题的答案大部分处理静态表。 任何帮助,将不胜感激!

假设您希望单元格具有“BEER Total”中“M307577”的值。 那么这将是你在单元格中的公式:

 =VLOOKUP("M307577",A5:Z100,MATCH("BEER Total",A5:Z5,0),FALSE) 

"A5:Z100"将是整个数据透视表, "A5:Z5"将是包含variables的第一行。


正如你所提到的你不熟悉VBA,我会build议这种方法:

使用第二张纸的第一列和第一行作为参考。 请参阅数据透视表中的所有variables(请参阅包含ID和variables的单元格,并将公式拖到最后一行的ID和最后一列的variables(或合理的范围作为最后一列和行是不够的) )。 这将使数据透明,从数据透视表中清空单元格,但将包含所有需要的名称。

然后引用这些单元格并使用上述公式(而不是名称,使用刚创build的单元格)。

每当数据透视表更新时,这些单元格也会更新,您将看到相应ID和variables的值。

我想你想要GETPIVOTDATA函数。 确定你的逻辑是什么样子,然后点击适当的单元组合。 Excel会自动为您设置GETPIVOTDATA函数。

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

另外,如果最后使用的列和最后使用的行正在改变,您可能需要一个macros来帮助您完成任务。

 Sub LastRowInOneColumn() 'Find the last used row in a Column: column A in this example Dim LastRow As Long With ActiveSheet LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row End With MsgBox LastRow End Sub Sub LastColumnInOneRow() 'Find the last used column in a Row: row 1 in this example Dim LastCol As Integer With ActiveSheet LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column End With MsgBox LastCol End Sub 

您可以使用一组函数来帮助您获取特定范围内的最后使用的单元格。

https://exceljet.net/formula/address-of-last-cell-in-range

从那里,我想你可以找出你的下一步。

如果您仍然遇到问题,请回复更多信息,或者如果您的问题得到解答,请发布新post。