Страницы: 1
RSS
Автоматическая вставка скобок
 
Здравствуйте. Я новичок в excel. меня интересует есть ли формула или макрос чтобы вставить скобки между знаками +
например
я пишу
=25*15*7+25*78*15+14*7*8
чтобы получилось так
=(25*15*7)+(25*78*15)+(14*7*7)
Изменено: andrey_008 - 09.08.2018 14:34:53 (смайл)
 
Не совсем понятна задача, то что вы пишите уже является формулой, когда пишите ее вставляйте скобки и все, только зачем?
 
я хочу чтобы вот это =25*15*7+25*78*15+14*7*8 стало автоматическим =(25*15*7)+(25*78*15)+(14*7*7)
 
не хочу вручную писать скобки
 
Ctrl + H, убираете знак =, далее так же добавляете перед плюсами скобки и функцией сцепить добавляете скобки по краям записи и добавляете так же равно обратно.  
 
andrey_008, Вам это для визуализации нужно?
По вопросам из тем форума, личку не читаю.
 
Цитата
DopplerEffect написал:
Цитировать
как потом обратно вставить = чтобы получилось формула??
 
Цитата
БМВ написал:
ndrey_008 , Вам это для визуализации нужно?
да
 
вариант макроса с выводом результата в F1(данные в A1)

 
Код
Sub test1()
  Dim i&, s$: t = Range("A1")
With CreateObject("VBScript.RegExp"): .Pattern = "\d+\*\d+\*\d+": .Global = True
For i = 0 To .Execute(t).Count - 1: s = s & "+" & "(" & .Execute(t)(i) & ")": Next
  Range("F1").NumberFormat = "@": Range("F1") = "=" & Mid(s, 2)
End With
End Sub
Изменено: кузя1972 - 09.08.2018 16:27:19
 
еще более короткий вариант с использованием функции и специальной(волшебной переменной )$& в I1
 
Код
Function uuu$(t)
With CreateObject("VBScript.RegExp"): .Pattern = "\d+\*\d+\*\d+": .Global = True 
uuu = .Replace(t, "($&)")
End With
End Function
Изменено: кузя1972 - 09.08.2018 18:28:14
 
спасибо большое
 
и еще один вопрос как мне научится делать макросы??? видекурс или книга. знаю английский если что
 
Цитата
кузя1972 написал:
еще более короткий вариант с использованием функции и специальной(волшебной переменной )$& в I1
когда ставлю формулу он покаызвает только уже подсчет.  
 
60*12*1,14+55*18*1,14+35*20*1,14+115*15*1,14+46*16*1,14+65*15*1,14
ставлю так
выходит так
=(60*12*1)+(55*18*1)+(35*20*1)+(115*15*1)+(46*16*1)+(65*15*1)
после запятой невидит
Изменено: andrey_008 - 09.08.2018 19:04:34
 
в ответ на #14,Вы фактически изменили файл-пример,регулярных выражений для всех случаев жизни не бывает,
для нового файл примера вариант функции uuu1
 
Код
Function uuu1$(t$)
  Dim i&, s$
With CreateObject("VBScript.RegExp"): .Pattern = "\d+,?(?:\d+)?\*\d+,?(?:\d+)?\*\d+,?(?:\d+)?": .Global = True
uuu1 = .Replace(t, "($&)")
End With
End Function
Изменено: кузя1972 - 10.08.2018 21:29:43
 
andrey_008, это как называется?! Зачем дублировали тему?
Страницы: 1
Наверх