分享

Excel将数据提取到指定工作表,一个公式就够了

 五毒缺嫖赌 2019-05-28

在日常应用中,从总表中拆分数据还是经常会用到的。比如说,将销售数据提取到各个销售部工作表、将学生名单提取到各个班级工作表……

今天分享的内容,就是和拆分有关的技巧。

一、.动态获取工作表名称

打开一个Excel表,在某个单元格里输入公式:

=CELL(“filename“,A1)

会返回一串字符串,比如D:\学习\[me.xlsx]总表。

其中,“学习”是文件夹的名称;“[me.xlsx]是工作簿的名称和类型;总表是A1单元格所在工作表的名称。

如果我们想单独得到工作表的名称,比如这里的“总表”,我们可以使用文本函数来处理单元函数的结果。

=MID(CELL(“filename“,A1),FIND(“]“,CELL(“filename“,A1))+1,99)

FIND函数查询字符“]“在字符串中的位置并加1,(为啥加1?猜猜发生了什么),MID函数开始在这个结果上取数字,99个数字,99是一个大数,这里也可以是66,88等等,只要把预期字符串的长度,改为250或25也是可能的。

二、批量拆分数据

有这样一种表格,就是公司人事信息表,按性别、相关人事信息填写的子表格,如女生填写的女生表格、男生填写的男生表格等。

当主表中的信息更改或添加新数据时,子表中的数据将相应更改。

接下来,让我们看看具体的步骤:

1、选择要拆分数据的工作表

2、单击位于左侧的苹果工作表标签,按住Shift键,再单击最右侧的【人妖】工作表,此时除【总表】外的分表会成为一个【工作组】,每个分表均处于选中状态。

3、输入公式,拆分数据

在成组工作表中的A2单元格,输入下方的数组公式,按组合键 Ctrl Shift Enter ,向下向右复制填充到A2:B50区域。

=INDEX(总表!A:A,SMALL(IF(总表!$C$2:$C$13=MID(CELL(“filename“,A1),FIND(“]“,CELL(“filename“,A1))+1,99),ROW($2:$13),4^8),ROW(A1)))&““

或者简单地说出这个公式的含义:

MID(CELL(“filename“,A1),FIND(“]“,CELL(“filename“,A1))+1,99)

用于获取A1单元格所在工作表的表名。

应注意,不能省略CELL的第二参数A1(“文件名”,A1)。如果省略,则获取上次更改单元格的工作表的表名将导致不正确的结果。

如果C13单元格区域的值等于对应工作表的表名,如果C13单元格区域的值等于C列值,则返回与C列值对应的行号,否则返回到4-8,结果是获得内存数组。

SMALL函数对IF函数的结果进行从小到大取数,随着公式的向下填充,依次提取第1、2、3、4……N个最小值。这又给出了符合标准的单元格的行号性别和公式所在的工作表的名称。

INDEX函数根据SMALL函数返回的索引值,得出结果。当小函数得到4^8,即65536时,表示排位号已被拿走。此时,INDEX函数将返回B65536单元格的值。一般而言,具有如此大的行号的单元是空白单元。使用&“”方法可以避免空单元格的问题。

4、取消合并工作表状态

完成公式后,单击不属于组表的摘要表选项卡,excel自动取消组合表状态。至此,完成根据工作表名称的汇总数据批量拆分的操作,当摘要表的数据发生变化时,演示如下:

暖心小贴士

您还可以使用数据透视表或VBA编程的[显示报表过滤器页面]功能快速拆分数据。然而,在可操作性、可接受性、动态性、适用性上是有蛮多区别的。

关注行家又怎么只有干货分享这么简单,快来参加行家头部玩家活动!参与活动成为行家首席体验官,可获得总额高达2.5万元的现金红包和职场付费课程超值大礼包!

活动时间:2019年5月27日-6月15日

活动网址:评论,告诉你参与网址!

赶紧进去,马上参加!

想学习 上行家

阅读全文

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多