Tag: 枢轴表

Excel VBA:将透视图复制到新工作表时,保留粗体透视小计标签

我试图将一个数据透视表复制到一个新的工作表,其中包含枢轴的值加上粗体的小计。 这里是我从另一个post在这里( 复制数据透视表格式 ) Option Explicit Sub Sample() With Sheets("Sheet1") .Range("H1:I6").Copy With .Range("M7") .PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False .PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False End With End With End Sub 但是,当我使用这个代码时,我所得到的是没有格式化的数据透视表中的值。 我需要保留小计的粗体格式,以便在新工作表中以不同方式处理。 我也尝试使用文本输出来确定小计(显然​​,非小计显示一个空格,但是当您查看编辑栏中的实际文本值时没有空格)。 有任何想法吗? 或者,有没有更好的解决scheme,试图确定哪些行是小计后,我从主数据库中复制出来?

Excel / VB:使用一个值列表过滤多元数据透视表

我试图从引用的值列表中筛选一张工作表上的多个数据透视表,但它看起来像只处理第一个With语句(CampaignAnalysis),然后返回一个错误(MailCount)。 任何帮助,这将是真棒! 谢谢! Sub Test() Dim PI As PivotItem With Worksheets("In Focus – Campaign Analysis").PivotTables("CampaignAnalysis").PivotFields("Campaign Code") .ClearAllFilters For Each PI In .PivotItems PI.Visible = WorksheetFunction.CountIf(Range("CA_Range1"), PI.Name) > 0 Next PI End With Dim MC As PivotItem With Worksheets("In Focus – Campaign Analysis").PivotTables("MailCount").PivotFields("MailCount_CC") .ClearAllFilters For Each MC In .PivotItems MC.Visible = WorksheetFunction.CountIf(Range("CA_Range1"), MC.Name) > 0 Next […]

带有寄存器的枢轴表在2行中重复

我有一个关于如何总结数据列表的问题,我附上了数据如何呈现的图像。 问题是如何确定(总结)单位的活动总量,考虑到一个人在2个单位工作。 你可以定义在A / B工作的人为每个单位做了50%的活动。 由于寄存器清单是非常广泛的想法是能够自动化,尝试使用数据透视表,并没有给我的结果。 任何build议,将不胜感激(XLS,SQL等)。 数据 http://ge.tt/381feDj2 – > Excel文件

在“全部更新”期间Excel2013“无法打开数据透视表源文件”

我有一个老的臃肿的Excel工作簿,我试图剥离。 在我将所有外部和计算机内部数据源replace为链接到SQL数据库查询的表后,每次我执行Update All ,Excel始终抱怨“Cannot open PivotTable source file xxxxxx[yyyy]|zzzz” 我几乎查看了每一张表,但没有find任何引用有问题的外部Excel文件。 有没有什么办法来定位哪个单元格,至less在哪个表单中,这个问题是可以旋转的? 看起来像caching的数据不再被引用。 (见PS2)有没有办法清除这些caching的条目,而无需手动编辑XML? 谢谢。 PS1:我已经尝试了VBA的方式检查ActiveWB.LinkSource(1)它没有工作,它给了我一个工作表,我已经知道一个单元格中引用。 错误警报中提到的工作表未列出。 PS2:我把文件保存到xlsx解压后的内部XML中,一个简单的grep给了我 $ grep '20160229-9' -r . ./xl/pivotCache/_rels/pivotCacheDefinition1.xml.rels: <Relationships xmlns="http://schemas…/relationships"> <Relationship Id="rId2" Type="http://schemas…/externalLinkPath" Target="OrderList20160229-9.xlsb" TargetMode="External"/> <Relationship Id="rId1" Type="http://schemas…relationships/pivotCacheRecords" Target="pivotCacheRecords1.xml"/> </Relationships> 但是PivotTable1的数据源已经被一个SQL查询pipe道表并排replace在同一张表上。 检查引用的pivotCacheRecords1.xml,我得到了源表的非常旧的副本(新的基于SQL查询的表格有不同的格式,我无法在Excel中的任何地方find这些数据中的项目)。 它不再有效了。 嗯,这是一个错误?

在使用VBA将数据添加到数据透视表的值字段中使用variables

我有一个数据集,看起来像这个数据集然而,我的天数是一个variables,将不断变化。 我想用VBA创build一个Pivot Chart,代码如下: Sheets("Initialize").Select NoRes = Cells(6, 3).Value Sheets("Metric Calculations").Select ProjDur = Cells(31, 4).Value Range(Cells(31, 61), Cells(30 + NoRes, 61 + ProjDur)).Select Selection.Copy Sheets("Resource Histogram Data").Select Range("A2").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Range(Cells(1, 1), Cells(1 + NoRes, 1 + ProjDur)).Select Application.CutCopyMode = False r = 1 + NoRes p = 1 + ProjDur […]

通过引用单元格string值筛选数据透视表项目

我试图过滤一个数据透视表,使用string值从一些单元格,这是存储在一个数组variablesLTmonth()。 但是,当我将这个数组variables插入下面的代码中时,由于某种原因它不会读取数组值,也不会过滤存储在该数组中的值。 我注意到的一件事情是,当我将LTmonth更改为filter的实际值(如下所示)时,代码完美地工作: “如果ActiveSheet.PivotTables(”PivotTable1“).PivotFields(”MONTH“).PivotItems(j)= ”JAN-2016“ Then” 如果单元格值与数据透视表中的过滤条件完全匹配,那么如何使这两个值彼此匹配? 我到处寻找答案,但我find的答案没有帮助解决我的问题。 这是最接近我已经使代码工作,但我不知道为什么variables数组不工作。 Sub Filter() Dim i, j, z, monthcount As Integer monthcount = 8 Dim LTmonth() As String ReDim LTmonth(monthcount) For i = 1 To monthcount LTmonth(i) = ActiveSheet.Range("P2").Offset(i – 1, 0).Value Next i For j = 1 To ActiveSheet.PivotTables("PivotTable1").PivotFields("MONTH").PivotItems.Count For z = 1 To monthcount If ActiveSheet.PivotTables("PivotTable1").PivotFields("MONTH").PivotItems(j) […]

有什么办法来检查一个数据透视caching是否需要刷新?

编辑: 谢谢你的回答。 然而,这不适合我的目的。 我创build了一些虚拟数据和数据透视表,然后改变了一些底层数据,你的代码仍然表示caching与数据是一致的。 我想这是因为你正在寻找整体范围的变化,而不是范围内的变化。 我一直在玩弄和使用文档,尤其是您在下面使用的PivotCache.SourceData成员,我不认为有可能做我想做的事情。 我发现最好的是从原始源数据创build一个新的数据透视caching,然后以某种方式比较它们(虽然这是不可能的使用直接相等: Sub checkCache() Dim ptTbl As PivotTable, pvtCache As PivotCache Set ptTbl = Sheets("Sheet2").PivotTables("PivotTable2") Set pvtCache = ActiveWorkbook.PivotCaches.Create(xlDatabase, ptTbl.PivotCache.SourceData) If pvtCache = ptTbl.PivotCache Then 'error on this line, cannot compare two pivot caches like this MsgBox "True" Else MsgBox "False" End If End Sub 如果还有更好的想法,我会把这个问题搁置几天。 简洁版本 当数据透视表的底层数据发生变化,他们需要刷新数据透视caching时,我需要向用户强调。 由于性能问题,我不能只刷新每次交互的数据透视表。 目前,我正在用IF公式检​​查数据透视表总数是否仍等于工作表总数,但这对于非数字数据不起作用。 […]

在Excel中的数据透视表中获取唯一的计数

这是我试图创build数据透视表的数据源,但失败了。 期待一些高手帮助我: 数据来源 : ticket number agent service name ————————————- 123 agent1 service1 123 agent1 service1 123 agent1 service1 123 agent1 service2 123 agent1 service2 234 agent3 service8 234 agent3 service8 234 agent3 service8 234 agent3 service8 234 agent3 service6 234 agent3 service6 234 agent3 service4 234 agent3 service4 345 agent6 service7 345 agent6 service7 […]

Excel数据透视表之间的计数

我有一个问题创build一个数据透视表/图表与date函数之间。 我想知道在两个date之间活跃的项目总数。 X轴第一周 – 第五十二周的图表就是我想要创build的。 示例图表 20 10 五 0 周1周2周3 ….. 我的专栏: 项目ID | 开始周数| 结束周数 我已经做了什么? 使用以下函数添加帮助列1至52: =IF(AH$1=MEDIAN($AB10;$AD10);1;IF(AH$1=$AB10;1;IF(AH$1=$AD10;1;""))) 当列周标题等于或在date开始周和结束周之间时,这将显示1。 但是对于这一点,我仍然无法创build一个X轴周数和当周总数的图表。

数据透视表数据源一直引用先前插入的工作表的数据透视表数据源

我正在生成两个工作表,一个用于数据,另一个用于使用ep plus的同一工作簿中的名为“worksheet1_data”和“worksheet1”的数据透视表。 我第一次保存就好了。 我再一次处理这个excel文件(.xlsx),并在其中添加了两个新的工作表“worksheet2_data”和“worksheet2” ,并使用“worksheet2_data”中的数据源生成了新的数据透视表。 当我打开文件时, “worksheet1”和“worksheet2”中的数据透视表都具有“worksheet1_data”的数据源,即使我添加了更多的透视表,也都有“worksheet1_data”的数据源。 代码在debugging时工作正常,但在打开Excel表单时数据源发生了变化。 任何人都可以提出什么问题? 以下是我的代码: ExcelWorksheet worksheetManagementARReportData = package.Workbook.Worksheets.Add(EndDate.ToString("MM-dd-yyyy") + "_Data"); ExcelWorksheet worksheetManagementARReport = package.Workbook.Worksheets.Add(EndDate.ToString("MM-dd-yyyy")); var dataRange_ManagementARReport = worksheetManagementARReportData.Cells["A1"].LoadFromDataTable(dsGetManagementARReport.Tables[0], true); var pivotTableManagementARReport = worksheetManagementARReport.PivotTables.Add(worksheetManagementARReport.Cells["A1"], dataRange_ManagementARReport, "PivotTable" + EndDate.ToString("MM_dd_yyyy") + "_ManagementARReport"); Tbl_AutomatedReport.PivotTable(rowfield, columnfield, pagefield, datafields, pivotTableManagementARReport);