Tag: 数据透视表

在数据透视表中添加一个计算的字段

我已经创build了一个数据透视表,我想添加一个列,它将打印数据透视表的两个其他列之间的差异(值)。 我将提供与构build数据透视表有关的部分代码。 很显然,我已经在最后一部分尝试了一些东西,但不会打印任何东西。 它运行,但它只是不打印任何东西。 它只能正确打印数据透视表,而不是新列。 Dim DSheet As Worksheet Dim PCache As PivotCache Dim PTable As PivotTable Dim PRange As Range Application.DisplayAlerts = True Set DSheet = Worksheets("Budget_Report") Set PRange = DSheet.Range(Cells(1, 27), Cells.SpecialCells(xlCellTypeLastCell)) Set PCache = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=PRange) Set PTable = PCache.CreatePivotTable(TableDestination:=DSheet.Cells(15, 1), TableName:="PivotTable1") With ActiveSheet.PivotTables("PivotTable1") With .PivotFields("T-Lane") .Orientation = xlRowField .Position = 1 […]

Excel–确定一列数据中非数字结果的频率

我一直在看这个问题的答案,需要更多的细节。 https://stackoverflow.com/questions/5972947/frequency-of-strings-in-an-excel-column-pretty-sure-this-requires-vbscript/6482519#6482519 我看到Chris Neilsen的答案2,使用数据透视表来确定名称列中每个结果的计数。 有两个问题,数据透视表中产生的“名称数量”列是如何产生的? 其次,如果在数据透视表创build之后添加了另一个名字(即将Sarah添加到单元格A9),表格会自动更新吗? 我有一列非数字数据,将定期更新。 我很难创build显示每个结果频率的数据摘要,并规定当项目添加到列表中时摘要也将更新。 看起来枢轴表是最好的解决scheme,但我愿意接受其他build议。

用于具有dynamic数据范围的数据透视表的Excel VBAmacros

代码工作! 谢谢您的帮助! 我正在试图创build一个dynamic的数据透视表,将工作的行数变化的数据。 目前,我有28300行,但这可能会每天更改。 数据格式举例如下: Case Number Branch Driver 1342 NYC Bob 4532 PHL Jim 7391 CIN John 8251 SAN John 7211 SAN Mary 9121 CLE John 7424 CIN John 成品表的例子: Driver NYC PHL CIN SAN CLE Bob 1 0 0 0 0 Jim 0 1 0 0 0 John 0 0 2 1 1 […]

Excel VBA – 使用variables来设置数据透视表数据字段function

我试图创build使用VBA创build数据透视表的自定义报告,我遇到麻烦的一个部分是将数据字段设置为基于他的用户的需求。 例如:我有一个下拉菜单,显示每种types的PivotFields函数(sum,min max等),并根据用户select的内容将其存储为stringvariables。 当我运行我的代码时: Dim valueXL As String valueXL = xlSum With Worksheets(sheetPivotName).PivotTables(sheetPivotName).PivotFields(valueType) .Function = valueXL .NumberFormat = "$#,##0.00" End With 我得到一个错误,但是,如果我replace.Function = valueXL与.Function = xlSum它工作正常。 有什么办法可以dynamic设置.Function的值吗? 谢谢

你可以通过列索引来创build一个数据透视表,而不是VBA中的列名

我有一个由400行和35列组成的表,并做了一个VBA脚本,使一个数据透视表成功地比较了2列和12个独立的列。 在生成数据透视表时,使用列标题(以避免混淆)。 我是VBA新手,这就是我所做的所有事情 ActiveCell.Select Range("AA3").Select Selection.CurrentRegion.Select ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "Practitioners!R3C1:R246C27", Version:=xlPivotTableVersion15). _ CreatePivotTable TableDestination:="Practitioners!R3C29", TableName:= _ "PivotTable8", DefaultVersion:=xlPivotTableVersion15 Sheets("Practitioners").Select Cells(3, 29).Select ActiveWorkbook.ShowPivotTableFieldList = False With ActiveSheet.PivotTables("PivotTable8").PivotFields("Capability") .Orientation = xlRowField .Position = 1 End With With ActiveSheet.PivotTables("PivotTable8").PivotFields("Sub-Capability") .Orientation = xlRowField .Position = 2 End With ActiveSheet.PivotTables("PivotTable8").AddDataField ActiveSheet.PivotTables( _ "PivotTable8").PivotFields("Grade"), "Count of Grade", xlCount ActiveSheet.PivotTables("PivotTable8").AddDataField ActiveSheet.PivotTables( _ […]

带有macros的Excel数据透视表

我logging了一个生成一个非常简单的数据透视表的macros。 当我播放macros,我在PivotTable出现错误。 我得到: 无效的过程调用或参数 所以我回去把单引号放在SourceData和TableDestination周围。 现在我得到一个数据透视表,但只有总数。 它应该给我A列中所有项目的出现次数。 这是代码 Sub testpivot() ' ' testpivot Macro ' ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "'GF Response Detail R'!R1C1:R65536C1", Version:= _ xlPivotTableVersion10).CreatePivotTable TableDestination:= _ "'GF Response Detail R'!R2C10", TableName:="PivotTable1", _ DefaultVersion:=xlPivotTableVersion10 Sheets("GF Response Detail R").Select Cells(2, 7).Select With ActiveSheet.PivotTables("PivotTable1").PivotFields("Region") .Orientation = xlRowField .Position = 1 End With ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _ "PivotTable1").PivotFields("Region"), "Count […]

支持特定逻辑查询的数据透视表

请帮忙, 我想要这样的SQL Server表: 为了得到这样的东西: 我试图在Excel中做到这一点,但它并没有为我工作,因为它是重复的属性等。所以,是否有一个查询透视表来获取?

数据透视表“RefreshTable”与“更新”方法

我想以编程方式刷新 Excel工作簿的给定工作表中的所有数据透视表。 在这里searchStackOverflow后,我发现这个问题的答案build议使用 ThisWorkbook.RefreshAll 或类似的东西 Dim pivot As PivotTable For Each pivot In Worksheets("MySheet").PivotTables pivot.RefreshTable pivot.Update Next 因为我只想刷新表格中的表格,所以第一种方法并不是我所期待的。 因此,我修改了第二种方法来满足我的需求。 我在这里的问题是什么RefreshTable和PivotTable对象的Update方法之间的区别? 我想如果我们使用这两个,就意味着它们在某种程度上是不同的。 在什么情况下,为了节省时间,我们只能使用其中的一种,因为在数据透视表有大量数据的时候, 刷新和更新需要相当长的时间。

循环遍历同一文件夹中的工作簿,并为所有VBA执行相同的Excel任务

我有超过50个文件需要创build数据透视表和每个文件具有相同的确切forms与不同的内容。 到目前为止,我已经完成了创build数据透视表的代码,并且它在单独运行时工作得非常好,但是,当我尝试在同一个文件夹中运行所有工作簿的代码时失败了。 我不知道发生了什么,为什么它一直显示没有文件可以被发现,尽pipepath名没有错。 Sub DoAllFiles() Dim Filename, Pathname As String Dim WB As Workbook Pathname = "D:\Reports" Filename = Dir(Pathname & "\*.xls*") Do While Filename <> "" Application.DisplayAlerts = False Application.ScreenUpdating = False Set WB = Workbooks.Open(Pathname & Filename) 'open all files PivotX WB WB.Close SaveChanges:=True Application.DisplayAlerts = True Application.ScreenUpdating = True Filename = Dir() […]

Excel VBA从数据透视组中删除空白

我有一个数据集,需要在Excel中旋转,行标签然后按月分组(行标签是date)。 我有VBA安装程序来做的关键,然后将行标签分组到几个月,但在它分组到几个月后,我试图让下拉(空白)字段取消select。 我尝试着录制一个macros,这是行不通的。 它只是做了像“<11/15/15”。 我发现代码应该为我的问题,但我不断收到错误信息,无法find数据透视表项目。 这是应该工作的代码。 Dim p_i As PivotItem With ActiveSheet.PivotTables("PivotTable1").PivotFields("Delivery Time of Actual Item") .PivotItems("(blank)").Visible = True For Each p_i In .PivotItems If p_i.Name = "(blank)" Then p_i.Visible = False End If Next End With 这个问题可能是因为我先把这些项目按月分组?