특정 날짜 범위(두 날짜 사이)에서 최대값 또는 최소값을 Excel에서 어떻게 찾을 수 있습니까?
일상적인 데이터 분석, 특히 거래 기록이나 시계열 데이터를 다룰 때 특정 기간 내에서 발생하는 가장 높거나 가장 낮은 값을 식별해야 하는 경우가 많습니다. 예를 들어, 아래 스크린샷과 같이 테이블이 있다고 가정해보세요. 2016/7/1부터 2016/12/1 사이의 최대값 또는 최소값을 결정하고자 합니다. 이는 특정 기간에 대한 보고서를 생성하거나 월별 성과를 비교하거나 데이터의 피크와 저점을 추적할 때 일반적으로 요구되는 작업입니다. 이 문서에서는 Excel 수식, VBA 코드 및 기본 제공 기능을 사용한 몇 가지 실용적인 솔루션을 안내하여 필요한 값을 빠르고 정확하게 추출하는 방법을 알려드립니다.
➤ 배열 수식을 사용하여 특정 날짜 범위의 최대값 또는 최소값 찾기
➤ VBA 코드: 지정된 날짜 범위에서 자동으로 최대값 또는 최소값 찾기
➤ 기타 기본 제공 Excel 방법: PivotTable을 사용하여 날짜 범위로 필터링 및 최대/최소값 표시하기
배열 수식을 사용하여 특정 날짜 범위의 최대값 또는 최소값 찾기
하나의 간단한 접근 방식은 여러 조건을 기반으로 값을 계산할 수 있게 해주는 배열 수식을 사용하는 것입니다. 예를 들어, 날짜가 지정된 범위 내에 있는지 확인할 수 있습니다. 이 방법은 중간 크기의 데이터와 수식 입력에 익숙한 사용자에게 적합합니다.
A 열(A5:A17)에 날짜가 나열되어 있고 B 열(B5:B17)에 해당 값이 있으며 시작 날짜와 종료 날짜는 각각 B1과 D1 셀에 입력되어 있다고 가정합니다.
1. 결과를 표시하려는 빈 셀을 선택하세요(예: E2).
2016/7/1과 2016/12/1 사이의 최대값 찾기:
2. 선택한 셀에 다음 수식을 입력하세요. 편집 후에는 Enter 대신 Ctrl + Shift + Enter를 눌러야만 Excel이 이를 배열 수식으로 인식합니다.
=MAX(IF((A5:A17<=$D$1)*(A5:A17>=$B$1),B5:B17,""))
이 수식은 시작 날짜와 종료 날짜 사이에 오는 날짜를 확인하며 일치하는 행의 값만 고려하여 최대값을 계산합니다.
2016/7/1과 2016/12/1 사이의 최소값 찾기:
3. 동일한 날짜 범위 내에서 최소값을 찾으려면 비슷한 방법을 사용하세요. 다음 수식을 입력하세요(다시 Ctrl + Shift + Enter로 확인).
=MIN(IF((A5:A17<=$D$1)*(A5:A17>=$B$1), B5:B17, ""))
이 수식은 동일한 방식으로 작동하지만, 날짜 조건에 맞는 최소값을 반환합니다.
메모:
- 위의 예에서 A5:A17은 날짜를 포함하는 범위이고 $B$1은 시작 날짜이며 $D$1은 종료 날짜이고 B5:B17은 평가하려는 값 범위입니다. 실제 데이터에 맞게 참조를 조정하세요.
- 참조하는 두 개의 범위 길이가 같아야 합니다. 그렇지 않으면 수식이 오류를 발생시킬 수 있습니다.
- 날짜 항목이 날짜 형식으로 되어 있는지 확인하세요. 텍스트로 되어 있다면 수식이 의도대로 작동하지 않을 수 있습니다.
팁:
- Office 365 또는 Excel 2021 이상 버전을 사용 중인 경우 더 간단한 조건 기반 계산을 위해 MAXIFS 및 MINIFS 함수를 사용할 수 있습니다.
- 수식이 예상치 못하게 0 또는 공백을 반환한다면 날짜 범위가 사용 가능한 데이터 날짜와 겹치는지 확인하고 알 수 없는 공란이 없는지 점검하세요.
VBA 코드: 지정된 날짜 범위에서 자동으로 최대값 또는 최소값 찾기
대량의 데이터 세트를 다루는 사용자, 이 작업을 자주 반복해야 하거나 보고서 자동화를 원하는 사용자는 VBA 매크로 솔루션이 선택된 날짜 범위 내에서 최대값 또는 최소값을 효율적으로 찾아줍니다. VBA를 사용하면 매번 관련 범위를 선택하고 날짜를 설정하도록 사용자에게 요청할 수 있어, 동적 애플리케이션 또는 고급 워크플로우 통합에 적합합니다.
1. 개발 도구 > Visual Basic으로 이동합니다. 나타나는 VBA 편집기 창에서 삽입 > 모듈을 클릭하고 새 모듈에 다음 코드를 복사하여 붙여넣습니다.
Sub FindMaxMinInDateRange_Robust()
Dim ws As Worksheet
Dim dateRange As Range, valueRange As Range
Dim startCell As Range, endCell As Range
Dim startDate As Date, endDate As Date
Dim i As Long
Dim d As Date, v As Variant
Dim hasHit As Boolean
Dim maxV As Double, minV As Double
Const TITLE As String = "KutoolsforExcel"
On Error GoTo FailFast
Set ws = ActiveSheet
Set dateRange = Application.InputBox("Select the DATE range:", TITLE, Type:=8)
If dateRange Is Nothing Then Exit Sub
Set valueRange = Application.InputBox("Select the VALUE range (same rows as date range):", TITLE, Type:=8)
If valueRange Is Nothing Then Exit Sub
If dateRange.Rows.Count <> valueRange.Rows.Count Then
MsgBox "Date range and value range must have the SAME number of rows.", vbExclamation, TITLE
Exit Sub
End If
Set startCell = Application.InputBox("Select START date cell:", TITLE, Type:=8)
If startCell Is Nothing Then Exit Sub
Set endCell = Application.InputBox("Select END date cell:", TITLE, Type:=8)
If endCell Is Nothing Then Exit Sub
If Not IsDate(startCell.Value) Or Not IsDate(endCell.Value) Then
MsgBox "Start/End cell must contain valid dates.", vbExclamation, TITLE
Exit Sub
End If
startDate = CDate(startCell.Value)
endDate = CDate(endCell.Value)
If startDate > endDate Then
Dim tmp As Date
tmp = startDate: startDate = endDate: endDate = tmp
End If
For i = 1 To dateRange.Rows.Count
If IsDate(dateRange.Cells(i, 1).Value) Then
d = CDate(dateRange.Cells(i, 1).Value)
If d >= startDate And d <= endDate Then
v = valueRange.Cells(i, 1).Value
If IsNumeric(v) And Not IsEmpty(v) Then
If Not hasHit Then
maxV = CDbl(v): minV = CDbl(v)
hasHit = True
Else
If CDbl(v) > maxV Then maxV = CDbl(v)
If CDbl(v) < minV Then minV = CDbl(v)
End If
End If
End If
End If
Next i
If hasHit Then
MsgBox "Max value in range: " & maxV & vbCrLf & _
"Min value in range: " & minV, vbInformation, TITLE
Else
MsgBox "No rows matched the date range (or values were non-numeric).", vbExclamation, TITLE
End If
Exit Sub
FailFast:
MsgBox "Something went wrong: " & Err.Description, vbExclamation, TITLE
End Sub
2. 매크로를 실행하려면 버튼을 클릭하세요(VBA 편집기에서) 또는 F5를 누릅니다). 날짜 및 값 범위를 선택하고 시작 및 종료 날짜를 입력하라는 메시지를 따르세요. 지정된 날짜 구간의 최대 및 최소값은 대화 상자에 표시됩니다.
팁:
- 선택한 날짜 및 값 범위는 같은 행 수를 포함하고 서로 직접적으로 일치해야 합니다.
- 이 접근법은 특히 광범위한 목록을 처리하거나 변경하는 기준에 따라 반복적인 최대/최소 계산을 자동화하는 데 유용합니다.
- 빈 범위 또는 잘못된 범위가 선택되었거나 날짜 입력이 올바르게 형식화되지 않은 경우 코드가 유효한 결과를 제공하지 않을 수 있으므로 실행 전에 선택 사항을 다시 확인하세요.
기타 기본 제공 Excel 방법: PivotTable을 사용하여 날짜 범위로 필터링 및 최대/최소값 표시하기
수식이나 코드를 사용하지 않고 Excel의 PivotTable 기능을 활용하면 데이터를 날짜로 필터링하고 최대값 또는 최소값과 같은 요약 값을 표시하는 대화형식의 방법을 제공합니다. 이 솔루션은 그래픽 인터페이스를 통해 데이터를 탐색하고 보고서를 생성하거나 기준을 쉽게 조정해야 하는 사용자에게 적합합니다.
1. 테이블(날짜와 값 포함)을 선택한 다음 삽입 탭으로 이동하여 PivotTable을 클릭합니다.
2. Create PivotTable 대화 상자에서 PivotTable을 배치할 위치를 선택하고 확인을 클릭합니다.
3. PivotTable 필드 창에서 날짜 필드를 행 영역으로 드래그하고(값 필드(최대값 또는 최소값을 찾으려는)를 값 영역으로 드래그합니다. 기본적으로 합계(Sum)가 표시되므로 값 영역에서 필드를 클릭하고 Value Field Settings를 선택한 다음 필요에 따라 Max 또는 Min으로 변경합니다.)
4. 특정 날짜 범위로 필터링하려면 날짜 필드의 행 레이블에서 드롭다운을 클릭하고 Date Filters > Between…을 선택한 다음 시작 및 종료 날짜를 지정(예: 2016/7/1 ~ 2016/12/1)하고 확인을 클릭합니다.
이제 PivotTable은 지정된 범위 내의 각 날짜에 대한 최대값 또는 최소값을 표시합니다. 전체 범위에서 단일 최고값 또는 최저값만 필요하다면 추가 필터링하거나 요약된 결과를 시각적으로 검토할 수 있습니다.
메모:
- 날짜 열의 모든 셀이 실제 날짜인지(텍스트가 아닌지) 확인하세요. 혼합 형식 때문에 필터가 일부 행을 놓칠 수 있습니다.
- 원본 데이터가 변경되면 PivotTable을 마우스 오른쪽 버튼으로 클릭하고 새로 고침을 선택하여 결과를 업데이트합니다.
- 레이아웃에 따라 Excel은 날짜를 월/분기/연도별로 그룹화할 수 있습니다. 필요한 경우 PivotTable의 날짜를 마우스 오른쪽 버튼으로 클릭하고 Ungroup(또는 Group...로 원하는 레벨 설정)을 선택하세요.
- 매우 큰 데이터 세트의 경우 새로운 워크시트에 PivotTable을 배치하면 가독성과 성능이 향상될 수 있습니다.
팁:
- Slicer를 사용하여 날짜 필드에 대해 Insert Slicer를 추가하여 대화형으로 범위를 변경하세요.
- 필터링된 전체 범위에서 단일 최대값 또는 최소값이 필요한가요? 필터링 후 Values 열을 정렬하거나 두 번째 Values 필드를 추가하고 Max/Min으로 전환하세요.
- PivotChart와 함께 사용하여 필터와 함께 업데이트되는 시각적 요약을 얻으세요.
이 방법은 수동 수식 입력 없이 동적 상호작용을 허용합니다 — 발표나 다중 사용자 시나리오에 적합합니다. 매우 맞춤화된 출력이나 많은 시트에 걸친 일괄 자동화가 필요한 경우 수식 또는 VBA 접근 방식을 고려하세요.
관련 기사:
- Excel에서 텍스트 문자열에서 첫 번째/마지막 숫자의 위치를 어떻게 찾을 수 있습니까?
- Excel에서 매달의 첫 번째 또는 마지막 금요일을 어떻게 찾을 수 있습니까?
- Excel에서 vlookup으로 첫 번째, 두 번째 또는 n번째 매칭 값을 어떻게 찾을 수 있습니까?
- Excel에서 범위 내에서 가장 많이 발생하는 값을 어떻게 찾을 수 있습니까?
최고의 오피스 생산성 도구
🤖 | Kutools AI 도우미: 데이터 분석에 혁신을 가져옵니다. 방법: 지능형 실행 | 코드 생성 | 사용자 정의 수식 생성 | 데이터 분석 및 차트 생성 | Kutools Functions 호출… |
인기 기능: 중복 찾기, 강조 또는 중복 표시 | 빈 행 삭제 | 데이터 손실 없이 열 또는 셀 병합 | 반올림(수식 없이) ... | |
슈퍼 LOOKUP: 다중 조건 VLOOKUP | 다중 값 VLOOKUP | 다중 시트 조회 | 퍼지 매치 .... | |
고급 드롭다운 목록: 드롭다운 목록 빠르게 생성 | 종속 드롭다운 목록 | 다중 선택 드롭다운 목록 .... | |
열 관리자: 지정한 수의 열 추가 | 열 이동 | 숨겨진 열의 표시 상태 전환 | 범위 및 열 비교 ... | |
추천 기능: 그리드 포커스 | 디자인 보기 | 향상된 수식 표시줄 | 통합 문서 & 시트 관리자 | 자동 텍스트 라이브러리 | 날짜 선택기 | 데이터 병합 | 셀 암호화/해독 | 목록으로 이메일 보내기 | 슈퍼 필터 | 특수 필터(굵게/이탤릭/취소선 필터 등) ... | |
15대 주요 도구 세트: 12 가지 텍스트 도구(텍스트 추가, 특정 문자 삭제, ...) | 50+ 종류의 차트(간트 차트, ...) | 40+ 실용적 수식(생일을 기반으로 나이 계산, ...) | 19 가지 삽입 도구(QR 코드 삽입, 경로에서 그림 삽입, ...) | 12 가지 변환 도구(단어로 변환하기, 통화 변환, ...) | 7 가지 병합 & 분할 도구(고급 행 병합, 셀 분할, ...) | ... 등 다양 |
Kutools for Excel과 함께 엑셀 능력을 한 단계 끌어 올리고, 이전에 없던 효율성을 경험하세요. Kutools for Excel은300개 이상의 고급 기능으로 생산성을 높이고 저장 시간을 단축합니다. 가장 필요한 기능을 바로 확인하려면 여기를 클릭하세요...
Office Tab은 Office에 탭 인터페이스를 제공하여 작업을 더욱 간편하게 만듭니다
- Word, Excel, PowerPoint에서 탭 편집 및 읽기를 활성화합니다.
- 새 창 대신 같은 창의 새로운 탭에서 여러 파일을 열고 생성할 수 있습니다.
- 생산성이50% 증가하며, 매일 수백 번의 마우스 클릭을 줄여줍니다!
모든 Kutools 추가 기능. 한 번에 설치
Kutools for Office 제품군은 Excel, Word, Outlook, PowerPoint용 추가 기능과 Office Tab Pro를 한 번에 제공하여 Office 앱을 활용하는 팀에 최적입니다.





- 올인원 제품군 — Excel, Word, Outlook, PowerPoint 추가 기능 + Office Tab Pro
- 설치 한 번, 라이선스 한 번 — 몇 분 만에 손쉽게 설정(MSI 지원)
- 함께 사용할 때 더욱 효율적 — Office 앱 간 생산성 향상
- 30일 모든 기능 사용 가능 — 회원가입/카드 불필요
- 최고의 가성비 — 개별 추가 기능 구매 대비 절약