如何对以

问题描述 投票:0回答:1

我的 Excel 工作簿包含多个名称以相同单词开头的单元格:

"capex_"

我想用公式对所有这些单元格求和。

这是我尝试过的(没有成功):

=SUM(INDIRECT("capex_*"))
excel
1个回答
0
投票

严格使用工作表函数时我不确定这一点,但是如果您愿意冒险使用 VBA,那么您可以创建自定义工作表函数。

  • AltF11
  • 打开 IDE
  • 插入 > 模块
  • 粘贴以下 VBA 代码:
Option Explicit

Public Function SumNamedCells(ByVal Pattern As String) As Double
    Application.Volatile
    Dim retVal As Double
    Dim n As Name
    For Each n In ThisWorkbook.Names
        If n.Name Like Pattern Then retVal = retVal + Range(n).Value
    Next n
    SumNamedCells = retVal
End Function

这将循环遍历工作簿中的每个命名范围,并对符合输入模式的每个单元格求和。

在工作表中,您可以使用

=SumNamedCells("capex_*")
来获得预期结果。


重要注意事项

由于这是一个利用循环来完成此任务的 VBA 函数,因此与使用内置工作表函数相比,它的效率可能较低 - 特别是当您有大量命名范围时。

我在该函数的第一行中使用了

Application.Volatile
,这一事实进一步放大了这一点,这使得该函数可以在工作簿中每次发生更改时重新计算。如果您想提高性能,可以删除此行 - 但请注意,该函数不会在手动刷新之间(或打开工作簿时)保持更新。

© www.soinside.com 2019 - 2024. All rights reserved.