我有一个文件,可以每周添加和删除工作表,但我需要概述表在所有相关工作表上进行计算(sumif) .
我已经创建了一个 3D sumif 但是无法将它引用到我想要的参考表...所有相关的表格包括文本 Cl - xxxx
(这意味着客户端选项卡,然后客户端名称可以是任何东西)我目前有20个客户端选项卡 .
这是我的公式:
=SUM(SUMIF(INDIRECT("'"&$B$5:$B$25&"'!$B$60:$B$999"),$A4,INDIRECT("'"&$B$5:$B$25&"'!D$60:D$999")))
$B$5:$B$25
当前是选项卡的列表,但我只是希望它基于选项卡名称是否包含 "Cl -"
由于添加和删除工作表我可以't use a sheet name list moving forwards as the people that use this document do not keep it updated and then are frustrated when it doesn'工作!
有任何想法吗?我需要一些VBA代码吗?我是以错误的方式攻击它吗?
1 回答
您需要将文件另存为
macro-enabled
,即使此设置不需要显式输入任何VBA
.首先转到
Name Manager
并进行以下两个定义:名称:
FullSheetNames
指:
=GET.WORKBOOK(1)&T(NOW())
名称:
SheetNames
指:
=MID(FullSheetNames,FIND("]",FullSheetNames)+1,255)
所需的 array formula** 是:
=SUM(IFERROR(SUMIF(INDIRECT("'"&IF(ISNUMBER(SEARCH("CL -",SheetNames)),SheetNames)&"'!$B$60:$B$999"),$A4,INDIRECT("'"&IF(ISNUMBER(SEARCH("CL -",SheetNames)),SheetNames)&"'!D$60:D$999")),0))
问候
**数组公式的输入方式与'standard'公式不同 . 您只需按住CTRL和SHIFT键,然后按ENTER键,而不是按ENTER键 . 如果您注意到Excel在公式周围放置了大括号{}(尽管不要尝试自己手动插入这些括号{}) .