• 최초 작성일: 2001-07-26
  • 최종 수정일: 2026-09-29
  • 조회수: 30 회
  • 작성자: 권현욱 (엑셀러)
  • 강의 제목: 각 행의 최대값 구하기

들어가기 전에

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

질문 내용이 정확히 기억나진 않는데 아래와 같은 질문을 하신 분이 있습니다.

질문 하나

아래와 같은 자료가 있다고 할 경우,

가 나 다 최대값
10 15 13 나
17 10 15 가
20 25 30 다

여기서 각 행의 최대값을 구하는 방법이 있습니까?

이와 비슷한 질문에 대해 언젠가 설명을 드린 것도 같은데... 강좌 횟수가 200회를 넘다보니 강좌를 진행하는 사람도 마구 헷갈립니다. 설명을 드렸는지 안드렸는지... ^^

그리고 만약 설명을 안 드렸다 하더라도 중고참님들 정도면 금새 해결하실 수 있으리라 생각됩니다. ^^ Address, Index, Match, Row, Column 등 여러 함수를 두루 응용해 볼 수 있는 좋은 예제일 듯 하므로 복습을 겸해서 살펴보도록 합니다.

질문하신 분의 예제를 그냥 사용하는 것은 재미가 좀 없으므로 예제부터 새로 만들고 시작합니다. 아래의 버튼을 누르세요.

권현욱(엑셀러)
저자: 권현욱(엑셀러), 아이엑셀러 대표

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

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


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

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

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

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

각 행의 최대값 구하기

핵심 요약

  • 각 행에서 가장 큰 값의 위치를 찾으려면 MAX와 MATCH로 최대값의 열 위치를 구하고 INDEX와 ADDRESS로 셀 주소를 만들 수 있습니다.
  • 예제의 I열은 배열 수식으로 최대값 주소를 구하고 J열은 INDIRECT를 사용해 해당 열의 회사명을 가져옵니다.
  • COUNTIF와 INDEX·MATCH를 조합하면 가장 자주 등장하는 거래처와 그 빈도값도 배열 수식으로 계산할 수 있습니다.
태평양 인도양 대서양 신세계 현대 롯데 최대값 주소 해당 회사명
January =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 {=ADDRESS(ROW(INDEX(B40:G40,MATCH(MAX(B40:G40),B40:G40,0))),COLUMN(INDEX(B40:G40,MATCH(MAX(B40:G40),B40:G40,0))),4)} =INDIRECT(LEFT(I40,1)&39)
February =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 {=ADDRESS(ROW(INDEX(B41:G41,MATCH(MAX(B41:G41),B41:G41,0))),COLUMN(INDEX(B41:G41,MATCH(MAX(B41:G41),B41:G41,0))),4)} =INDIRECT(LEFT(I41,1)&39)
March =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 {=ADDRESS(ROW(INDEX(B42:G42,MATCH(MAX(B42:G42),B42:G42,0))),COLUMN(INDEX(B42:G42,MATCH(MAX(B42:G42),B42:G42,0))),4)} =INDIRECT(LEFT(I42,1)&39)
April =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 {=ADDRESS(ROW(INDEX(B43:G43,MATCH(MAX(B43:G43),B43:G43,0))),COLUMN(INDEX(B43:G43,MATCH(MAX(B43:G43),B43:G43,0))),4)} =INDIRECT(LEFT(I43,1)&39)
May =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 {=ADDRESS(ROW(INDEX(B44:G44,MATCH(MAX(B44:G44),B44:G44,0))),COLUMN(INDEX(B44:G44,MATCH(MAX(B44:G44),B44:G44,0))),4)} =INDIRECT(LEFT(I44,1)&39)
June =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 {=ADDRESS(ROW(INDEX(B45:G45,MATCH(MAX(B45:G45),B45:G45,0))),COLUMN(INDEX(B45:G45,MATCH(MAX(B45:G45),B45:G45,0))),4)} =INDIRECT(LEFT(I45,1)&39)
July =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 {=ADDRESS(ROW(INDEX(B46:G46,MATCH(MAX(B46:G46),B46:G46,0))),COLUMN(INDEX(B46:G46,MATCH(MAX(B46:G46),B46:G46,0))),4)} =INDIRECT(LEFT(I46,1)&39)
August =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 {=ADDRESS(ROW(INDEX(B47:G47,MATCH(MAX(B47:G47),B47:G47,0))),COLUMN(INDEX(B47:G47,MATCH(MAX(B47:G47),B47:G47,0))),4)} =INDIRECT(LEFT(I47,1)&39)
September =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 {=ADDRESS(ROW(INDEX(B48:G48,MATCH(MAX(B48:G48),B48:G48,0))),COLUMN(INDEX(B48:G48,MATCH(MAX(B48:G48),B48:G48,0))),4)} =INDIRECT(LEFT(I48,1)&39)
October =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 {=ADDRESS(ROW(INDEX(B49:G49,MATCH(MAX(B49:G49),B49:G49,0))),COLUMN(INDEX(B49:G49,MATCH(MAX(B49:G49),B49:G49,0))),4)} =INDIRECT(LEFT(I49,1)&39)
November =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 {=ADDRESS(ROW(INDEX(B50:G50,MATCH(MAX(B50:G50),B50:G50,0))),COLUMN(INDEX(B50:G50,MATCH(MAX(B50:G50),B50:G50,0))),4)} =INDIRECT(LEFT(I50,1)&39)
December =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 =RAND()*1000 {=ADDRESS(ROW(INDEX(B51:G51,MATCH(MAX(B51:G51),B51:G51,0))),COLUMN(INDEX(B51:G51,MATCH(MAX(B51:G51),B51:G51,0))),4)} =INDIRECT(LEFT(I51,1)&39)
다빈도 거래처: {=INDEX(CompanyName,MATCH(MAX(COUNTIF(CompanyName,CompanyName)),COUNTIF(CompanyName,CompanyName),0))}
해당 거래처의 빈도값: {=COUNTIF(CompanyName,INDEX(CompanyName,MATCH(MAX(COUNTIF(CompanyName,CompanyName)),COUNTIF(CompanyName,CompanyName),0)))}

I40 셀에는 아래와 같은 수식이 들어있습니다.

{=ADDRESS(ROW(INDEX(B40:G40,MATCH(MAX(B40:G40),B40:G40,0))),COLUMN(INDEX(B40:G40,MATCH(MAX(B40:G40),B40:G40,0))),4)}

무시무시하지요? 아마 더위가 쌱~ 달아날 것입니다. (열 받아서 더 더운 분도 계시겠지만서도... ^^) 누차 말씀드리는 것이지만 고수냐 아니냐의 차이는 복잡한 수식을 보았을 때 머리가 어지러우냐 아니냐의 차이입니다. 위의 수식도 길어서 복잡하게 보일 따름이지 안에서부터 하나씩 분석해 나오면 금새 원리를 이해할 수 있습니다.

Index와 Match 함수는 수도 없이 설명을 드려서 더 이상의 설명이 필요없을 것 같고... Max 함수는 지정한 영역 내에서 가장 큰 값을 찾아서 알려주는 함수이고... Address 함수는 주어진 행과 열번호를 가지고 셀 주소를 문자열의 형태로 되돌려 주는 함수입니다. 수식 좌우에 {}가 있는 것으로 보아... 배열 수식임을 알 수 있겠지요? 즉 {}는 손으로 입력한 것이 아니라 수식을 입력한 다음 Ctrl + Shift + Enter키를 함께 눌러준 것입니다.

그리고 가장 빈도수가 높은 거래처 이름 및 그 때의 빈도값을 구하기 위해서는 또 이런 수식을 사용하였습니다.

다빈도 거래처 구하기

{=INDEX(CompanyName,MATCH(MAX(COUNTIF(CompanyName,CompanyName)),COUNTIF(CompanyName,CompanyName),0))}

해당 거래처의 빈도값 구하기

{=COUNTIF(CompanyName,INDEX(CompanyName,MATCH(MAX(COUNTIF(CompanyName,CompanyName)),COUNTIF(CompanyName,CompanyName),0)))}

이번 강좌에서 소개해 드린 수식들을 잘 연구해서 완전히 내 것으로 만들면 내공이 한 단계 상승할 것입니다. 낮에 보면 더우니까 밤에 잠 안올 때 한번씩 떠올려 보세요. ^^

다음 시간에...

정리 — 각 행의 최대값 구하기

구분내용
최대값 주소{=ADDRESS(ROW(INDEX(B40:G40,MATCH(MAX(B40:G40),B40:G40,0))),COLUMN(INDEX(B40:G40,MATCH(MAX(B40:G40),B40:G40,0))),4)}
해당 회사명=INDIRECT(LEFT(I40,1)&39)
다빈도 거래처INDEX, MATCH, MAX, COUNTIF 조합의 배열 수식 (CompanyName 이름 사용)
입력 방법Ctrl + Shift + Enter (배열 수식)

자주 묻는 질문 (FAQ)

Q1. 각 행에서 가장 큰 값의 주소는 어떻게 구하나요?

MAX로 최대값을 찾고 MATCH로 그 열 위치를 구한 뒤 INDEX와 ADDRESS 함수로 셀 주소 문자열을 만드는 배열 수식을 사용합니다.

Q2. 수식 좌우의 중괄호는 직접 입력하나요?

아닙니다. 수식을 입력한 다음 Ctrl + Shift + Enter 키를 함께 눌러 배열 수식으로 확정하면 자동으로 표시됩니다.

Q3. 가장 자주 나오는 거래처는 어떻게 구하나요?

COUNTIF로 각 거래처의 빈도를 구하고 MAX와 MATCH로 최대 빈도의 위치를 찾은 뒤 INDEX로 거래처 이름을 가져옵니다.

마치며

복잡해 보이는 수식도 안쪽 함수부터 하나씩 분석하면 원리를 금방 이해할 수 있습니다. VBA에 대한 기초 지식을 공부하실 분은 아이엑셀러 닷컴 사이트 상단 메뉴에서 [Excel 강의] - [Excel 입문]을 먼저 보시면 이해하기 쉽습니다.