오빠두엑셀 `2026 무료 챌린지` 오픈! 완주하고 수료증 받아가세요! 5년 연속 IT분야 베스트셀러! 「 진짜쓰는 실무엑셀 」로 2026년 공부 끝내기 엑셀이 막히셨나요? Q&A 게시판에서 바로 해결하세요.
메뉴

엑셀 두 숫자사이 값 중복없이 랜덤 생성 :: 액셀함수공식

두 숫자를 지정하여 두 수 사이에 있는 값을 중복없이 랜덤으로 생성하는 공식의 사용법 및 동작원리를 알아봅니다.

작성자 :
오빠두엑셀
최종 수정일 : 2022. 02. 06. 18:27
URL 복사
메모 남기기 : (13)

엑셀 두 숫자 사이 값 중복없이 랜덤 생성 공식

엑셀 두 숫자사이 값 중복없이 랜덤 생성 목차 바로가기
함수 공식
  1. 세로방향으로 생성 할 경우
    { =LARGE(ROW(INDIRECT($시작값&":"&$종료값))*NOT(COUNTIF($시작범위윗셀:시작범위윗셀, ROW(INDIRECT($시작값&":"&$종료값)))), RANDBETWEEN(1,$종료값-$시작값+2-ROWS($시작범위윗셀:시작범위윗셀))) }
  2. 가로방향으로 생성 할 경우
    { =LARGE(ROW(INDIRECT($시작값&":"&$종료값))*NOT(COUNTIF($시작범위좌측셀:시작범위좌측셀, ROW(INDIRECT($시작값&":"&$종료값)))), RANDBETWEEN(1,$종료값-$시작값+2-COLUMNS($시작범위좌측셀:시작범위좌측셀))) }

본 공식은 배열수식이므로 MS365 버전 사용자가 아닐 경우 Ctrl + Shift + Enter 로 수식을 입력합니다.

인수 설명
두 숫자 사이 값 중복없이 출력 인수 예제
두 숫자 사이값을 중복없이 불러오는 공식에 사용된 인수
인수 설명
$시작값 중복 없이 랜덤으로 생성할 숫자의 시작 값(최소값) 입니다. 다른 셀을 참조할 경우 반드시 절대참조로 입력하는 것에 주의합니다. 셀 참조 대신 숫자를 바로 입력할 수도 있습니다.
$종료값 중복 없이 랜덤으로 생성할 숫자의 마지막 값(최대값) 입니다. 다른 셀을 참조할 경우 반드시 절대참조로 입력하는 것에 주의합니다. 셀 참조 대신 숫자를 바로 입력할 수도 있습니다.
$시작범위윗셀:시작범위윗셀
$시작범위좌측셀:시작범위좌측셀
숫자를 생성할 범위를 기준으로, 범위가 시작되는 셀의 위쪽 또는 왼쪽 셀 주소입니다. 범위형태로 입력하며 범위의 시작셀은 반드시 절대참조로 입력하는 것에 주의합니다.

예를들어, A2:A10 범위에 세로방향으로 숫자를 생성할 경우, [ $A1:A1 ] 으로 입력합니다.


예제파일 다운로드

오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.

  • [엑셀공식] 두 숫자 사이 값 중복없이 랜덤 생성
    예제파일

호환성
운영체제 호환성
Windows 버전 모든 엑셀 버전에서 사용 가능합니다.
Mac 버전 모든 엑셀 버전에서 사용 가능합니다.
사용된 기초 함수

엑셀 두 수 사이 값 중복없이 랜덤 생성 공식 알아보기

공식 설명

두 숫자를 지정하여 두 수 사이에 있는 값을 중복없이 랜덤으로 생성하는 공식입니다. 기본적으로 두 '정수' 사이의 값을 랜덤으로 생성할 수 있으며, 공식의 첫번째 값인 ROW 함수를 조금만 변경하면 소숫점자리의 숫자도 생성가능합니다. 공식은 아래와 같습니다.

=LARGE((ROW(INDIRECT($시작값&":"&$종료값)))/10*NOT(COUNTIF($시작범위윗셀:시작범위윗셀, ROW(INDIRECT($시작값&":"&$종료값)))), RANDBETWEEN(1,$종료값-$시작값+2-ROWS($시작범위윗셀:시작범위윗셀)))
'$시작값과 $종료값이 각 1과 10일 경우, 0.1~1 사이의 값을 랜덤으로 생성합니다.

해당수식은 배열수식이므로 MS 365 사용자가 아닐 경우, 반드시 Ctrl + Shift + Enter 로 수식을 입력해야 하는 것에 주의합니다.

공식의 동작원리
  1. ROW 함수의 인수로 범위를 입력하면, 범위의 행 번호(숫자)가 배열로 반환됩니다.
    =ROW(INDIRECT($시작값&":"&$종료값))
    =ROW(INDIRECT($1&":"&$10))
    =ROW(INDIRECT($1:$10))
    ={1,2,3,4,5,6,7,8,9,10}
  2. COUNTIF 함수와 확장범위($셀:셀)을 사용하여 범위에 중복되는 값이 있는지 여부를 확인합니다. 기준셀 이전에 중복되는 값이 있을 경우 COUNTIF 함수는 0보다 큰 수를 반환합니다.
    =COUNTIF($시작범위윗셀:시작범위윗셀, ROW(INDIRECT($시작값&":"&$종료값)))
    =COUNTIF($A1:A1,ROW($1:$10))
    =COUNTIF($A1:A1,{1,2,3,4,5,6,7,8,9,10})
    =COUNTIF({머릿글},{1,2,3,4,5,6,7,8,9,10})
    ={0,0,0,0,0,0,0,0,0,0}   'A1셀에는 중복되는 값이 없으므로 모두 0을 반환합니다.
    '셀이 아래로 한칸 자동채우기 되었고, 윗셀에 값으로 4가 반환되었다고 가정하면 공식은 아래와 같이 동작합니다.
    =COUNTIF($A1:A2,{1,2,3,4,5,6,7,8,9,10})
    =COUNTIF({머릿글,4},{1,2,3,4,5,6,7,8,9,10})
    ={0,0,0,1,0,0,0,0,0,0}  ' 범위에 4가 있으므로 네번째 값이 1로 반환됩니다.
  3. NOT 함수를 사용하여 1은 FALSE로, 0은 TRUE로 변환합니다.
    =NOT(COUNTIF($시작범위윗셀:시작범위윗셀, ROW(INDIRECT($시작값&":"&$종료값)))
    =NOT({0,0,0,1,0,0,0,0,0,0})
    ={TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE}
  4. 1번에서 구한 숫자범위와 NOT 함수로 계산된 논리값을 곱하면 중복값을 제외한 값만 반환됩니다.
    ={1,2,3,4,5,6,7,8,9,10}*{TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE}
    ={1,2,3,0,5,6,7,8,9,10}
  5. RANDBETWEEN 함수로 두 정수 사이의 값을 랜덤으로 생성합니다.
    =RANDBETWEEN(1,$종료값-$시작값+2-ROWS($시작범위윗셀:시작범위윗셀))
    =RANDBETWEEN(1,10-1+2-ROWS($A1:A1))
    =RANDBETWEEN(1,10-1+2-1)
    =RANDBETWEEN(1,10)  ' 1과 10 사이의 정수를 랜덤으로 생성합니다.
    ' 셀이 아래로 한칸 자동채우기 될 경우, 공식은 아래와 같이 동작합니다.
    =RANDBETWEEN(1,10-1+2-ROWS($A1:A2))
    =RANDBETWEEN(1,10-1+2-2)
    =RANDBETWEEN(1,9)  ' 1과 9사이의 정수를 랜덤으로 생성합니다.
  6. 최종적으로 LARGE 함수를 사용하여 두 사이의 값을 중복없이 랜덤으로 생성합니다.
    '두번째 값을 생성하는 것을 예제로 알아봅니다.
    =LARGE(ROW(INDIRECT($시작값&":"&$종료값))*NOT(COUNTIF($시작범위윗셀:시작범위윗셀, ROW(INDIRECT($시작값&":"&$종료값)))), RANDBETWEEN(1,$종료값-$시작값+2-ROWS($시작범위윗셀:시작범위윗셀)))
    =LARGE({1,2,3,0,5,6,7,8,9,10},RANDBETWEEN(1,9))  ' 범위 내 n번째로 큰 수를 랜덤으로 추출합니다.
    =LARGE({1,2,3,0,5,6,7,8,9,10},{4}) ' RANDBETWEEN 함수로 4가 반환되었고, 범위내에서 4번째로 큰 수를 추출합니다.
    =7  ' 7이 반환됩니다.
댓글 13
5 (8개 평가)
칼마르텔
칼마르텔 2020.06.22 20:12
로또번호 추출 공식 감사합니다ㅋㅋㅋㅋ
일등되게 해주세요~.~헤헤
김지영
김지영 2021.01.26 21:50
좋은 정보 감사합니다!
숫자 0이 나오는 경우는 어떻게 하나요?? 분명 시작값을 1로 했는데 숫자 0이 나옵니다. 칸의 갯수도 범위 값보다 작은데 어떻게 해야하나요?
오빠두엑셀
오빠두엑셀 작성자 2021.01.30 11:00
안녕하세요. 공식을 어떻게 사용하셨나요?
적어주신 댓글만으로는 정확한 답변을 드리기가 어렵습니다.
작성하신 예제 파일과 함께 Q&A 커뮤니티로 올려주시겠어요? :)
감사합니다.
감사합니다
감사합니다 2021.10.21 13:28
감사합니다. 랜덤 추첨해야 하는데 예제파일 좀 이용하겠습니다.
예제파일 이외에 따로 식 세워서 만들어보니까 자꾸 오류나서 시간 나면 무엇 때문인지 확인해봐야겠습니다.
감사합니다.
감사합니다. 2021.11.05 13:58
오류 떴었던 이유 뒤늦게 말씀드리러 왔습니다.
본 공식은 배열수식이므로 MS365 버전 사용자가 아닐 경우 Ctrl + Shift + Enter 로 수식을 입력합니다.
이걸 지키지 않아서 오류 떴었습니다. 그냥 엔터로 입력하니까 배열수식 적용이 안되는 거였습니다.
오늘 사용하다가 오류 뜨길래 뭔가 싶었더만 이거 때문이었네요.
감사합니다.
구르마
구르마 2022.02.02 11:14
가로방향으로 생성할경우 0이 나오는 경우가 있는데 무엇이 문제인가요?
오빠두엑셀
오빠두엑셀 작성자 2022.02.06 18:27
구르마님 안녕하세요.
공식이 잘못 작성되어 있었습니다. 죄송합니다.
수식을 아래로 다시 작성 후 사용해보시겠어요?
{ =LARGE(ROW(INDIRECT($시작값&":"&$종료값))*NOT(COUNTIF($시작범위좌측셀:시작범위좌측셀, ROW(INDIRECT($시작값&":"&$종료값)))), RANDBETWEEN(1,$종료값-$시작값+2-COLUMNS($시작범위좌측셀:시작범위좌측셀))) }
문제가 바로 해결되실겁니다..^^
김동건
김동건 2022.02.08 15:45
선생님 너무 감사합니다.
질문이 하나 있습니다. 이게 계속 클릭할때마다 랜덤으로 숫자가 바뀌는데
제가 바꾸고 싶을때만 바꾸는 방법이 있을까요?
오빠두엑셀
오빠두엑셀 작성자 2022.02.08 16:09
안녕하세요.
[파일] - [옵션] - [수식] 에서 계산 방식을 '수동'으로 바꾸신 다음,
바꾸고 싶을 때만 f9 키를 눌러보세요 :)
5프로만
5프로만 2022.08.20 01:38
좋은 강의 감사합니다.
그런데 시작값과 종료값이 매우 큰 값(수천만~수억)인 경우에는 에러가 나는데 왜그런지 설명 부탁 드립니다.
오빠두엑셀
오빠두엑셀 작성자 2022.08.20 02:47
안녕하세요.
수식이 엑셀의 행번호(최대 1,048,576)개 까지만 사용할 수 있어서 그렇습니다.^^
100만개 보다 큰 값의 무작위수는 RANDBETWEEN 함수를 사용해서 처리해보세요.
스야
스야 2024.07.17 15:54
안녕하세요, 해당 공식 활용하려는데 세로 방향 생성 공식을 써도 가로방향으로만 난수가 생성되고, 세로로 드래그 하면 원래 값이랑 똑같은 값이 들어가서 어떻게 해야 할 지 모르겠습니다 ㅠㅠ 엑셀 2010 버전이고 5700개 가량 생성하려 합니다.
+) 지금 보니 그냥 데이터가 많아서 느리게 계산되는 것 같습니다... 좋은 자료 만들어주셔서 감사합니다.
강민준🤗
강민준🤗 2024.08.11 16:58
좋은 강의 감사합니다🙇‍♂️