Формула пользовательской функции работает в одной ячейке, но не работает в другой

Я пытаюсь сохранить формулу в качестве пользовательской функции для коллеги, поскольку она продолжает появляться, когда ей это нужно. Наконец-то мне удалось заставить его работать - на одной ячейке. Но он не работает на другой ячейке.

Данные:

требуется результат 45,00 486,00

требуется результат 43,50 108,00

Формула в Excel =ROUNDUP((D16/C16)*4,0)/4

Я думаю, что в модуле VBA это

Function RoundQuantity(Amount, Rate) As Integer
   RoundQuantity = Application.RoundUp((Amount / Rate) * 4, 0) / 4
End Function

Когда я вызываю эту функцию из Excel, я использую =RoundQuantity(D16,C16), и она успешно округляет от 10,48 до 11,00, но округляет 2,48 до 2,00.

Просто чтобы объяснить функцию, я пытаюсь округлить количество (первый столбец) до ближайшего квартала.

Пожалуйста помоги?


person user3216628    schedule 20.01.2014    source источник
comment
Что именно означает nearest quarter? На ближайшую четверть единицы? Потому что если это так, то разве 10.48 не будет округлено до 10.5?   -  person NullDev    schedule 21.01.2014
comment
Разве функция рабочего листа CEILING не будет работать так же легко? =CEILING(D16/C16,0.25)   -  person barry houdini    schedule 21.01.2014


Ответы (1)


Хотя я не совсем понимаю термин nearest quarter, причина, по которой вы вычисляете значение 2.00, проста — ваша функция возвращает целое число. Просто измените Function RoundQuantity(Amount, Rate) As Integer на Function RoundQuantity(Amount, Rate), и он должен вернуть 2.50, при условии, что он также правильно отформатирован.

Смотрите мой скриншот ниже:

введите здесь описание изображения

Дайте нам знать, если это поможет.

person NullDev    schedule 20.01.2014
comment
Это решило мою проблему. Благодарю вас! - person user3216628; 21.01.2014
comment
@ user3216628: Пожалуйста, примите ответ, если он вам помог. Помните о правилах SO. Добро пожаловать и удачи. - person NullDev; 21.01.2014