Excel动态拆分总表数据到多个工作表,这条函数公式你会吗?

如何将总表数据按某个标签名快速拆分到多个工作表中?
下图中,员工表是某个公司部分人员的信息,现在我们要根据部门将人员信息拆分到对应的部分工作表中,并且,当我们更改员工表的数据时,部门工作表对应的数据也会随之更改,如何用函数公式来实现?

Excel动态拆分总表数据到多个工作表,这条函数公式你会吗?

具体操作步骤如下:
1、鼠标左键单击一下名称为“客服部”的工作表,按住Shift键,再用鼠标左键单击一下名称为“财务部”的工作表,此时,我们已经将客服部和财务部之间的所有表选中 。(同时选中这些表的好处是我们可以批量对这些表进行编辑) 。
Excel动态拆分总表数据到多个工作表,这条函数公式你会吗?

2、点击选中工作表中其中一个表的A2单元格,在编辑栏中输入公式: =INDEX(员工表!B:B,SMALL(IF(员工表!$C$2:$C$16=MID(CELL("filename",A1),FIND("]",CELL("filename",A1)) 1,3),ROW($2:$16),4^8),ROW(A1)))&"",按组合键“Ctrl Shift Enter”结束数组公式的输入 。
Excel动态拆分总表数据到多个工作表,这条函数公式你会吗?

3、将A2单元格的公式右拉填充至D2单元格 , 下拉填充至D10单元格 , 此时,每个部门工作表的数据如下图所示 。
Excel动态拆分总表数据到多个工作表,这条函数公式你会吗?

4、鼠标右键单击组合工作表中的任意工作表,在弹出的右键菜单中选择“取消组合工作表” 。
Excel动态拆分总表数据到多个工作表,这条函数公式你会吗?

5、公式解析 。
(1)MID(CELL("filename",A1),FIND("]",CELL("filename",A1)) 1,3):
CELL函数:返回引用中第一个单元格的格式、位置或内容的有关信息 。
FIND函数:返回一个字符串在另一个字符串中的起始位置 。
MID函数:从文本字符串中指定的起始位置起返回指定长度的字符 。
Excel动态拆分总表数据到多个工作表,这条函数公式你会吗?

CELL("filename",A1):该公式的意思是:返回A1单元格所在工作表的名称 。例如:我在客服部这个工作表的C13单元格中输入公式:=CELL("filename",A1),返回的结果如下图 。
Excel动态拆分总表数据到多个工作表,这条函数公式你会吗?

FIND("]",CELL("filename",A1)) 1:该公式的意思是:返回英文状态下的右中括号在字符串“C:/Users...]客服部”的起始位置,结果为:53 。
MID(CELL("filename",A1),FIND("]",53,3):该公式的意思是:从指定的字符串“C:/Users...]客服部”中第53个字符位置开始提取,提取3个字符,也就是工作表的名称 。
(2)IF(员工表!$C$2:$C$16=MID(CELL("filename",A1),FIND("]",CELL("filename",A1)) 1,3),ROW($2:$16),4^8):
该公式的意思是:用IF函数判断$C$2:$C$16这个单元格区域的部门名称是否跟工作表的名称相同,如果相同,返回当前单元格所在行的行号,否则 , 返回一个尽可能大的行号,这么大的行号一般都是没有内容的 。该公式返回的结果是:{2;65536;65536;65536;6;65536;65536;65536;65536;65536;65536;65536;65536;65536;65536}
(3)SMALL(IF(员工表!$C$2:$C$16=MID(CELL("filename",A1),FIND("]",CELL("filename",A1)) 1,3),ROW($2:$16),4^8),ROW(A1)):
该公式的意思是:用SMALL函数对IF函数返回的结果从小到大取数,ROW(A1)=1,公式向下填充时 , A1会依次变成A2、A3...,行号会依次加1,此时就会依次提取第1、2、3...N小的值 。该公式返回的结果是:{2} 。
【Excel动态拆分总表数据到多个工作表,这条函数公式你会吗?】最后用INDEX函数在B列单元格区域中取出对应行号的值即可 。
今天就跟大家分享到这里,如果您想学习更多的办公技巧,可以持续关注我的头条号哦~

相关经验推荐