Страницы: 1
RSS
Расчет электроэнергии по 3 тарифам, сложность с составлением многоуровневой формулы "ЕСЛИ".
 
Доброго времени суток. Вообщем пытаюсь сделать формулу для расчета электроэнергии по 3 тарифам: от 0 кВт - до 100 кВт; от 100 кВт - до 600 кВт; от 600 - до бесконечности :). Ну вот собственно проблема у меня заключается в разделении числа (к примеру 1000) на три составляющие (от 0 кВт - до 100 кВт; от 100 кВт - до 600 кВт; от 600 - до бесконечности). И я не могу понят как в формуле "ЕСЛИ" сделать такую формулу (а может я и вовсе не той формулой пытаюсь это сделать). Если кто может объяснить - буду очень признателен. Я смог сделать только первый и половину второго уровня :( .
P. S. Образец файла тоже скину для наглядности.
Изменено: WTF - 24.03.2016 12:36:25
 
Желтые ячейки.
С таблицей:
=ВПР(D6;$M$2:$N$4;2)
Без таблицы:
=ВПР(D6;{0;0,57:100;0,99:600;1,56};2)
 
Цитата
vikttur написал: =ВПР(D6;$M$2:$N$4;2;)
Спасибо за ответ, но я либо плохо объяснил, либо я Вас не понял.
Мне нужно производить подсчет в ячейке Е6 (часть формулы там уже написана).
Изменено: WTF - 24.03.2016 13:05:03
 
Раздельные если  (слишком запутано, удалил)
Изменено: Фродо - 24.03.2016 13:27:22
у меня простая версия Экселя, в ней нет кнопки "Прочитать мысли и сгенерировать файл пример"
 
или так
=МИН(99;D6)*$N$2+МИН(500;D6-99)*$N$3*(D6>=100)+(D6>=600)*(D6-599)*$N$4
Арфы - нет, возьмите бубен.
 
Цитата
Фродо написал:
если x>100 то 100* т1 +( если х 600 то (х-600) *т3
Спасибо, но проблема у меня именно в условиях "ЕСЛИ":
Пример
Нужно подсчитать чисто 1000.
В одной строке нужно прописать примерно такой подсчет:
Расбить значение (1000) на три составляющих и просумировать:
0-100х0.57 -> 100-600x0.99 -> 600-(до конца числа - 1000)х1.56.
И просуммировать каждое полученное значение:
57+495+624=1176,00.
 
WTF,

х=1000

если х >0 то (
 если х <100 то х*т1 (

  если 100<x<600 то 100* т1 +(х-100)*т2(

 если х>600 то 100* т1+500*т2 +(х-600) *т3  )
Цитата
Результат  100 *т1 +500*т2 +(х-600)*т3


можете тупа на листке попробовать ручкой решить

это логика понимая её вы формулу сами нарисуете
Изменено: Фродо - 24.03.2016 13:17:04
у меня простая версия Экселя, в ней нет кнопки "Прочитать мысли и сгенерировать файл пример"
 
Цитата
Фродо написал:
можете тупа на листке попробовать ручкой решить
Я так и сделал и примерно так и написал, но в каком-то моменте допустил ошибку и не мог понять как правильно записать условие (всё время EXEL на меня ругался за ошибки в формуле).
Цитата
Фродо написал:
это логика понимая её вы формулу сами нарисуете
Просто я запутался и "завис" :)
Спасибо за помощь, сейчас попробую.
 
Цитата
WTF написал:  я либо плохо объяснил, либо я Вас не понял
Я Вам показал часть формулы, которая работает с таблицей.

Если 650:
100*0,57+500*0,99+50*1,56
так правильно?
 
=ОКРУГЛ(МИН(D6;100)*N2+МИН(D6-100;500)*0,99+МАКС(;D6-600)*1,56;2)
 
vikttur
на 1 слагаемом должно быть 99 - 100 в среднюю часть идёт, на последнем слагаемом должно быть 51, т.к. 600 уже в верхнюю часть идёт  :) Это если я правильно условия автора понял.
Изменено: Udik - 24.03.2016 13:23:05
Арфы - нет, возьмите бубен.
 
=ЕСЛИ(D6>0;ЕСЛИ(D6<100;D6*$N$2;ЕСЛИ(D6<600;100*$N$2+(D6-100)*$N$3;100*$N$2+500*$N$3+(D6-600)*$N$4)))
у меня простая версия Экселя, в ней нет кнопки "Прочитать мысли и сгенерировать файл пример"
 
Код
=ЕСЛИ(D6>600;(100*0,57+500*0,99+(D6-600)*1,56);ЕСЛИ(И(D6<600;D6>100);(100*0,57+(D6-100)*0,99);D6*0,57))
как то так
 
Дим, ну константы-то можно посчитать один раз. И не вычислять одну и ту же цифру в формуле. У меня в макросе это выглядит так:
Код
                    Select Case d
                    Case 0
                        Exit Sub
                    Case Is > 600
                        c.Offset(2, 2).Value = 246.12 + (d - 600) * [b17]
                    Case Is > 100
                        c.Offset(2, 2).Value = 25.62 + (d - 100) * [B16]
                    Case Else
                        c.Offset(2, 2).Value = d * [B15]
                    End Select

в блоке[b5:b17] расценки в зависимости от объема.
Я сам - дурнее всякого примера! ...
 
Цитата
vikttur, =ОКРУГЛ(МИН(D6;100)*N2+МИН(D6-100;500)*0,99+МАКС(;D6-600)*1,56;2)
Не хватает проверок  например х<100
Изменено: Фродо - 24.03.2016 14:06:49
у меня простая версия Экселя, в ней нет кнопки "Прочитать мысли и сгенерировать файл пример"
 
Цитата
Фродо написал:
=ЕСЛИ(D6>0;ЕСЛИ(D6<100;D6*$N$2;ЕСЛИ(D6<600;100*$N$2+(D6-100)*$N$3;100*$N$2+500*$N$3+(D6-600)*$N$4)))
Спасибо Вам большое, как раз то - что нужно.
 
=ВЫБОР(1+(D6>100)+(D6>500);D6*N2;100*N2+(D6-100)*0,99;100*N2+500*0,99+(D6-600)*1,56)
 
Цитата
Фродо написал: Не хватает проверок  например х<100
А это что?
МИН(D6;100)*N2
Но для центрального - да, нужно проверку на минус добавить:
=ОКРУГЛ(МИН(D6;100)*N2+МАКС(;МИН(D6-100;500))*0,99+МАКС(;D6-600)*1,56;2)
 
=ЕСЛИ(A1>600;(100*0,57)+(500*0,99)+(A1-600)*1,56;ЕСЛИ(A1<=600;(100*0,57)+(A1-100)*0,99))

Ячейку А1 замените на ту где будет количество употребленной электроэнергии
 
Цитата
vikttur написал:
МИН(D6-100;500)*0,99
при х<100 этот кусок выдает отрицательное значение
у меня простая версия Экселя, в ней нет кнопки "Прочитать мысли и сгенерировать файл пример"
 
Прошу прощения. Написать - написал, но не ту формулу вставил. Формулу в сообщении №18 исправил.
 
Всем большое спасибо за помощь и за оперативность :)! Всё получилось.
 
Цитата
kuklp написал: Дим, ну константы-то можно посчитать один раз
это я для наглядности)
 
Конечно, прошло много времени с последнего сообщения в этой ветке.
Но вопрос трехдиапазонного тарифа до нас дошел только сейчас. И обсуждение здесь помогло найти несколько вариантов расчета.
Прилагаются во вложенном файле. С моими показателями пороговых значений и цены.
Один из вариантов, взятый из обсуждения, тот где "=ОКРУГЛ(МИН..." не работает при попадании в первый диапазон, или я не понял формулу.
Плюс мой вариант с условиями, может кому и пригодится.  
Страницы: 1
Читают тему
Наверх