엑셀 FACT
n! = n × (n-1) × ... × 1 — 조합·순열·경우의 수의 기초, 0!은 1
FACT 수식 구조
숫자 (number)
팩토리얼을 계산할 음이 아닌 정수. 소수는 정수부만 사용, 음수는 #NUM! 오류
FACT(5) = 5 × 4 × 3 × 2 × 1 = 120. 약속에 따라 FACT(0) = 1로 정의되며, 이는 조합 공식 nCr = n!/(r!·(n-r)!)이 r=0 또는 r=n에서도 깨지지 않도록 하기 위함입니다.직접 체험해보세요
슬라이더를 움직이면 곱셈 분해와 폭증 막대가 동시에 바뀝니다. n이 1씩 늘 때마다 결과가 얼마나 빠르게 커지는지 확인하세요
5! 곱셈 분해
팩토리얼 폭증 (n=0~12)
로그 스케일
12! = 479,001,600 — 1씩만 늘어도 결과가 폭증합니다
팩토리얼을 쓰는 가장 흔한 곳 — 조합·순열
5명 줄세우기 (5!)
120
가지 수
5명 중 2명 뽑기
10
5C2 = 5!/(2!·3!)
실전 활용 예제
=FACT(A2)가장 기본 — n! 직접 계산. 시뮬레이션 가짓수, 줄세우기 경우의 수 등 가장 단순한 사용.
=FACT(n)/(FACT(r)*FACT(n-r))조합 nCr — n명 중 순서 없이 r명 뽑기. COMBIN 함수와 동일하지만 공식을 직접 쓰면 원리가 명확. 로또 등 추첨 계산의 기본.
=FACT(n)/FACT(n-r)순열 nPr — n명 중 순서 있게 r명 뽑기. PERMUT 함수와 동일. 1·2·3등 시상에서 순서가 중요할 때.
=FACT(A2)/POWER(A2, A2)확률 응용 — 1년 365일 중 n명이 모두 다른 생일일 확률 계산의 일부. 큰 수에서 FACT가 어떻게 폭증하는지 체감.
다른 엑셀 함수도 알아보세요
왜 0!은 1인가 — 수학적 약속의 정당성
▼
"아무것도 곱하지 않았는데 왜 1?" — 가장 자주 묻는 질문입니다. 답은 조합 공식의 일관성을 위한 약속입니다.
5! = 5 × 4! → 4! = 5!/5 = 24
4! = 4 × 3! → 3! = 4!/4 = 6
3! = 3 × 2! → 2! = 3!/3 = 2
2! = 2 × 1! → 1! = 2!/2 = 1
1! = 1 × 0! → 0! = 1!/1 = 1 ✓
또한 조합 공식 nCr = n!/(r!·(n-r)!)에서 r=0이면 nC0 = n!/(0!·n!) = 1/0!이 됩니다. "n개 중 0개 뽑는 방법"은 당연히 1가지(=아무것도 안 뽑기)이므로 0! = 1이어야 식이 깨지지 않습니다.
빈 곱(empty product)의 항등원이 1이라는 수학 관습과도 일치합니다. 빈 합의 항등원이 0인 것과 같은 이치입니다.
FACT vs COMBIN vs PERMUT — 언제 무엇을
▼
팩토리얼은 조합·순열을 직접 만드는 빌딩 블록이지만, 엑셀에는 더 안전한 전용 함수가 있습니다. 큰 n에서 중간 결과가 폭주하지 않도록 내부적으로 최적화되어 있죠.
| 함수 | 의미 | 예: 5명 중 3명 |
|---|---|---|
| FACT(n) | n명 줄세우기 | FACT(5)=120 |
| COMBIN(n,r) | 순서 X | COMBIN(5,3)=10 |
| PERMUT(n,r) | 순서 O | PERMUT(5,3)=60 |
판단 기준: "순서가 의미 있나?"가 핵심입니다. 1·2·3등 시상이면 PERMUT, 단순히 "팀 멤버 뽑기"면 COMBIN. 줄세우기·암호 자릿수처럼 모든 자리가 의미 있으면 FACT.
FACT의 함정 — 170!에서 오버플로
▼
팩토리얼은 가장 빨리 폭증하는 함수 중 하나입니다. 엑셀의 숫자 표현 한계(약 10^308)에 매우 빨리 도달합니다.
FACT(170) ≈ 7.26 × 10^306 (OK)
FACT(171) → #NUM! 오류 (한계 초과)
조합·순열 계산에서 큰 n을 다룰 때 중간 계산이 폭주하지 않도록 약분을 활용해야 합니다. FACT(45)/(FACT(6)·FACT(39))는 분자·분모가 모두 거대해도 엑셀이 그 계산을 직접 처리합니다. 가능하면 전용 함수 COMBIN / PERMUT를 쓰는 게 안전합니다.
매우 큰 팩토리얼이 필요하면 FACTDOUBLE이나 GAMMALN(로그 감마) 같은 함수로 우회하는 방법도 있습니다.
자주 묻는 질문 (FAQ)
▼
Q. FACT(4.7) 같은 소수를 넣으면?
소수부는 무시되고 정수부만 계산됩니다. FACT(4.7) = FACT(4) = 24. 의도와 다를 수 있으니 INT / ROUND로 미리 정수화하는 게 좋습니다. 실수 팩토리얼(감마 함수)을 원하면 GAMMA(n+1)을 사용하세요.
Q. 음수에 FACT를 쓰면?
#NUM! 오류. 팩토리얼은 음이 아닌 정수에만 정의됩니다. 음수 입력 가능성이 있으면 =IF(A2>=0, FACT(A2), 0)처럼 가드를 두세요.
Q. FACTDOUBLE이라는 함수도 있던데?
이중 팩토리얼입니다 — 한 칸 건너뛰며 곱합니다. FACTDOUBLE(7) = 7×5×3×1 = 105, FACTDOUBLE(6) = 6×4×2 = 48. 일반 통계에선 거의 안 쓰이고 특수 수학·물리 공식에 등장합니다.
Q. n이 약 몇까지가 한계인가요?
엑셀 부동소수점 한계 기준 FACT(170)까지 계산 가능합니다. 171부터는 #NUM! 오류. 보통의 비즈니스 문제에서는 한참 못 미치는 범위이므로 거의 만날 일은 없지만, 확률·시뮬레이션에서 큰 n을 다룬다면 COMBIN/PERMUT를 쓰거나 로그 변환을 고려하세요.