Excel非数据透视图:如何仅显示数据透视表中存在的月份现金流
解决方法:让图表仅显示透视表中存在的月份
方法1:用Power Query提取有效数据
- 选中你的透视表,点击「数据」选项卡→「从表格/范围」(记得勾选「我的表格有标题」)
- 在Power Query编辑器里,先筛选出最后一行的「现金流」记录,只保留月份列和金额列
- 点击「转换」选项卡→「转置」,把月份从列转成行,再筛选掉空值或错误行
- 关闭并上载到新工作表,直接用这个干净的数据集做图表,后续透视表更新后,刷新Power Query就能同步数据
方法2:用动态数组+错误处理生成数据源
- 提取透视表中所有存在的月份:输入
=TOCOL(你的透视表表头区域,1)(比如透视表表头是$B$3:$N$3,就写=TOCOL($B$3:$N$3,1)),这个函数会自动过滤空表头,得到有效月份列表 - 提取对应月份的现金流:在相邻单元格输入
=XLOOKUP(A2, $B$3:$N$3, INDEX($B$4:$N$10, MATCH("现金流", $A$4:$A$10,0)), ""),其中$B$4:$N$10是透视表的金额区域,$A$4:$A$10是类别行区域,找不到对应月份时返回空值,不会出现#BEZUG! - 用这两列数据做图表,动态数组会自动扩展,透视表更新后数据同步,图表只显示有值的月份
方法3:直接绑定透视表动态数据源
- 右键透视表→「数据透视表选项」→「选项」,勾选「刷新时保留单元格格式」,记好透视表名称(比如默认的PivotTable1)
- 插入图表后,点击「图表设计」→「选择数据」,点击「添加」:
- 系列名称填「现金流」
- 系列值选择透视表的现金流行金额:
=Sheet1!PivotTable1[Amount](替换成你的透视表所在工作表和名称)
- 点击「水平(类别)轴标签」的「编辑」,选择透视表的月份表头:
=Sheet1!PivotTable1[#Headers] - 这样透视表更新后,图表会自动剔除缺失的月份列,只显示有数据的月份
内容的提问来源于stack exchange,提问作者zack187
相关产品推荐
相关产品推荐

