Страницы: 1
RSS
Как посчитать сумму, когда в ячейках цифры и текст написаны вместе?
 
Здравствуйте! Необходимо посчитать сумму ячейки. Но в ячейке могут стоять как обычное число, так и совместно с текстом и символами
 
Код
=СУММ(
ФИЛЬТР.XML("<j><i>"&ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;СИМВОЛ(10);" ");" ";"</i><i>")&"</i></j>";"//i[number()=.]"))
Изменено: Тимофеев - 25.01.2022 12:30:35
 
, добрый день! Спасибо! У меня почему-то не суммируются дробные числа, есть возможность это исправить ?
 
Код
Sub GetSumma()
Dim mo As Object
Dim n As Integer
Dim i As Long
Dim iLastRow As Long
 iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
With CreateObject("VBScript.RegExp")
  .Global = True
  .MultiLine = True
  .Pattern = "\d+(,\d+)?$"
  For i = 1 To iLastRow
      Cells(i, 3) = 0
    If .Test(Cells(i, 1)) Then
      Set mo = .Execute(Cells(i, 1))
      For n = 0 To mo.Count - 1
        Cells(i, 3) = Cells(i, 3) + CDbl(mo(n))
      Next
    End If
  Next
End With
End Sub

Результат в столбце С
 
Формула массива:
Код
=СУММ(ЕСЛИОШИБКА(--ПРАВСИМВ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(A1;СИМВОЛ(10);ПОВТОР(" ";50));(СТРОКА(1:99)-1)*50+1;50));" ";ПОВТОР(" ";50));50);0))
Изменено: Максим В. - 25.01.2022 14:30:02
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
если дробь вы имеете ввиду допустим 1/2, то образованный массив даст дату вместо 0,5 и сумма точно Вам не подойдёт.
А если в примере не считает правильно, то можно предположить что системный разделитель ". " у Вас
Изменено: Тимофеев - 25.01.2022 15:26:55
Страницы: 1
Наверх