엑셀기초9. 엑셀로 랜덤 쿠폰번호 생성 (엑셀 함수 응용)
1. 엑셀로 랜덤 쿠폰번호 생성방법
엑셀에서 0~9라는 숫자 중 랜덤하게 하나의 값을 출력할 때는 =RANDBETWEEN(0,9)라는 함수를 사용하여, 자동으로 출력시킬 수 있습니다. 또한 A~Z의 알파벳 중에 랜덤하게 하나의 값을 출력할 때는 =CHAR(RANDBETWEEN(65,90))이라는 함수를 사용하여 자동으로 출력시킬 수 있습니다.
2. 랜덤 쿠폰번호 생성 활용방법
위 공식을 사용하면 n 자리수의 랜덤 번호를 생성할 때 유용하게 사용할 수 있습니다. 하지만 위 공식은 생성된 번호 간의 중복값 확인이 안 되므로, 번호를 생성한 뒤 '중복값 제거' 기능을 통해 중복값을 반드시 제거해줘야 합니다.
위 공식은 숫자와 알파벳 중 하나를 무작위로 반환하며, 만약 0~9 사이의 숫자 또는 A~Z 사이의 알파벳 중 하나만 무작위로 반환해야 할 경우 아래 공식으로 간단하게 해결할 수도 있습니다.
하기 함수를 사용하면 영어,숫자 조합의 4자리 수 랜덤 번호가 출력됩니다.
↓ 출력 결과 : 영어,숫자조합 랜덤 4자리수
=CHAR(INT(IF(ROUND(RAND(),0),65+RAND()*25,48+RAND()*9)))&CHAR(INT(IF(ROUND(RAND(),0),65+RAND()*25,48+RAND()*9)))&CHAR(INT(IF(ROUND(RAND(),0),65+RAND()*25,48+RAND()*9)))&CHAR(INT(IF(ROUND(RAND(),0),65+RAND()*25,48+RAND()*9)))
또한, 하기 함수를 사용하면 영어,숫자조합의 12자리 수 랜덤 번호가 출력됩니다.
↓ 출력 결과 : 영어,숫자조합 랜덤 12자리수
=CHAR(INT(IF(ROUND(RAND(),0),65+RAND()*25,48+RAND()*9)))&CHAR(INT(IF(ROUND(RAND(),0),65+RAND()*25,48+RAND()*9)))&CHAR(INT(IF(ROUND(RAND(),0),65+RAND()*25,48+RAND()*9)))&CHAR(INT(IF(ROUND(RAND(),0),65+RAND()*25,48+RAND()*9)))&"-"&CHAR(INT(IF(ROUND(RAND(),0),65+RAND()*25,48+RAND()*9)))&CHAR(INT(IF(ROUND(RAND(),0),65+RAND()*25,48+RAND()*9)))&CHAR(INT(IF(ROUND(RAND(),0),65+RAND()*25,48+RAND()*9)))&CHAR(INT(IF(ROUND(RAND(),0),65+RAND()*25,48+RAND()*9)))&"-"&CHAR(INT(IF(ROUND(RAND(),0),65+RAND()*25,48+RAND()*9)))&CHAR(INT(IF(ROUND(RAND(),0),65+RAND()*25,48+RAND()*9)))&CHAR(INT(IF(ROUND(RAND(),0),65+RAND()*25,48+RAND()*9)))&CHAR(INT(IF(ROUND(RAND(),0),65+RAND()*25,48+RAND()*9)))
3. 상기 사용 함수의 동작원리
① RAND() 함수는 0~1 사이의 소수를 무작위로 반환합니다.
=RAND()
=0.149, 0.21293, 0.4924 등...
② ROUND(RAND(),0) 는 RAND()로 나온 결과값이 0.5 이상일 경우 1을, 0.5 미만일경우 0을 반환합니다.
=ROUND(0.572,0)
=1
③ A+RAND()*B 는 A와 B사이의 숫자를 무작위로 반환합니다. RANDBETWEEN(A,B) 와 동일한 결과값을 반환합니다.
=65+RAND()*25
=65+(0.4924)*25
=65+12.31
=77.31
④ IF 함수로 ROUND(RAND(),0) 의 값이 1일 경우 65~95 사이의 숫자를, 값이 0일 경우 48~57 사이의 숫자를 반환합니다.
=IF(ROUND(RAND(),0),65+RAND()*25,48+RAND()*9) =IF(1,65+RAND()*25,48+RAND()*9) =IF(1,77.31,52.43)
=77.31
⑤INT 함수는 숫자의 소수점을 내림한 정수를 반환합니다.
=INT(77.31)
=77
⑥CHAR 함수는 입력한 숫자코드에 해당하는 알파벳, 기호 또는 숫자를 반환합니다.
=CHAR(77)
="M" 'CHAR(48~57)은 0~9 사이의 숫자이며, CHAR(65~95)는 A~Z 사이의 알파벳입니다.