【问题标题】:Find the sum of a cell from difference worksheets without referencing sheet names在不引用工作表名称的情况下从不同工作表中查找单元格的总和
【发布时间】:2020-01-10 19:08:14
【问题描述】:

我有一个包含多张工作表的工作簿。所有工作表名称都遵循此方案“传感器状态”、“传感器状态(1)”等。有没有办法从所有这些表中获取 I4 的总和,而不必引用每个单独的表名称?我试过这个但是我得到了 ref 错误。 “A5”具有“传感器”的值,因为我试图在公式的工作表参考中使用通配符。

=SUM(INDIRECT("'*"&A5&"*'!K4"))

【问题讨论】:

    标签: excel reference sum formula xlsx


    【解决方案1】:

    你可以为Sensor Status(#)做这样的事情

    =SUM(INDIRECT("'Sensor Status("&ROW(1:5)&")'!K4"))
    

    这是一个数组公式,必须使用 Ctrl-Shift-Enter 而不是 Enter 来确认。

    注意:可以使用 SUMPRODUCT 代替 SUM 来避免 CSE 条目。

    但它需要ROW(1:5) 提供的数组。如果这不理想,则需要 vba 或在列中列出工作表并参考。

    查看更多选项的答案:How can you sum the same cell across multiple worksheets by worksheet index number in excel?


    您可以混合使用 vba 和公式。

    在附加到工作簿的模块中放置:

    Function SHEETNAME() As Variant
    Application.Volatile
    
    Dim temp() As Variant
    ReDim temp(1 To Application.Caller.Parent.Parent.Worksheets.Count) As Variant
    
    Dim i As Long
    For i = 1 To Application.Caller.Parent.Parent.Worksheets.Count
        temp(i) = Worksheets(i).Name
    Next
    
    SHEETNAME = temp
    End Function
    

    这会将所有工作表名称作为数组返回。然后使用这样的东西:

    =SUMPRODUCT((ISNUMBER(SEARCH(A5,SHEETNAME())))*SUMIF(INDIRECT("'"&SHEETNAME()&"'!K4"),">0"))
    

    【讨论】:

    • 不幸的是,这也给了我#REF错误:-(
    • 如果您没有名为 Sensor Status(...) 的工作表,其中 ... 是 1 到 5 之间的数字,则会出现这种情况。还要确保实际工作表名称中没有任何多余的空格。它对我来说很好用。尝试逐个计算公式,看看它在哪里找到错误。
    • @ThisGuyUsesPowershell 查看UDF-Function mix的编辑。
    【解决方案2】:

    在 VBA 中:

    Function SumbyCell(rng As Range) As Double
    Dim sum As Double
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Sheets
    sum = sum + ws.Range(rng.Address).Value2
    Next ws
    SumbyCell = sum
    End Function
    

    该功能将在不依赖工作表名称的情况下工作。

    按类型调用函数:= Sumbycell(I4)


    具有功能:
    假设你分别有两张名字:sheet1, sheet2

    你的功能是:

    = CONCAT (SUM (INDIRECT ("sheet" & ROW (1: 2) & "! I4"))))
    

    输入:ctrl + shift + enter

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多