- 최초 작성일: 2004-06-11
- 최종 수정일: 2026-09-26
- 조회수: 18 회
- 작성자: 권현욱 (엑셀러)
- 강의 제목: 조건을 충족하는 셀 주소 알아내기
들어가기 전에
오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.
인생은 강과 같은 것이다. 당신이 미리 결정해 놓은 방향으로 자신을 조종해 가기 위하여 신중하고 의식적인 행동을 취하지 않는다면 당신은 강물의 흐름에 좌우되고 말 것이다. 당신이 정신적이나 육체적으로 당신이 원하는 결과의 씨를 심지 않으면 잡초가 저절로 자라게 된다. 《무한능력》, 앤소니 로빈스
목표를 알고 있어야 목표에 의한 경영을 할 수 있다고 말씀 드렸습니다. 우선, 내가 원하는 것이 무엇인지 정확히 알고 있어야 노력을 해도 하겠지요?
질문 하나
안녕하십니까. 엑셀초보자입니다. 엑셀을 사용하다 궁금한게 있어서 문의 드립니다. 한 셀 A1에 있는 값을 범위를 지정하여 값은 값을 찾아 셀 좌표값을 얻을 수 있는 방법을 알고 싶습니다. 좀 질문이 황당한가요
조건을 충족하는 셀 주소 알아내기
핵심 요약
- 특정 조건을 충족하는 값이 들어 있는 셀의 주소를 알아내는 방법을 다룹니다.
- MATCH와 OFFSET으로 원하는 값의 위치를 찾고 CELL 함수로 주소를 표시합니다.
- MAX, MIN, LARGE, SMALL을 이용하여 다양한 조건에 응용합니다.
그럼 고수님들의 많은 조언 부탁드립니다.
황당한 질문은 아닙니다만, 질문을 주실 때에는 가급적 실제 데이터 형태까지 함께 알려주시면 얼마나 좋을까요?
| =RAND()*100 | 왼쪽과 같은 형태의 데이터가 있습니다. | |||||
| =RAND()*100 | 여기에서 특정한 조건을 충족하는 셀의 주소를 알아내 볼까요? | |||||
| =RAND()*100 | ||||||
| =RAND()*100 | 최대값이 들어있는 셀 주소 | =CELL("address",OFFSET(B31,MATCH(MAX(B31:B50),B31:B50,FALSE())-1,0)) | ||||
| =RAND()*100 | ||||||
| =RAND()*100 | 최소값이 들어있는 셀 주소 | =CELL("address",OFFSET(B35,MATCH(MIN(B35:B54),B35:B54,FALSE())-1,0)) | ||||
| =RAND()*100 | ||||||
| =RAND()*100 | 세번째 큰 값이 들어있는 셀 주소 | =CELL("address",OFFSET(B35,MATCH(LARGE(B35:B54,3),B35:B54,FALSE())-1,0)) | ||||
| =RAND()*100 | ||||||
| =RAND()*100 | 다섯번째로 작은 값이 들어있는 셀 주소 | =CELL("address",OFFSET(B35,MATCH(SMALL(B35:B54,5),B35:B54,FALSE())-1,0)) | ||||
| =RAND()*100 | ||||||
| =RAND()*100 | ||||||
| =RAND()*100 | ||||||
| =RAND()*100 | ||||||
| =RAND()*100 | ||||||
| =RAND()*100 | ||||||
| =RAND()*100 | ||||||
| =RAND()*100 | ||||||
| =RAND()*100 | ||||||
| =RAND()*100 |
최대값 셀의 주소 구하기
| 먼저, 최대값이 들어있는 셀 주소를 알아내려면 아래의 수식을 사용합니다. |
=CELL("address",OFFSET(B32,MATCH(MAX(B32:B51),B32:B51,FALSE)-1,0))수식 분석하기
| 복잡한 수식은 토막을 낸 다음, 안쪽부터 해석해 나오면 쉽다고 했지요? |
맨 안쪽에 있는 다음의 수식은 무슨 의미일까요?
| (1) MATCH(MAX(B32:B51),B32:B51,FALSE) |
주어진 범위(B32:B51) 내에서 가장 큰 값이 몇번째에 있는지 그 위치값을 구해줍니다.
이제 범위를 조금 확장해 보도록 합니다.
| (2) OFFSET(B32,MATCH(MAX(B32:B51),B32:B51,FALSE)-1,0) |
Offset 함수는 특정한 위치에서 지정한 행/열 방향으로 떨어져 있는 영역의 값을 가져다 주는 함수입니다. 따라서 위 수식은... 이해가 되시지요. 여기서 한 가지! 뒤에 -1은 왜 해 주었을까요? (그냥 심심해서? 아니면 멋있게 보일려고??) 그것은… 자기 자신은 0부터 시작하기 때문입니다. 즉, =Offset(A1,0,0)이라고 하면 A1셀, 자신을 의미합니다.
마지막으로 (2) 수식을 Cell 함수와 중첩해서 사용하면 됩니다.
| (3) CELL("address",OFFSET(B32,MATCH(MAX(B32:B51),B32:B51,FALSE)-1,0)) |
여기서 Max 대신 Large 함수를 사용하여 다음과 같이 표현할 수도 있습니다.
=CELL("address",OFFSET(B32,MATCH(LARGE(B32:B51,1),B32:B51,FALSE)-1,0))나머지 최소값 셀의 주소를 파악하는 것이나 n번째 큰(혹은 작은) 값의 셀 주소를 알아내는 수식에 대해서는 설명드리지 않아도 이해하실 수 있을 것입니다. 또한 위의 질문하신 분의 경우도 위 수식들을 조금만 응용하시면 해결이 가능하리라 생각됩니다.
그러고 보니… 예전 강좌 시간에도 비슷한 것을 소개해 드렸군요. 또 다른 접근 방법에 대해 살펴보시려면 X0218 강좌도 아울러 참고해 보시기 바랍니다.
다음 시간에…
마치며
조건에 맞는 값의 위치를 MATCH와 OFFSET으로 찾고 CELL 함수로 주소를 표시하는 방법을 살펴보았습니다. MAX, MIN, LARGE, SMALL로 다양한 조건에도 응용할 수 있습니다.