Excel 跨多个工作表查找公式

Excel 跨多个工作表查找公式,excel,vba,formula,array-formulas,Excel,Vba,Formula,Array Formulas,我的工作簿有多张工作表(格式都相同)。我想找出每个部门使用的每个项目的总数 我试过透视表。 我试过合并表。 我试过SUMIf,Countif,间接表 =SUMIF('Steven Bradley:Adam Cockroft'!A3:N31,B2,'Steven Bradley:Adam Cockroft'!N4:N31) 值#错误,参考#错误 我认为您的跨工作表语法是正确的,问题在于sumif不跨工作表。与其他数组函数类似 对我来说,最明智的答案是在每张纸上做SUMIF,然后求和 我认为最好的选

我的工作簿有多张工作表(格式都相同)。我想找出每个部门使用的每个项目的总数

我试过透视表。
我试过合并表。
我试过SUMIf,Countif,间接表

=SUMIF('Steven Bradley:Adam Cockroft'!A3:N31,B2,'Steven Bradley:Adam Cockroft'!N4:N31)

值#错误,参考#错误


我认为您的跨工作表语法是正确的,问题在于sumif不跨工作表。与其他数组函数类似

对我来说,最明智的答案是在每张纸上做SUMIF,然后求和

我认为最好的选择是在某个地方的工作表上进行SUMIF,然后使用您已有的方法对其进行总结

如果你坚持不使用这种方法,你可以使用这个UDF。我真的不喜欢它,因为它不会捕获对其他工作表的更改,即使使用application.volatile

Function sumifAcrossSheets(addressRng1 As Range, _
    conditionToCount As Variant, _
            sumRng As Range) As Double
    Application.Volatile
    Dim ws As Worksheet

    For Each ws In ThisWorkbook.Worksheets
     sumifAcrossSheets = sumifAcrossSheets + _
            Application.WorksheetFunction.SumIf( _
            ws.Range(addressRng1.Address), _
            conditionToCount, _
            ws.Range(sumRng.Address))
    Next ws


End Function
以下是我在这个过程中留下的一些笔记(忽略那些尖刻的评论:


也许吧。如果我们不知道你的数据是什么样子,很难帮助你。而且可能会帮助你改进你的问题。单页名称实际上是
Steven Bradley:Adam Cockroft
?或者你是想用它引用两页吗?我认为这个功能对sumif不起作用。事实上,我认为这个公式甚至不适用单页…您的列/行看起来未对齐。