엑셀에서 두 날짜 사이의 임의의 날짜를 생성하는 방법


엑셀에서 두 날짜 사이, 즉 시작일과 종료일 사이의 임의의 날짜를 생성해야 하는 경우 어떤 방법이 있을까요?

이전 포스팅 글(엑셀에서 난수(Random)를 생성하고 사용하는 방법)에서 엑셀에서 난수(Random)를 생성하는 방법에 대해 작성한 적이 있습니다.

그때 RANDBETWEEN 함수를 사용해서 난수를 생성하는 방법에 대해서도 설명을 했었는데 두 날짜 사이의 임의의 날짜를 생성할 때도 RANDBETWEEN 함수를 사용해서 쉽게 구현할 수 있습니다.

이번 글에서는 지정한 두 수 사이의 난수를 반환하는 RANDBETWEEN 함수를 사용해서 엑셀에서 두 날짜 사이의 임의의 날짜를 생성하는 방법에 대해 알아보겠습니다.

엑셀에서 RANDBETWEEN 함수를 이용하여 두 날짜 사이의 임의의 날짜를 구하는 방법

– 엑셀 예제 화면을 설명하기 전에 먼저 RANDBETWEEN 함수에 대해 간략히 알아보겠습니다.

RANDBETWEEN 함수는 지정한 두 수 사이의 난수를 반환하는 함수입니다.

  • 기본 구문 : RANDBETWEEN(bottom, top)
  • bottom : RANDBETWEEN 함수에서 반환할 최소 정수값입니다.
  • top : RANDBETWEEN 함수에서 반환할 최대 정수값입니다.

1. 아래 예제 화면처럼 두 날짜가 셀에 지정되어 있다면 bottom과 top 인수에 셀을 지정해 주면 됩니다.

=RANDBETWEEN(A2,B2)

2. 만약 두 날짜를 직접 지정해 주어야 할 경우 DATE 함수를 사용해서 지정해 주면 됩니다.

=RANDBETWEEN(DATE(2023,3,23), DATE(2023,12,31))

RANDBETWEEN 함수를 이용하여 엑셀에서 두 날짜 사이의 임의의 날짜를 구하는 방법 1

3. RANDBETWEEN 함수의 bottom, top 인수에서도 알 수 있듯이 반환되는 값은 정수값이 됩니다.

4. 반환된 정수값을 날짜로 표시하기 위해 [셀 서식]의 표시 형식을 [날짜]로 변경해 주어야 합니다.

엑셀에서 RANDBETWEEN 함수를 이용하여 두 날짜 사이의 임의의 날짜를 구하는 방법 - 셀 서식 날짜 표시 형식 변경

5. 셀의 표시 형식을 날짜로 변경한 뒤의 화면입니다. 

두 날짜 사이의 임의의 날짜가 생성되어 셀에 표시되고 있습니다.

엑셀에서 RANDBETWEEN 함수를 이용하여 두 날짜 사이의 임의의 날짜를 구하는 방법

6. RANDBETWEEN 함수를 편집 상태로 만든 다음 엔터를 치면 임의의 날짜는 랜덤하게 계속 변경되어 바뀌게 됩니다.

엑셀에서 두 날짜 사이의 임의의 날짜에서 평일(근무일)만 선택적으로 생성하는 방법

엑셀에서 두 날짜 사이의 임의의 날짜를 RANDBETWEEN 함수를 사용해서 생성했는데 이번에는 주말(토요일, 일요일)을 제외한 평일의 근무일에서 선택적으로 생성하는 방법으로 한단계 더 확장해 보겠습니다.

평일의 날짜를 생성하기 위해 WORKDAY 함수를 함께 사용하면 됩니다.

엑셀에서 WORKDAY 함수는 특정 일(날짜)의 전이나 후의 날짜 수에서 주말이나 휴일을 제외한 날짜 수, 즉 평일 수를 반환하는 함수입니다.

  • 기본 구문 : WORKDAY(start_date, days, [holidays])
  • start_date : 시작 날짜입니다.
  • days : start_date 전이나 후의 주말이나 휴일을 제외한 날짜 수입니다.
  • holidays : 국경일, 공휴일, 임수 공휴일과 같이 작업 일수에서 제외되는 날짜 목록이며 선택 사항입니다.

– RANDBETWEEN 함수와 WORKDAY 함수를 함께 사용한 예제 입니다.

=WORKDAY(RANDBETWEEN(date1,date2) – 1, 1)
=WORKDAY(RANDBETWEEN(A2,B2) – 1, 1)
=WORKDAY(RANDBETWEEN(DATE(2023,3,23), DATE(2023,12,31)) – 1, 1)

▼ 시작날짜 이후 평일 날짜 가져올 때

=WORKDAY(DATE(2023,4,1) – 1, 1)인 경우 2023-04-03이 반환됩니다. (4월1일 토요일, 4월3일 월요일)
=WORKDAY(DATE(2023,4,3) – 1, 1)인 경우 2023-04-03이 반환됩니다. (4월3일 월요일, 4월3일 월요일)

=WORKDAY(DATE(2023,4,3), 1)인 경우 2023-04-04이 반환됩니다. (4월3일 월요일, 4월4일 화요일)

▼ 시작날짜 이전 평일 날짜 가져올 때

=WORKDAY(DATE(2023,4,1) – 1, -1)인 경우 2023-03-30이 반환됩니다. (4월1일 토요일, 3월30일 목요일)
=WORKDAY(DATE(2023,4,1) + 1, -1)인 경우 2023-03-31이 반환됩니다. (4월1일 토요일, 3월31일 금요일)
=WORKDAY(DATE(2023,3,31), -1)인 경우 2023-03-30이 반환됩니다. (3월31일 금요일, 3월30일 목요일)
=WORKDAY(DATE(2023,3,31) + 1, -1)인 경우 2023-03-31이 반환됩니다. (3월31일 금요일, 3월31일 금요일)

※ 시작날짜에 -1 또는 +1을 했을 때와 안했을 때 평일에 시작날짜를 포함할지 여부가 결정됩니다.





이 글이 도움이 되었기를 바랍니다. ^-^


답글 남기기