分享

提取Excel中所有工作表名称

 我的人生宝库 2020-04-25

主持人:Excel工具是一款很实用的Office办公软件之一,在各个行业领域都能发挥其强大的数据处理作用。然而实际工作中很多人硬生生的把Excel“玩”得让人“哭笑不得”,也同样留给职位交接人一个“烂摊子”。面对不规范的数据源,不得已使用“难以理解”的复杂Excel函数嵌套解决!如图所示

本期素材案例要求:

根据供应商明细表中的到货时间汇总每个月的应付账款余额


本期素材案例:

链接:https://pan.baidu.com/s/1I3vbo55WgXfbazbxmBLFYw

提取码:lmlm

复制这段内容后打开百度网盘手机App,操作更方便哦


讲解员:本期我们邀请牛先生分享用GET.WORKBOOK宏表函数生成工作表名称,通过生成的工作表名称进行跨工作表引用数据汇总


庖丁解牛:同学们,你们准备好了吗?跟上节奏我们要开始了!

Tip1:依次点击“公式”选项卡→“定义名称”→弹出“新建名称”对话框→输入自定义名称“工作表名称”→“引用位置”编辑公式=GET.WORKBOOK(1)→点击“确定”

说明:

GET.WORKBOOK宏表函数是专门用来提取Excel工作簿中的信息数据

GET.WORKBOOK(1)表示返回工作簿中所有工作表名称(返回以水平数组形式表示的所有当前工作表名称)

GET.WORKBOOK(3)表示返回工作簿中当前工作表名称

GET.WORKBOOK(4)表示返回工作簿中工作表个数

GET.WORKBOOK(38)表示返回活动工作表名称

Tip2:在A列右侧插入“辅助列”,尝试着在B2单元格编辑公式=工作表名称,返回结果为[微信公众号第28期.xlsm]汇总,观察发现“]”后的“汇总”就是我们将要提取的工作表名称,因此重新在B2单元格编辑公式=IFERROR(REPLACE(INDEX(工作表名称,ROW(A2)),1,FIND(']',INDEX(工作表名称,ROW(A2))),'')&T(NOW()),'')

公式解析:

①INDEX(工作表名称,ROW(A2))表示提取第二张工作表名称

②FIND(']',INDEX(工作表名称,ROW(A2)))表示查找提取的工作表名称中“]”文本所在字符串的位置

③REPLACE(INDEX(工作表名称,ROW(A2)),1,FIND(']',INDEX(工作表名称,ROW(A2))),'')表示将提取的工作表名称中含“]”所在位置之前的文本全部替换为空

④T(NOW())表示当修改工作表名称、增加或删除工作表时,公式能够自动更新计算


Tip3:在C2单元格编辑公式=IFERROR(ROUND(SUMPRODUCT((C$1=MONTH(INDIRECT($B2&'!$p$2:$p$999'))&'月')*(INDIRECT($B2&'!$p$2:$p$999')<>''),INDIRECT($B2&'!$s$2:$s999')),2),0)

公式解析:

①C$1=MONTH(INDIRECT($B2&'!$p$2:$p$999'))&'月'表示供应商明细表中“到货日期”为1月的一组数据

②INDIRECT($B2&'!$p$2:$p$999')<>''表示供应商明细表中“到货日期”列是否为空白单元格

MONTH函数的参数如果为空,则返回结果为1

因为空白单元格默认为0,而0在Excel中对应的日期是1900-1-0

因此加入判断参数INDIRECT($B2&'!$P$2:$P$999')<>''防止出现在没有“到货日期”的情况下,虚增1月份“应付账款”

③INDIRECT($B2&'!$s$2:$s999'表示供应商明细表中“未付金额”


Tip4:A列其实没有多大作用,完全可以删除。让我们感受一下最终的效果如何,直杠杠的!


结束语:GET.WORKBOOK宏表函数非常实用,在以往分享的Excel技巧中也提到过它。掌握GET.WORKBOOK宏表函数的结构和语法,借助自定义公式,结合实际工作案例熟能生巧!

在日常工作与学习中养成规范使用Excel工作表习惯,方便你我他!

如果你们支持和相信我,请将本期公众号文章分享给身边的人。谢谢!

温馨提示:

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多