• 최초 작성일: 2007-10-23
  • 최종 수정일: 2026-09-24
  • 조회수: 21 회
  • 작성자: 권현욱 (엑셀러)
  • 강의 제목: RAND와 RANDBETWEEN 함수 응용

들어가기 전에

오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.

실로 오래간만에 강좌를 재개하게 되는군요. 그동안 열심히 놀기만 한 것은 아니고… 나름대로 바쁘게 지냈습니다. 어떤 일들을 하며 보냈는지는… 차차 아시게 됩니다. ^^;

오랫동안 놀다가 갑자기 복잡한 것을 하면 손님 다 떨어져 나갈 것이므로 이번 시간에는 아주 재미있는 것을 하나 살펴보도록 하겠습니다.

우리가 사용하는 함수는 적어도 하나 이상의 인수를 갖는 것이 보통입니다. 그런데 Rand 라는 함수는 0개의 인수, 즉 인수를 가지지 않으며 0과 1 사이의 난수(Random Number)를 발생시킵니다. 이것은 컴퓨터 프로그래밍에 있어서 매우 중요한 의미를 갖습니다.

아래 그림을 보면 0부터 99사이의 숫자가 표시되어 있으며, 2회 이상 중복된 숫자에 대해서는 빨간색으로 표시되어 있습니다. 여기서 랜덤한 숫자는 어떻게 생성한 것일까요?

RAND 함수로 생성한 0~100 사이의 난수 표 - 2회 이상 중복된 숫자가 빨간색으로 표시됨
아이엑셀러

짐작하시는 것처럼, Rand 함수를 사용하여 만들어 낸 것입니다. (중복되는 숫자에 빨간색을 입힌 것은 '조건부 서식' 기능을 이용한 것입니다)

{=INT(RAND()*100)}

Int 함수를 이용하여 소수점 이하는 잘라내고 100을 곱하여 0~99 사이의 자연수를 만들어 낸 것입니다(수식 입력 후 Ctrl+Shift+Enter 키를 함께 눌러 배열 수식으로 입력하였습니다).

Workplace 시트로 가서 <F9> 키를 마구 눌러보세요. 키를 누를 때마다 숫자가 업데이트 되고, 동시에 숫자 옆에 있는 테이블의 얄궂은 문자도 연동이 되어 변함을 알 수 있습니다.

F9를 누를 때마다 숫자와 함께 연동되어 바뀌는 회색 문자 테이블 - Wingdings 글꼴로 표시됨
아이엑셀러
권현욱(엑셀러)
저자: 권현욱(엑셀러), 아이엑셀러 대표

필자는 Excel 컨설턴트, 작가, 그리고 크리에이터입니다. 현재 Microsoft Excel MVP이며, 『챗GPT+엑셀 업무자동화 정석』을 비롯한 10여 권의 도서를 집필했습니다. Excel 자동화 및 생산성 향상 분야에서 25년 넘는 경력을 보유하고 있습니다.

권현욱(엑셀러) 님의 최신 포스트:
  • 최신 글을 불러오는 중...


26년 경력 Microsoft MVP 권현욱(엑셀러) 지음

📊 신간 전자책(PDF) · 287쪽 · 13500원

엑셀 대시보드를 만드는 최적의 '표준 3계층 구조'

  • 3초 안에 읽히는 화면 설계 감각 습득
  • Microsoft Excel MVP의 실전 노하우 수록
  • 중간마진 없는 합리적인 가격, 오직 아이엑셀러에서만!
지금 구매하기 완성 화면 보기

RAND와 RANDBETWEEN 함수 응용

핵심 요약: RAND·RANDBETWEEN을 CHAR와 조합해 난수·무작위 문자 만들기

{{=INT(RAND()*100)}}로 0~99 난수 표를 만들거나, RANDBETWEEN + CODE + CHAR를 조합해 F9를 누를 때마다 바뀌는 무작위 알파벳을 만들 수 있습니다.

  • 난수 표: {=INT(RAND()*100)} — 0~99 사이 정수 난수(배열 수식)
  • 패턴 표시: {=CHAR(범위)} + Wingdings 글꼴로 그림 문자화
  • 무작위 알파벳: =CHAR(RANDBETWEEN(CODE("A"),CODE("Z")))

개요

회색 테이블에는 다음과 같은 배열 수식이 들어 있습니다.

{=CHAR(B2:K11)}

수식 입력 후 Ctrl+Shift+Enter 키를 함께 눌러 마무리 한 다음, 글꼴을 Wingdings체로 지정해 주면 위와 같이 재미있는 모양이 나오게 되는 것입니다.

이런 것은 어떤데 써 먹으면 좋을까요?

암호를 입력할 때 입력받는 문자를 감추고자 할 때 사용할 수도 있겠고, 엑셀로 점치는 프로그램을 만들 때에도 응용할 수 있겠고, 잠 잘 시간이 다가오니까 응용력의 한계를 느낍니다. 어디에 써 먹을 것인지는 여러분의 상상력과 응용력에 맡깁니다.

Rand와 비스무리한 함수로 RandBetween 이라는 함수가 있습니다.

사용 형식
RANDBETWEEN(bottom, top)

함수의 사용 형식은 위와 같으며, bottom과 top 사이의 난수를 구해줍니다. bottom은 구하고자 하는 가장 작은 정수, top은 큰 정수를 의미합니다. (단, '#NAME?' 오류가 발생되는 경우에는 분석 도구 추가 기능을 설치해야 하며 이 과정에서 설치 CD가 필요할 수 있습니다)

만약 <F9> 키를 누를 때마다(정확하게는 어떤 이벤트가 발생할 때마다) A~Z 사이의 알파벳이 자동으로 나타나도록 하려면 어떻게 해야 할까요?

RANDBETWEEN과 CHAR 함수로 F9를 누를 때마다 A~Z 사이 알파벳이 무작위로 채워지는 표
아이엑셀러

Workplace 시트의 B24 셀에 다음과 같은 답이 들어 있습니다.

=CHAR(RANDBETWEEN(CODE("A"),CODE("Z")))

Code는 문자의 코드 번호를 알려주는 함수입니다. 따라서 Randbetween, Char 함수를 조합하여 위와 같이 해주면 A에서부터 Z 사이의 알파벳을 돌려주게 되는 것입니다.

만약 A에 해당되는 코드가 65, Z는 90이라는 것을 알고 있다면,

=CHAR(RANDBETWEEN(65,90))

이렇게 표현할 수도 있겠습니다.

다음 시간에…

정리 — RAND·RANDBETWEEN 함수 활용 정리

목적 수식
0~99 난수 표 {=INT(RAND()*100)} (배열 수식)
난수를 그림 문자로 표시 {=CHAR(B2:K11)} + Wingdings 글꼴
A~Z 무작위 알파벳 =CHAR(RANDBETWEEN(CODE("A"),CODE("Z")))
코드값을 직접 쓴 버전 =CHAR(RANDBETWEEN(65,90))

자주 묻는 질문 (FAQ)

Q1. RAND 함수는 다른 함수와 무엇이 다른가요?

대부분의 함수는 인수가 하나 이상 필요하지만, RAND()는 인수가 전혀 없이 0과 1 사이의 난수를 반환합니다. 여기에 정수 배율을 곱하고 INT로 소수점을 잘라내면 원하는 범위의 정수 난수를 만들 수 있습니다.

Q2. RANDBETWEEN 함수를 쓸 때 '#NAME?' 오류가 나면 어떻게 하나요?

예전 버전 엑셀에서는 RANDBETWEEN이 '분석 도구' 추가 기능에 포함되어 있어, 이 추가 기능이 설치되어 있지 않으면 '#NAME?' 오류가 발생합니다. 분석 도구 추가 기능을 설치하면 해결되며, 설치 과정에서 오피스 설치 CD가 필요할 수 있습니다.

Q3. F9를 누를 때마다 A~Z 사이의 알파벳이 무작위로 나오게 하려면 어떻게 하나요?

=CHAR(RANDBETWEEN(CODE("A"),CODE("Z")))처럼 CODE로 A와 Z의 문자 코드를 구하고, 그 사이의 난수를 RANDBETWEEN으로 뽑은 뒤 CHAR로 다시 문자로 바꾸면 됩니다. A와 Z의 코드가 각각 65, 90이라는 것을 알고 있다면 =CHAR(RANDBETWEEN(65,90))처럼 숫자를 직접 써도 됩니다.

마치며

VBA에 대한 기초 지식을 공부하실 분은 아이엑셀러 닷컴 사이트 상단 메뉴에서 [Excel 강의] - [Excel 입문]을 먼저 보시면 이해하기 쉽습니다.