VBA Excel. Функция для вычисления факториала

Вычисление факториала натуральных (неотрицательных целых) чисел с помощью пользовательской функции Factorial. Ограничение для VBA Excel по типу данных.

Вычисление факториала

Факториал – это функция, определяемая для натурального числа n как произведение всех неотрицательных целых чисел от 1 до n включительно.

Формула, по которой вычисляется факториал, записывается следующим образом:

n! = 1 · 2 · ... · n

Пример: 3! = 1 · 2 · 3 = 6

В соответствии с формулой факториала, будет верным следующее соотношение:

(n-1)! = n! : n

Если принять для этого равенства n = 1, тогда получим:

0! = 1

Функция Factorial

Для вычисления факториала натуральных чисел можно использовать следующую пользовательскую функцию:

Первое условие функции Factorial (If Not IsNumeric(n) Or n = Empty) проверяет, не является ли значение ячейки не числом. Второе условие (ElseIf n < 0) проверяет, не является ли число в ячейке отрицательным.

Если значение ячейки окажется не числом или числом отрицательным, функция возвратит соответствующее сообщение и завершит работу (Exit Function).

Далее, если функция Factorial не завершила работу, переменной p присваивается значение 1, которое возвратит функция, если значение переменной n будет равно нулю или единице.

Значение ячейки (переменная n) округляется до целого и, если оно окажется больше единицы, вычисляется факториал с помощью цикла For… Next.

Пользовательская функция Factorial возвратит значение, присвоенное ей из переменной p.

Ограничение по типу данных

Максимальное значение пользовательской функции Factorial будет ограничено максимальным значением типа данных Double (1,79769313486232Е+308).

Максимально возможное значение будет превышено при вычислении факториала при n > 170. В этом случае, в ячейку с функцией Factorial, Excel возвратит сообщение об ошибке: #ЗНАЧ!.

При желании, можно в код функции Factorial добавить еще одно условие, проверяющее, не содержит ли переменная n значение больше 170. Если n > 170, тогда вывод сообщения об этом и выход из функции.

Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

Добавить комментарий

Ваш комментарий будет опубликован после прохождения обязательной модерации. Исходящие ссылки не допускаются. Время модерации составит от нескольких минут до нескольких часов в зависимости от времени суток и занятости модератора. При добавлении в комментарий кода VBA Excel, вставьте перед его началом тег <pre> и по окончании кода </pre>.