Страницы: 1
RSS
Произведение чисел из одной ячейки Миф?, Реально ли произведение чисел из одно ячейки.
 
Ситуация следующая,мне приходят документы,где содержание ячейки следующее, 221*30*400, мне интересно реально ли как то сделать,чтоб считало произведение этих чисел в отдельную ячейку, я понимаю,что можно просто взять и написать =221*30*400 в другой ячейки и всё будет хорошо,но у меня таких ячеек тысячи.
 
Макрофункция "Вычислить". Поищите по интрнету
Согласие есть продукт при полном непротивлении сторон
 
Не миф.
1. Самое простое: Данные-Текст_по_столбцам, разделитель "*", потом умножайте данные отдельных ячеек.
2. Формула, разделяющая данные на составляющие. Или одна в соседней ячейке, или по одной формуле в отдельных ячейках.
3. Макрофункция ВЫЧИСЛИТЬ. Тоже в отдельной ячейке.
4. Макрос. Этот может изменить данные в ячейке.
В двух последних случаях макросы должны быть разрешены.
 
Цитата
vikttur написал:Не миф
А я подумал что Миф это Vba в русской раскладке :D
Согласие есть продукт при полном непротивлении сторон
 
Цитата
vikttur написал: 4. Макрос. Этот может изменить данные в ячейке.
Например такой. Выделить диапазон, запустить макрос
Код
Sub Eval()
Dim cl As Range
For Each cl In Selection
cl.Formula = "=" & cl.Value
Next
Application.Calculate
End Sub
Согласие есть продукт при полном непротивлении сторон
 
Lomix, выделяете нужные ячейки и запускаете вот такой макрос.
Код
Sub Replace2Formula()
For Each cell In Selection
If Not cell.HasFormula Then cell.Formula = "=" & cell.Text
Next cell
End Sub

Изменено: МВТ - 10.04.2015 12:47:42
 
ну и я из загашника вытащу в одной из тем тестировал
Лень двигатель прогресса, доказано!!!
 
Sanja, немного опередили :). Но у Вас, если в ячейке уже есть формула, она будет заменена на свой результат, как при специальной вставке - значения
 
Цитата
МВТ написал: Но у Вас, если...
Таких "если" можно еще с десяток привести. ТС пример не показал, поэтому такие и ответы
Согласие есть продукт при полном непротивлении сторон
 
Sanja, Вы как всегда правы, без примера можем гадать долго и нудно. В идеале еще и ЕСЛИОШИБКА() не мешало бы прикрутить ;)
 
Вот часть таблицы. Спасибо ребят,что помогаете.
 
у вас в ячейке точка вместо запятой из за этого возможно предложенные варианты не сработают, либо с начало поиск замена либо как уменя смотрите в диспетчере имен
Лень двигатель прогресса, доказано!!!
 
пользовательская функция
Код
Public Function Proizvedenie(val As String)
    Dim Arr() As String
    Dim j As Integer
    
    val = Replace(val, ".", ",")
    Arr = Split(val, "*")
    
    Proizvedenie = 1
    For j = 0 To UBound(Arr)
        Proizvedenie = Proizvedenie * CDbl(Arr(j))
    Next j
End Function
 
Правда, пользовательская функция может быть и попроще :)
Код
Public Function Proizvedenie(val As String)
    Proizvedenie = Application.Evaluate(val)
End Function
 
webley, спасибо вам огромное!!!!Всё работает в лучшем виде!!
 
Lomix, кнопка цитирования не для ответа
Страницы: 1
Наверх