在 Excel 中控制输入总和

在 Excel 中控制输入总和

如果单元格 a1=25+30+40+10,是否有一个公式可以让单元格 b1 等于 a1(除了所有小于 25 的数字)?所以它将是 b1=30+40。

答案1

尝试使用 Excel 2013 或更高版本中提供的 Formulatext 和 Filterxml 函数

在 中A1输入:=25+30+40+10

输入B1公式:

=SUMPRODUCT(FILTERXML("<a><b>"&SUBSTITUTE(MID(FORMULATEXT(A1),2,99),"+","</b><b>")&"</b></a>","//b[.>25]"))

在此处输入图片描述

答案2

这是一个 VBA UDF(又名用户定义函数)。复制代码并粘贴到VBA标准模块代码表中。

Option Explicit

Function AddendsIf(rng As Range, c As String)

    Dim i As Long, a As Variant, f As String, s As Double

    f = Mid(rng.Cells(1).Formula, 2)

    a = Split(f, "+")

    For i = LBound(a) To UBound(a)

        If Application.Evaluate(a(i) & c) Then

            s = s + Val(a(i))

        End If

    Next i

    AddendsIf = s

End Function

您可以像任何其他本机工作表函数一样在工作表中使用它。

在此处输入图片描述

在此处输入图片描述

如果您的 Excel 版本支持FORMULATEXT 函数那么你应该能够将它与FILTERXML 函数来实现类似的目标。


一个加数是构成总和的每个单独的值。

相关内容