Прескочи на основното съдържание

Как да сумирам числа в скоби само в Excel?

Автор: Слънце Последна промяна: 2020-08-21

Ако има списък с текстови низове и просто искате да съберете всички числа в скоби, както е показано на екранната снимка по-долу, как можете бързо да се справите с него? В тази статия ви представям някои трикове за сумиране на числата в скоби само в Excel.


Сумирайте числата в скоби само с формула

За да сумирате числа само в скоби, можете първо да извлечете числата, които са в скоби, и след това да ги съберете.

1. Изберете празна клетка до клетката, чиито числа искате да сумирате в скоби, B2 например, въведете тази формула
=IF(ISERROR(MID(A1,FIND("(",A1)+1,(FIND(")",A1))-(FIND("(",A1)+1))),0,(MID(A1,FIND("(",A1)+1,(FIND(")",A1))-(FIND("(",A1)+1)))+0),
и след това плъзнете манипулатора за автоматично попълване надолу, за да извлечете числата, които са в скоби от всяка клетка. Вижте екранна снимка:
doc сумата числа в скоби 2

тип: във формулата A1 е клетката, от която искате да извлечете числата в скоби.

2. Изберете клетка, в която ще поставите резултата от сумирането, въведете =СУМА(B1:B8), и натиснете Въведете ключ. Вижте екранна снимка:
doc сумата числа в скоби 3

Съвет: във формулата B1:B8 са числата, които сте извлекли от оригиналния списък с текстов низ и искате да сумирате.


Сумирайте числа в скоби само с дефинирана функция

Можете също така да приложите дефинирана функция за сумиране на числа в скоби.

1. Натиснете Alt + F11 ключове за активиране Microsoft Visual Basic за приложения прозорец, кликнете Поставете > Модулии поставете кода по-долу в празния скрипт.

VBA: Сумирайте числата в скоби

Function SumBracket(Target As Range) As Double
'UpdatebyExtendoffice20160901
Dim xCell As Range
Dim xObjs As Object, xObj As Object
Dim xSum As Double
Set xObjs = CreateObject("VBScript.RegExp")
xSum = 0
With xObjs
    .Global = True
    .Pattern = "\((\d+(\.\d+)?)\)"

    For Each xCell In Target
      If xCell.Value <> "" Then
        For Each xObj In xObjs.Execute(xCell.Value)
            xSum = xSum + xObj.submatches(0)
        Next
      End If
    Next
End With
SumBracket = xSum
End Function

doc сумата числа в скоби 4

2. Запазете кода и изберете клетка, която ще постави резултата, и въведете тази формула =SumBracket(A1:A8), Натиснете Въведете ключ. Вижте екранна снимка:
doc сумата числа в скоби 5


Сумирайте числа в скоби само с Kutools за Excel

Всъщност, с Kutools за ExcelЕ Извличане на текст функция за извличане на числа в скоби и след това приложете Сумирайте абсолютните стойности функция за сумиране на числата.

Kutools за Excel, с повече от 300 удобни функции, прави работата ви по-лесна. 

След инсталиране Kutools за Excel, моля, направете следното:(Безплатно изтегляне Kutools за Excel сега!)

1. Изберете низовете, които искате да извлечете, числата в скоби и щракнете Kutoolа> Текст > Извличане на текст. Вижте екранна снимка:
doc сумата числа в скоби 6

2. В Извличане на текст диалогов прозорец, въведете (*) в Текст текстово поле и щракнете Добави за да го добавите към Извлечете списък, След това кликнете Okи да изберете клетка, за да поставите извлечените числа в изскачащия диалог, C1 например. Вижте екранна снимка:

Забележка: Ако има други правила за извличане в Извлечете списък раздел, моля, премахнете отметката от тези правила за извличане и проверете само новото добавено правило за извличане на (*).


doc сумата числа в скоби 7 изстреляна стрелка надясно doc сумата числа в скоби 8

3. кликване OK, а сега числата в скоби са извлечени. По подразбиране числата в скобите се разпознават като отрицателни, трябва да сумирате техните абсолютни стойности.
doc сумата числа в скоби 9

4. Изберете клетка, в която ще поставите резултата от изчислението, щракнете Kutools > Помощник за формула > Математика и триг > Сумирайте абсолютните стойности. Вижте екранна снимка:
doc сумата числа в скоби 10

5. В Помощник за формула изберете диапазона, който съдържа извлечените числа Телефон за връзка: текстово поле, C1: C8 в този случай. Кликнете Ok, абсолютните стойности на числата са добавени. Вижте екранна снимка:

doc сумата числа в скоби 11 изстреляна стрелка надясно doc сумата числа в скоби 12

Бакшиш. Ако искате да имате безплатен пробен период на Извличане на текст намлява Абсолютна стойност на суматаs функция, моля, отидете на безплатно изтегляне Kutools за Excel първо и след това преминете към прилагане на операцията според горните стъпки.

Най-добрите инструменти за продуктивност в офиса

🤖 Kutools AI помощник: Революционизирайте анализа на данни въз основа на: Интелигентно изпълнение   |  Генериране на код  |  Създаване на персонализирани формули  |  Анализирайте данни и генерирайте диаграми  |  Извикване на функциите на Kutools...
Популярни функции: Намерете, маркирайте или идентифицирайте дубликати   |  Изтриване на празни редове   |  Комбинирайте колони или клетки без загуба на данни   |   Кръг без формула ...
Супер търсене: VLookup с множество критерии    VLookup с множество стойности  |   VLookup в няколко листа   |   Размито търсене ....
Разширен падащ списък: Бързо създаване на падащ списък   |  Зависим падащ списък   |  Падащ списък с множество избори ....
Мениджър на колони: Добавете конкретен брой колони  |  Преместване на колони  |  Превключване на състоянието на видимост на скритите колони  |  Сравнете диапазони и колони ...
Препоръчани функции: Мрежов фокус   |  Изглед на дизайна   |   Голям формула бар    Мениджър на работни книги и листове   |  Библиотека с ресурси (Автоматичен текст)   |  Избор на дата   |  Комбинирайте работни листове   |  Шифроване/декриптиране на клетки    Изпращайте имейли по списък   |  Супер филтър   |   Специален филтър (филтър получер/курсив/зачертано...) ...
Топ 15 комплекта инструменти12 Текст Инструменти (добавяне на текст, Премахване на символи, ...)   |   50 + Графика Видове (диаграма на Гант, ...)   |   40+ Практичен формули (Изчислете възрастта въз основа на рождения ден, ...)   |   19 вмъкване Инструменти (Въведете QR код, Вмъкване на картина от пътя, ...)   |   12 Конверсия Инструменти (Числа към думи, Валутен обмен, ...)   |   7 Обединяване и разделяне Инструменти (Разширено комбиниране на редове, Разделени клетки, ...)   |   ... и още

Усъвършенствайте уменията си за Excel с Kutools за Excel и изпитайте ефективност, както никога досега. Kutools за Excel предлага над 300 разширени функции за повишаване на производителността и спестяване на време.  Щракнете тук, за да получите функцията, от която се нуждаете най-много...

Описание


Раздел Office Внася интерфейс с раздели в Office и прави работата ви много по-лесна

  • Разрешете редактиране и четене с раздели в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Отваряйте и създавайте множество документи в нови раздели на един и същ прозорец, а не в нови прозорци.
  • Увеличава вашата производителност с 50% и намалява стотици кликвания на мишката за вас всеки ден!
Comments (15)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Hello Sunny,

I have a question as well. I have an excel sheet with numbers and some of them are in brackets. I want to add the values of the numbers in a row. Basically:
50 (50*) 100 150 = 350
How can I add (=sum) of all of them, including the one in brackets? I'ld appreciate your advise.
Best, Anna
This comment was minimized by the moderator on the site
Vielen Dank Sonnig,

jetzt ich sehe wo war das Problem. Sie schreiben im VBA und Zelle "." statt wie bei mir "," Ich habe im VBA diese Zeile:
.Pattern = "\((\d+(\.\d+)?)\)"
in diese:
.Pattern = "\((\d+(\,\d+)?)\)"
geändert und dann funktioniert alles perfekt.

Noch mall vielen, vielen Dank.
Schöne Grüße

Wojtek
This comment was minimized by the moderator on the site
...ich meinte addieren Dezimalbruche 🙂
This comment was minimized by the moderator on the site
Hi, Wojtek, if you just want to sum the decimal numbers only, try this code:
Function SumBracket(Target As Range) As Double
'UpdatebyExtendoffice20221209
Dim xCell As Range
Dim xObjs As Object, xObj As Object
Dim xSum As Double
Dim xNum As Integer
On Error Resume Next
Application.Volatile
Set xObjs = CreateObject("VBScript.RegExp")
xSum = 0
With xObjs
    .Global = True
    .Pattern = "\((\d+(\.\d+)?)\)"

    For Each xCell In Target
      If xCell.Value <> "" Then
        For Each xObj In xObjs.Execute(xCell.Value)
            xSum = xSum + Val(xObj.submatches(0)) - Int(Val(xObj.submatches(0)))
        Next
      End If
    Next
End With
SumBracket = xSum
End Function
This comment was minimized by the moderator on the site
Hallo Sonnig,
vielen Dank für die schnelle Antwort 😀. Um die Ganze klar zu machen gebe ich ein Beispiel meiner Aufgabe:

a(5), b(2,5), c(0,25) = 7,75

wie gesagt, mit:

a(5), b(2), c(21) im eine Zelle funktioniert die erste Makro super.

Vielen Dank und schöne Grüße
Wojtek
This comment was minimized by the moderator on the site
Sorry, Wojtek, I do undestand Geman, I just translate your question by Google so that I do not get your question clearly. Could you give me more description, for example, the data structure, are they in a cell or in different cell, in a column or in a row, what result you want.
This comment was minimized by the moderator on the site
Hallo Sonnig,

noch mal vielen Dank für die Mühe.

Geht um Summe alle Zahlen die in der Klammer stehen...
Erste Zelle: 458/1(2,5), 458/2(11), 458/3(0,75)
Zweite Zelle: Summe von 2,5 und 11 und 0,75
alles was in der Klammer steht in der erste Zelle sollte summiert sein. das Ergebnis soll in der Zweite Zelle erscheinen.

Vielen Dank und schöne Grüße
Wojtek
This comment was minimized by the moderator on the site
Hallo,
danke, Makro funktioniert super, aber leider nur mit Ganze Zahl, nicht mit Bruchzahl. Wäre das möglich zu ändern?
This comment was minimized by the moderator on the site
I'm sorry, I meant adding the numbers outside the bracket.
This comment was minimized by the moderator on the site
Hi, Adduar, I do not find a formula to solve your problem, maybe you only can use the Extract Text tool of Kutools for Excel to extract the numbers first, and then sum them, the conditions are *( and )*.
This comment was minimized by the moderator on the site
How to add numbers within the bracket?
This comment was minimized by the moderator on the site
Hi, How do I modify the pattern to sum everything between F-( and )


Example of my data is: F-(10) F-(12) E-(8)


the sum would be 22


thanks
This comment was minimized by the moderator on the site
Hi, Andy, please try this code:
Function SumBracket(Target As Range) As Double
'UpdatebyExtendoffice20160901
Dim xCell As Range
Dim xObjs As Object, xObj As Object
Dim xSum As Double
Set xObjs = CreateObject("VBScript.RegExp")
xSum = 0
With xObjs
.Global = True
.Pattern = "\-\((\d+(\.\d+)?)\)"

For Each xCell In Target
If xCell.Value <> "" Then
For Each xObj In xObjs.Execute(xCell.Value)
xSum = xSum + xObj.submatches(0)
Next
End If
Next
End With
SumBracket = xSum
End Function
This comment was minimized by the moderator on the site
Hello, is there a Google App Script version of the VBA script. I would like to use it in Google Sheets.
Thanks. :D
This comment was minimized by the moderator on the site
Sorry I do not know
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations