Страницы: 1
RSS
Небольшой калькулятор: разница и сумма чисел в группах
 
Ребят помогите пожалуйста, облегчить монотонную, рутинную работу. Нужен простенький калькулятор, подробно описал в файле на Листе1. Вкратце, вводится в две ячейки, две группы чисел формата 26,29,45 и 68,22,10 нужно посчитать разницу между ними и сумму чисел в группе. Пример:
26,29,45 сумма 100
68,22,10 сумма 100
разница:
42 7 35

Подробнее в файле...
Заранее огромное спасибо!
Изменено: GreenBob - 15.03.2015 10:05:40
 
Цитата
GreenBob написал:  вводится в две ячейки, две группы чисел
И для двух ячеек такой файл, что он не вписывается в 100К? Файл не смотрел...
 
Юрий М, Пришлось многое удалить чтоб вписаться в 100кб .Для удобства, хотелось бы разместить калькулятор на листе "Результаты", поэтому сразу выложил рабочий файл.
 
GreenBob, а у вас нет в запасе новой книги Excel? И в ней создать пример того, что вам надо?

зы.
"Данные которые вводятся в калькулятор, в две ячейки. " - эти две ячейки всегда одни и те же?
результаты куда выводить?
Изменено: Михаил С. - 15.03.2015 11:00:33
 
В новой книге не будет листа "Результаты" ))
 
Погоняйте на разных значениях
Код
Sub Calc()
Dim Diff(2) As Integer
Dim Des1(2) As Integer
Dim Des2(2) As Integer
Dim Des3(2) As Integer

Application.ScreenUpdating = False

On Error Resume Next

    For I = 0 To 2
        Fr = Val(Split(Sheets("Результаты").Range("J3").Value, ",")(I))
        Sc = Val(Split(Sheets("Результаты").Range("J4").Value, ",")(I))
        Sum1 = Sum1 + Fr    'Сумма первой тройки чисел
        Sum2 = Sum2 + Sc    'Сумма второй тройки чисел
        'Расчет разностей чисел
        If Fr >= Sc Then
            Diff(I) = Fr - Sc
        Else
            Diff(I) = Sc - Fr
        End If
        strDiff = strDiff & "," & Diff(I)
        'Двузначные в однозначные
        If Fr <= 10 Then
            Des1(I) = 0
        Else
            Des1(I) = Left(Fr, 1)
        End If
        strDes1 = strDes1 & Des1(I)
    
        If Sc <= 10 Then
            Des2(I) = 0
        Else
            Des2(I) = Left(Sc, 1)
        End If
        strDes2 = strDes2 & Des2(I)
        
        If Diff(I) <= 10 Then
            Des3(I) = 0
        Else
            Des3(I) = Left(Diff(I), 1)
        End If
        strDes3 = strDes3 & Des3(I)
    
    Next
    'Вывод результатаов на лист
    With Sheets("Результаты")
        .Range("I5") = Sum1 & "-" & Sum2
        .Range("J5") = Right(strDiff, Len(strDiff) - 1)
        .Range("K3") = strDes1
        .Range("K4") = strDes2
        .Range("K5") = strDes3
    End With
Application.ScreenUpdating = True
End Sub
Согласие есть продукт при полном непротивлении сторон
 
как то так... (см в модуле листа)
 
Михаил С., спасибо, то что нужно! Можно ли встроить калькулятор в мой рабочий файл? прикреплённый в первом сообщении, без потери других формул в нём.
 
Так он уже встроен.
Я просто из вашего файла взял один нужный лист.
Замените макрос в модуле этого листа в файле на макрос в моем примере.
 
Возможно ли технически научить калькулятор, преобразовывать тройку чисел в символы? по принципу:
наибольшее число в тройке это +
среднее число это =
наименьшее число -
пример: 21,8,13 +-=  ещё пример: 123 -=+

Если числа равны друг другу то равные числа это =
пример: 223 ==+ или 133 -== или 33,33,33 ===

Необязательно использовать формат +=-, можно заменить + на Б, = на Р, - на М
пример 57,25,18 это БРМ, ещё 332 это РРМ

Пример в файле.
Изменено: GreenBob - 15.03.2015 13:47:22
 
GreenBob, ведь можно же поменьше файлы выкладывать? )
 
Юрий М,стыдно признаваться, но я не "бум бум" в формулах и макросах, потом не смогу самостоятельно всё перенести в рабочий файл, поэтому выкладываю сразу, под всё готовенькое :oops: )
Изменено: GreenBob - 15.03.2015 14:05:32
 
Михаил С., Спасибо!
Изменено: GreenBob - 15.03.2015 18:50:33
 
На всякий случай формулами (см. в т.ч. Диспетчер имен)
Согласие есть продукт при полном непротивлении сторон
Страницы: 1
Наверх