基于Fiscal Year条件从多Excel工作表提取指定合计金额
提取含"Fiscal Year:2019-20"工作表的F列合计金额
针对你的需求,结合你是Excel新手的情况,直接给你可复用的公式和分步解释,不用纠结复杂函数的原理,照着用就行:
核心思路
先定位包含指定文本的工作表,再动态引用该表F列的合计金额(分两种常见场景)
场景1:合计金额在F列最后一行
直接在灰色单元格输入以下公式(新版Excel回车即可,旧版需按Ctrl+Shift+Enter):
=INDIRECT(TEXTAFTER(INDEX(GET.WORKBOOK(1),MATCH("*Fiscal Year:2019-20*",GET.WORKBOOK(1),0)),"]")&"!F"&COUNTA(INDIRECT(TEXTAFTER(INDEX(GET.WORKBOOK(1),MATCH("*Fiscal Year:2019-20*",GET.WORKBOOK(1),0)),"]")&"!F:F")))
简单拆解:
GET.WORKBOOK(1):列出当前工作簿所有工作表的完整名称MATCH(...):找到包含"Fiscal Year:2019-20"的工作表位置TEXTAFTER(...):提取纯工作表名称(去掉前面的工作簿名前缀)COUNTA(...):统计F列非空单元格数量,得到最后一行行号INDIRECT(...):动态引用目标工作表的对应单元格
场景2:合计在标注"Total amount"的行(比如A列是"Total amount",对应F列金额)
这种情况更精准,公式如下:
=VLOOKUP("Total amount",INDIRECT(TEXTAFTER(INDEX(GET.WORKBOOK(1),MATCH("*Fiscal Year:2019-20*",GET.WORKBOOK(1),0)),"]")&"!A:F"),6,FALSE)
简单拆解:
INDIRECT(...):引用目标工作表的A到F列数据范围VLOOKUP("Total amount",...,6,FALSE):在A列找到"Total amount",返回对应第6列(F列)的值
兼容旧版Excel的替换方案
如果你的Excel不支持TEXTAFTER函数,把公式里的TEXTAFTER(...)替换成以下内容:
RIGHT(INDEX(GET.WORKBOOK(1),MATCH("*Fiscal Year:2019-20*",GET.WORKBOOK(1),0)),LEN(INDEX(GET.WORKBOOK(1),MATCH("*Fiscal Year:2019-20*",GET.WORKBOOK(1),0)))-FIND("]",INDEX(GET.WORKBOOK(1),MATCH("*Fiscal Year:2019-20*",GET.WORKBOOK(1),0))))
比如场景2的完整公式就变成:
=VLOOKUP("Total amount",INDIRECT(RIGHT(INDEX(GET.WORKBOOK(1),MATCH("*Fiscal Year:2019-20*",GET.WORKBOOK(1),0)),LEN(INDEX(GET.WORKBOOK(1),MATCH("*Fiscal Year:2019-20*",GET.WORKBOOK(1),0)))-FIND("]",INDEX(GET.WORKBOOK(1),MATCH("*Fiscal Year:2019-20*",GET.WORKBOOK(1),0))))&"!A:F"),6,FALSE)
内容的提问来源于stack exchange,提问作者Meeyan
相关产品推荐
相关产品推荐

