Контрольная сумма ввода в Excel

Контрольная сумма ввода в Excel

если ячейка a1=25+30+40+10, есть ли формула, чтобы сделать ячейку b1 равной a1, за исключением всех чисел меньше 25? тогда это будет b1=30+40.

решение1

Попробуйте использовать функции Formulatext и Filterxml, которые доступны в Excel 2013 или более поздней версии.

В 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 поддерживаетФункция ФОРМУЛАТЕКСТто вы должны быть в состоянии связать это сФункция FILTERXMLчтобы добиться чего-то подобного.


Ансложение— это каждое отдельное значение, составляющее сумму.

Связанный контент