Tag: 数据透视表

Excel Pivot R1C1 – 内存过载

我正在使用以下代码通过VBA创build数据透视表: Dim Pivot30D As Worksheet Set Pivot30D = Sheets.Add Pivot30D.Name = "Pivot30D" Dim Kelekt As Range Set Kelekt = Range(Range("A2"), Range("A2").End(xlDown).End(xlToRight)) Dim KelektAddress As String KelektAddress = Kelekt.Parent.Name & "!" & Kelekt.Address(True, True, xlR1C1) ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ KelektAddress, Version:=xlPivotTableVersion15). _ CreatePivotTable TableDestination:="Pivot30D!R1C1", TableName:="PivotTable1" _ , DefaultVersion:=xlPivotTableVersion15 在这里,Kelekt是我创造枢轴的范围。 这在理论上会工作得很好,除非我得到一个快速的内存过载。 内存不足。 另一方面,如果我使用“R2C1:R191995C24”(带引号)而不是Kelekt,我可以创build这个数据透视表。 我所需要的(希望)做这项工作是把Kelekt转换成RC符号并且通过它。 我怎么做? 否则,我该如何使这个代码工作,否则? 编辑:最新的错误是数据透视表字段名称是无效的

传递一个variables枢轴归档名称来sortingVBA

我正在使用数据透视表,并使用下面的代码: Sub SortCTRDescending() ActiveSheet.PivotTables("PivotTable6").PivotFields("Industry").AutoSort _ xlDescending, "Total CTR", ActiveSheet.PivotTables("PivotTable6"). _ PivotColumnAxis.PivotLines(6), 1 End Sub 有没有办法通过数据透视字段"Industry"作为一个variables取决于在数据透视表行中select什么? 即如果行业更改为“列表名称”,将variables设置为所选行标签(假定只有一行标签)? 然后这些传递给一个button,这将按照“点击率sorting”或“打开比率sorting”,其中列号保持不变。 编辑:添加了数据的屏幕截图。 行标签是行业,但这可以更改为任何其他领域,我怎样才能使第一行标签的主要sortingvariables。

数据透视表值单元地址

是否有可能通过VB获取数据透视表中的值的单元格地址(或单元格范围)? 例: Row Labels Count Threshold-% REG1 224 0.00% FALSE 11 TRUE 213 REG2 213 0.00% FALSE 13 TRUE 200 REG3 318 0.00% FALSE 3 TRUE 315 REG4 467 0.00% FALSE 7 TRUE 460 Grand Total 1222 0.00% 我怎么能得到REG1 – > FALSE – > 11的单元格地址? 我知道当我点击它,它给了我“B3”,但我想通过VBfind它。

如何正确使用VLOOKUP来调整已调整的收盘价格?

我试图用我创build的数据透视表中的数据填写我的汇总表。 在我的汇总表中,我试图从特定的日子拉出指定股票的收盘价。 我相信VLOOKUPfunction是这样做的最好方法,但我不断得到#N / A。 写VLOOKUP的正确方法是什么? 我的VLOOKUP函数如下所示: = VLOOKUP(C7,'Pivot Table'!$ 4:$ 3914,1,FALSE) 我是否需要重构我的数据透视表或使用HLOOKUP?

数据透视表 – 来自多列的键

我一直在试图build立一个数据透视表,使用多列的键。 这将是源表(项目1,2,3列代表键): [ 这将是由此产生的数据透视表(数据透视表合并键“A”,即使它被放置在其他列): ] 2 对不起,如果这是一个非常容易解决的问题。 提前致谢。

我怎样才能得到这个数据透视表显示我想要的值,在我想要他们的位置?

在咬牙切齿之后,我可以通过生成数据透视表取得一点成功。 现在,它同时包含“行筛选器”(在“描述”上)和“列筛选器”(在“年份”列中),如下所示: 这是用下面的代码完成的: var pch = _xlBook.PivotCaches(); Range sourceData = _xlBook.Worksheets["PivotData"].Range["A1:G318"]; // TODO: Make range dynamic PivotCache pc = pch.Create(XlPivotTableSourceType.xlDatabase, sourceData); PivotTable pvt = pc.CreatePivotTable(_xlPivotTableSheet.Range["A8"], "PivotTable"); pvt.PivotFields("Description").Orientation = XlPivotFieldOrientation.xlRowField; pvt.PivotFields("MonthYr").Orientation = XlPivotFieldOrientation.xlColumnField; 源数据(“PivotData”)如下所示: 当数据透视表被编码时,数据透视表应该是什么样的: 我需要做些什么才能达到这个目的(这些数据,在这些地方)? 我认为它的一部分与更多的XlPivotFieldOrientation值赋值给更多的PivotFields有关,但是不知道它们应该是什么。 首先但可能最less(但仍然重要),“行标签”应该说“说明”和“列标签”应该说“月” UPDATE 我试图逐个添加使各个列显示所需的代码。 我试过这个: pvt.AddDataField(pvt.PivotFields(“TotalQty”),“Total Packages”,XlConsolidationFunction.xlSum).NumberFormat =“###,## 0”; …希望源数据的“TotalQty”列中的数据将显示在“Total Packages” 它确实显示,但标签“总包”,出现在一个奇怪的/偏离的地方: 我怎样才能得到“总包”标签显示在“模型”屏幕截图中的位置? 更新2 Hambone在他的回答中提到了我的TODO; 我回到了它,并通过这种方式使其dynamic变化: int rowsUsed = _xlBook.Worksheets["PivotData"].UsedRange.Rows.Count; […]

我怎样才能取代自动生成的总值与不同的(Aspose单元格)?

我的电子表格会自动生成一个“总计”列作为最右边的列: 一般来说这很好。 但具体而言,我遇到了一些问题:最后两个值(不幸的标签是“平均价格总和”和“总和百分比”)只是提供了前面几列的总和。 在这种情况下,我不想要一个简单的数字,但第一种情况下的平均值和第二种情况下的百分比。 对于AvgPrice,我需要的是在“总计”栏中计算“总价格总额”/“总计总额”。 例如,第一个AvgPrice总价值应该是“33.14”而不是“66.26” 对于百分比,我需要在总价格总计中的“总价格”总价格中,将项目/说明的总价格百分比(例如上面第一项中显示的“25151.75”)与总价格/列(“1529802.82”)。 这个价值在这里看到: 因此,第一项(“ASPARAGUS,大11/1#”)的“百分比”值应该是大约1.6(因为25151.75大约是1529802.82的1/60),而不是1.36。 有没有一种方法来设置这个自动生成这些值在盛大总计列,或者我需要防止生成总额列像这样: pivotTable.ColumnGrand = false; …然后将该列手动添加到工作表,在代码中进行计算,并以这种方式添加这些值?

Excel数据透视表和宿舍

我有一些(每日)Excel投资组合价值的时间序列数据,我想把它转换成季度数据,其中季度的价值应该是最后一天的价值(最后一个工作日,但是没有其他的时间序列)。 人们可以按照数据透视表的魔法来组织事物,但总体机制(数量,总和,最大,最小…)似乎都不适用。 我错过了什么明显的?

vba:创build数据透视表

我必须使用vba创build数据透视表,但我得到以下错误:“运行时错误”438“对象不支持此属性或方法”关于此代码: ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "Sheet1!R1C1:R1048576C8", Version:=6).CreatePivotTable TableDestination:= _ pivotTableWs!R1C1, tableName:=tableName, DefaultVersion:=6 这里是完整的来源 Dim tableName As String Dim pivotTableWs As Worksheet tableName = "pivotTableName" Set pivotTableWs = Sheets.Add(after:=Worksheets("Sheet1")) ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "Sheet1!R1C1:R1048576C8", Version:=6).CreatePivotTable TableDestination:= _ pivotTableWs!R1C1, tableName:=tableName, DefaultVersion:=6 Sheets(pivotTableWs).Select Cells(1, 1).Select With ActiveSheet.PivotTables(tableName) .ColumnGrand = True .HasAutoFormat = True .DisplayErrorString = False .DisplayNullString = True .EnableDrilldown […]

macros自动select数据透视表filter下拉菜单中的最近date

我有一个自动刷新的报告,然后我有一些运行的macros来做各种事情。 目前一切工作正常,但是,我想写一个macros,自动select数据透视表中的最近date。 目前,我有以下代码: Sub RefreshPivot() ' ' RefreshPivot Macro ' ' Sheets("Pivot").Select ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh ActiveSheet.PivotTables("PivotTable1").PivotFields("ExtractDate"). _ ClearAllFilters ActiveSheet.PivotTables("PivotTable1").PivotFields("ExtractDate").CurrentPage _ = "22/08/2017" End Sub “22/08/2017”这个date目前是最近的date,但是如果我在下周运行这个报告,那么上面的macros将会每次都select22/08/2017。 是否有一段代码总是select枢纽filter中的最近date? 任何帮助将是最受欢迎的。 编辑: 所以,我尝试了一个不同的解决scheme,它使用包含最近date的报告中的单元格引用。 我使用这个date来设置filter标准,然后for循环遍历数据透视表并将每个值设置为空,直到find匹配项为止: Sub Filter_PivotField() 'Description: Filter a pivot table for a specific date or period Dim sSheetName As String Dim sPivotName As String Dim sFieldName As String Dim sFilterCrit […]