估计很多同学会想到透视表,它可以批量拆分表格。但问题是拆分后的分表也是透视表,无法随着总表自动更新。
想让分表随着总表更新,那只能用公式实现了。(VBA也可以)看一个例子。
【例】如下图所示,需要根据总表B列地区,把表格拆分到后面各个分表中。
思路:
根据地区拆分,我们可以用filter函数进行筛选,用以下公式就可以生成郑州的分表。
=FILTER(总表!A:E,总表!B:B="郑州")
如果把郑州换成北京、上海也可以生成分表。问题是怎么批量生成公式,即在郑州表中生成郑州公式,在北京表中生成北京的拆分公式。
=FILTER(总表!A:E,总表!B:B="自动更新的城市名")
要实现这个效果,要借助一个超冷门函数sheet。它可以返回当前表的序号。在郑州表中返回3,在北京表中会返回4.....
=SHEET()
利它就可以提取动态城市名称了。
=INDEX(UNIQUE(总表!B:B),SHEET()-1)
注:unique提取含标题的地区名称,由于sheet()第一个分表返回的是3,要提取第1个城市郑州在第2行,所以需要-1。
万事俱备,只次输入公式,按shift全选所有分表,在A2中粘贴或输入公式
=FILTER(总表!A:E,总表!B:B=INDEX(UNIQUE(总表!B:B),SHEET()-1))
完工!
兰色说:sheet是一个新函数,在office365和wps里都可以使用。利用sheet在不同的表中生成序列数字的特点,可以实现很多高级自动公式。