엑셀

[EXCEL/엑셀] MAX, MIN, DMAX, DMIN 함수 최대값, 최소값 구하기

excelai 2025. 4. 14. 11:30
728x90

 

최대값, 최소값을 구하는 함수인 MAX, MIN, DMAX, DMIN 함수를 알아보자.

 

MAX, MIN은 최대값, 최소값을 구하는 함수이고

= MAX(범위)

= MIN(범위)

DMAX, DMIN은 조건에 맞는 값의 최대값, 최소값을 구하는 함수이다.

= DMAX(데이터베이스,데이터베이스에서 열의 위치, 조건범위)

= DMIN(데이터베이스,데이터베이스에서 열의 위치, 조건범위)

 

예제 파일은 글 제일 아래에 있으니 참고!

아래와 같이 시험성적 데이터로 과목별 점수의 최대값과 최소값을 구해보자.

시험 성적 데이터

 

별 조건 없이 전체 성적 데이터 기준으로 최대값과 최소값을 구하는 수식을 작성해보면

 

국어 점수 최대값 

= MAX(C:C)

 

국어 점수 최소값

= MIN(C:C)

 

이런식으로 간단하게 수식을 작성할 수 있다.

 

MAX, MIN의 인수를 범위로 지정해도 되는데, 텍스트 값이나 논리값은 계산되지 않기 때문에 열 전체를 지정해도 상관없이 결과값은 같다.

 

조건을 주고(A반) 국어 점수의 최대값과 최소값을 구하는 수식을 작성해보면

 

A반 국어 점수 최대값

= DMAX($A:$E,3,조건범위)

 

A반 국어 점수 최소값

DMIN($A:$E,3,조건범위)

 

DMAX, DMIN의 첫번째 인수 $A:$E는 시험 성적 데이터의 전체 필드를 작성해주었다.

DMAX, DMIN의 두번째 인수 3은 국어 점수가 있는 $A:$E의 3번째 열

DMAX, DMIN의 세번째 인수는 조건 범위를 작성해주면 된다.

 

조건범위는 시트에 별도로 작성해주고 범위 지정을 해주면 되는데,

 

하나의 조건만 있는 경우

조건1

 

이런식으로 하나의 열에 위에는 필드의 첫행을 작성하고 아래행은 반명에서 A반을 찾는다는 조건을 작성할 수 있다.

 

조건범위는 AND 조건 OR 조건을 작성할 수 있는데,

 

AND 조건은 아래와 같이 같은 행에 나란히 작성하는 것으로 설정할 수 있고

AND 조건

 

OR 조건은 아래와 같이 다른 행에 조건 값을 작성하는 것으로 설정할 수 있다.

OR 조건

 

여기서는 반명의 하나의 조건만을 설정해 주었으므로 

조건1

 

위와 같이 조건을 작성해두고 해당 범위를 조건범위로 지정해주면 된다.

※ AND 조건과 OR 조건은 예제 파일을 참고

 

이렇게 보면 간단해 보이는데

아래의 표와 같이 반별 최고점을 구하려면 DMAX의 인수 중 2번째(열의 위치), 3번째(조건범위)를 각각 설정해주어야 하기 때문에 완전 귀찮음,

반별 최고점을 구해보자.

 

그래서 나는 이런식의 데이터를 구할때 MATCH 함수, 이름 지정 후 INDIRECT 함수를 주로 사용한다.

 

A반의 과목별 점수 최대값을 구하는 수식은 아래와 같이 2번째 인수인 열의 위치가 달라지는데

 

A반 국어 점수 최대값

= DMAX($A:$E,3,조건범위)

 

A반 수학 점수 최대값

= DMAX($A:$E,4,조건범위)

 

이럴때 MATCH 함수를 활용해서 2번째 인수를 변경해줄수 있다.

시험 성적 데이터

 

= DMAX($A:$E,MATCH(I$2,$A$1:$E$1,0),조건범위)

 

이런식으로 MATCH를 활용해서 I2(국어),J2(수학),K2(영어)가 원 데이터의 첫행 $A$1:$E$1의 몇번째에 있는지 찾아주는 수식으로 변경해두면 I3의 셀에 수식값을 입력하고 드래그해서 값을 채워 넣을 수 있다.

 

그리고 조건 범위도 각 반별로 조건범위를 작성해서 범위를 지정해서 수식을 작성하면 반별로 수식을 작성해야하는 번거로움이 있는데 이름 지정 후 INDIRECT 함수로 자동으로 따라가게 해 두면 I3의 셀에만 수식을 입력하고 오른쪽으로, 아래쪽으로 드래그만 해서 데이터를 다 채워 넣을수 있다.

 

일단 아래와 같이 작성하고

조건을 이름지정하기

 

R2부터 AD4를 드래그해서 범위를 잡아준다음

이름 관리자 > 선택 영역에서 만들기

 

수식 > 이름관리자 > 선택 영역에서 만들기를 누르면

 

아래와 같이 대화상자가 나오는데, 여기서 첫 행을 클릭하고 확인을 누르면 첫 행의 이름으로 이름 정의가 완료된다.

선택 영역에서 이름 만들기

 

R2:AD4의 범위에서 조건1부터 조건13까지 이름정의가 완료되었음을 확인할 수 있다.

조건1 ~ 조건13 이름 정의 완료

 

이걸 활용해서 수식을 작성해보자.

G3:G15에 조건1부터 조건13을 작성해주고 여기를 INDIRECT함수로 활용할 거다.

나중에 여기는 글자색을 흰색으로 변경해주거나 G열을 숨기기 하는 것으로 안 보이게 할 수 있다.

조건1 ~ 조건13까지 INDIRECT

 

I3에 작성하는 수식은

= DMAX($A:$E,MATCH(I$2,$A$1:$E$1,0),INDIRECT($G3))

 

= DMAX($A:$E,MATCH(I$2,$A$1:$E$1,0),INDIRECT($G3)) .. 데이터베이스 전체 범위

= DMAX($A:$E,MATCH(I$2,$A$1:$E$1,0),INDIRECT($G3)) .. "국어"를 데이터베이스 첫행에서 찾으면 3열에 있고, 이 숫자를 반환하므로 3

= DMAX($A:$E,MATCH(I$2,$A$1:$E$1,0),INDIRECT($G3)) .. 조건1을 조건범위로 지정

 

이렇게 I3셀을 작성하고 나서 오른쪽으로 값 채우기 드래그, 아래쪽으로 값 채우기 드래그 하면 수식을 일일히 수정하지 않고도 표를 작성할 수 있다.

 

MAX, MIN, DMAX, DMIN.xlsx
0.02MB

728x90