如何用数据透视表实现几个不同年度的跨年范围的同比对比?

如何用透视表实现几个不同年度的跨年数据的对比?
例如我想对比两年任意日期区间的两个数据应该怎么实现?比如我想对比2019年11月6日到2020年3月5日 与 2020年11月5日到2021年3月5日这两时间区间的销售金额,其中日期区间可以随便更改的那种。

=SUMIFS($B:$B,$A:$A,">="&E1,$A:$A,"<="&F1)这是对比总额的,如需对比明细请追问

追问

如果想在数据透视表中,通过类似切片器怎么实现?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-08-31
  用vba实现数据透视表自动筛选:Sub 宏1() k = Cells(65536, 1).End(4).Row For i = 4 To 1 Step -1 ActiveSheet.Range("$A$3:$D$" & k).AutoFilter Field:=i, Criteria1:=Cells(1, i).Text If Columns(1).Count < 2 Then ActiveSheet.Range("$A$3:$D$" & k).AutoFilter Field:=i End If Next iEnd Sub    VBA:Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件。也可说是一种应用程式视觉化的Basic 脚本。该语言于1993年由微软公司开发的的应用程序共享一种通用的自动化语言--------Visual Basic For Application(VBA),实际上VBA是寄生于VB应用程序的版本。微软在1994年发行的Excel5.0版本中,即具备了VBA的宏功能。  由于微软Office软件的普及,人们常见的办公软件Office软件中的Word、Excel、Access、Powerpoint都可以利用VBA使这些软件的应用更高效率,例如:通过一段VBA代码,可以实现画面的切换;可以实现复杂逻辑的统计(比如从多个表中,自动生成按合同号来跟踪生产量、入库量、销售量、库存量的统计清单)等。  掌握了VBA,可以发挥以下作用:  1.规范用户的操作,控制用户的操作行为;  2.操作界面人性化,方便用户的操作;  3.多个步骤的手工操作通过执行VBA代码可以迅速的实现;  4.实现一些VB无法实现的功能。  5.用VBA制做EXCEL登录系统。  6.利用VBA可以Excel内轻松开发出功能强大的自动化程序。
第2个回答  2022-08-31
  用vba实现数据透视表自动筛选:Sub 宏1() k = Cells(65536, 1).End(4).Row For i = 4 To 1 Step -1 ActiveSheet.Range("$A$3:$D$" & k).AutoFilter Field:=i, Criteria1:=Cells(1, i).Text If Columns(1).Count < 2 Then ActiveSheet.Range("$A$3:$D$" & k).AutoFilter Field:=i End If Next iEnd Sub    VBA:Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件。也可说是一种应用程式视觉化的Basic 脚本。该语言于1993年由微软公司开发的的应用程序共享一种通用的自动化语言--------Visual Basic For Application(VBA),实际上VBA是寄生于VB应用程序的版本。微软在1994年发行的Excel5.0版本中,即具备了VBA的宏功能。  由于微软Office软件的普及,人们常见的办公软件Office软件中的Word、Excel、Access、Powerpoint都可以利用VBA使这些软件的应用更高效率,例如:通过一段VBA代码,可以实现画面的切换;可以实现复杂逻辑的统计(比如从多个表中,自动生成按合同号来跟踪生产量、入库量、销售量、库存量的统计清单)等。  掌握了VBA,可以发挥以下作用:  1.规范用户的操作,控制用户的操作行为;  2.操作界面人性化,方便用户的操作;  3.多个步骤的手工操作通过执行VBA代码可以迅速的实现;  4.实现一些VB无法实现的功能。  5.用VBA制做EXCEL登录系统。  6.利用VBA可以Excel内轻松开发出功能强大的自动化程序。
第3个回答  2022-08-31
  用vba实现数据透视表自动筛选:Sub 宏1() k = Cells(65536, 1).End(4).Row For i = 4 To 1 Step -1 ActiveSheet.Range("$A$3:$D$" & k).AutoFilter Field:=i, Criteria1:=Cells(1, i).Text If Columns(1).Count < 2 Then ActiveSheet.Range("$A$3:$D$" & k).AutoFilter Field:=i End If Next iEnd Sub    VBA:Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件。也可说是一种应用程式视觉化的Basic 脚本。该语言于1993年由微软公司开发的的应用程序共享一种通用的自动化语言--------Visual Basic For Application(VBA),实际上VBA是寄生于VB应用程序的版本。微软在1994年发行的Excel5.0版本中,即具备了VBA的宏功能。  由于微软Office软件的普及,人们常见的办公软件Office软件中的Word、Excel、Access、Powerpoint都可以利用VBA使这些软件的应用更高效率,例如:通过一段VBA代码,可以实现画面的切换;可以实现复杂逻辑的统计(比如从多个表中,自动生成按合同号来跟踪生产量、入库量、销售量、库存量的统计清单)等。  掌握了VBA,可以发挥以下作用:  1.规范用户的操作,控制用户的操作行为;  2.操作界面人性化,方便用户的操作;  3.多个步骤的手工操作通过执行VBA代码可以迅速的实现;  4.实现一些VB无法实现的功能。  5.用VBA制做EXCEL登录系统。  6.利用VBA可以Excel内轻松开发出功能强大的自动化程序。
第4个回答  2022-04-14
没有具体的数据,主要是数据结构,笼统的提数据透视表是很难有针对性的回答的。不同年份的数据在同一个工作表中,还是在同一个工作簿不同的工作表中,或是不同的工作簿中,数据又是如何记录的。不同的结构,处理的方式一般会不一样的。
举例待补充追问

数据结构是这样的,数据都在一个工作簿中的一个工作表中,假设我想分析2021年12月10日到2022年1月9日,同比 2020年12月10日到2021年1月9日的销售金额应该怎么做?

追答

因为不同年度的相同月份和日期的比较,要对比同期数据,透视表中就只能取日的组合(或者说不进行组合,总之显示的效果要不含年),而日组合会自动按文本来数据排序,如1月2日会排在1月19日之后。所以为了达到按时间顺序来排序,以便实现提问中要求“日期”切片器效果,本人想到的办法是通过Power Qurey的合并查询,把不同年度的数据导入到Power Qurey,分别添加索引列作为顺序号,再按序号列合并查询,查询的结果以数据透视表上载回Excel工作表中,透视表中,日期只选择任意一年的,且只显示“几月几日”,以便于对比。透视表中用序号的切片器来代替日期切片。这是在你追问前想到的办法,通过Power Qurey不仅可以合并查询同一工作表中的数据,也可合并查询不同工作表或不同工作簿中的数据,因为本质都是把不同年份的数据导入为单一的数据源后添加索引后合并查询。

图中2019和2020的数据是两个独立的表格,与不同工作表或不同工作簿的表格实质上是类似的。

而如果数据在一个工作表中,那么就不用在Power Qurey去进行合并查询,直接在数据源中增加一个序号辅助列即可,透视表中日期同样只取任意一年中,同样只显示几月几日。

图中2019和2020年的数据在一个表格中。

本回答被提问者采纳
相似回答