Страницы: 1
RSS
Как остаток от деления округлить до целого в большую сторону?
 
Как обычно, уже голова не варит, кто посвежее, подскажите как рассчитать на VBA такой случай:
есть числа, и есть определённый лимит, скажем, 1руб. за каждые 500. Лучше наглядно:
488 = 1р. (потому что лимит до 500, а 500 это 1р.)
728 = 2р. (потому что первые 500 = 1р., и 278, это уже вторые 500, тоже = 1р.)
10 = 1р.
1520 = 4р. (тут 3 по 500 и 20 уже входит в новые 500)

ну и т.д.
уже нагородил формул всяких, кошмар. Попроще есть идеи?
Думал, чтото насчёт:
Код
a = Round(myval / 500)
If Not myval mod 500 = 0 then
   a = a + 1
End if
 
Жирный Тони,Воспользуйтесь WorksheetFunction.RoundUp(a / 500 , 0)
 
Может так ?
Код
Sub abcd_wxyz()
    Range("A1").Value = 1520
    Range("B1").FormulaR1C1 = "=CEILING(RC[-1],500)/500"
    Range("C1").Value = Application.Ceiling(Range("A1").Value, 500) / 500
End Sub
 
Александр П., спасибо.
WorksheetFunction.RoundUp(a / 500 , 0) не подходит, на значении 10 выдаёт ноль.

ocet p, отдельное спасибо за Ceiling, даже не знал про такую. Работает.
 
Цитата
Жирный Тони написал:
Не подходит. На значении 10 выдаёт ноль.
странно, у меня 1 выдало
Изменено: V - 04.03.2019 11:17:19
 
Ааа, я тормоз, RoundUP, а я просто Round записал. Тысячу извинений.
 
Код
a = -int(-myval / 500)
Страницы: 1
Наверх