ARTICLE · 1010891
Excel - 透视表的筛选陷阱


下面是我自己遇到的真实的一个情况,我们来看一下这组数据。
date | 是否包含 | 金额 |
2023/1/1 | 是 | 100 |
2023/1/2 | 是 | 200 |
2023/1/3 | 否 | 300 |
2023/1/4 | 否 | 400 |
2024/1/5 | 否 | 500 |
比如上面是我2023年的数据,是否包含就是说数据是否要呈现,是就是要呈现,否就是过滤掉。
首先肯定是建超级表

超级表的好处是什么,我每周数据更新后,不用重新选取数范围,透视表会自动选取所有数据。
然后你建透视表的时候可以看到范围是超级表,不是像A1:C6这样一个固定范围了

然后建一个透视表,做筛选,非常简单,都是基础的操作

当跨年的时候我只要把2024年的数据贴进去,然后整个Excel刷新,那么是不是透视表以及对应报表都会自动更新了。

把数据更新一下,然后点击刷新,或者右键透视表刷新都行

看起来相当完美,我们要做的事情就是更新数据源。
但是这里有个陷阱。
我来改下2024年的数据

然后再刷新

现在是什么结果,当你的数据源没有你之前筛选的值的时候,筛选会自动变成别的值
我们再把是否包含改成其它值得。

可以看到当找不到“是”的时候,会自动选择第一个值。
那这个是我们想要的吗?肯定不是了,我现在是五行数据,一个透视表,你很容易看出来问题。但是真正的报表起码有成千上万行的数据,并且透视表起码有三五个甚至十几个。那个时候你能及时发现吗?
而且一旦选择其它值之后,你再出现原来的筛选项也不会变回去了

也就是说数据不会自动修正,随着时间推移只会错得越来越离谱。
总结一下,这种问题一般我觉得是出现在跨年或者说数据全部替换的情况下。而且筛选的值没有在第一次的替换中出现的。
那怎么解决呢。我能想到的方法就是用Power Query
1.首先在创建超级表后,到数据菜单下,把数据导入Power Query.

2.在Power Query中对列做筛选


最后把数据导出
你导出的时候可以直接选择透视表

可以看到金额是3000

我们去把数据源改一下

然后再刷新透视表

现在金额是空了。
那么这样就可以很好的避开刚刚遇到的那个问题。
你可以看到你平时工作中会不会有类似的问题需要注意。