5년 연속 IT분야 베스트셀러! 「 진짜쓰는 실무엑셀 」로 2026년 공부 끝내기 오빠두엑셀 `2026 무료 챌린지` 오픈! 완주하고 수료증 받아가세요! 엑셀이 막히셨나요? Q&A 게시판에서 바로 해결하세요.
메뉴
실무 위키응용 공식필터 후 첫 번째 값 찾기 공식

필터 후 첫 번째 값 찾기 공식

지원 버전 자세히 보기
엑셀 2013 이전엑셀 2016엑셀 2019엑셀 2021엑셀 2024M365웹 엑셀

필터에서 화면에 보이는 첫 번째 값을 반환하는 공식입니다.

필터 후 첫 번째 값 찾기 공식 예제 미리보기
예제 미리보기 크게 보기

인수 설명

012021 이후 버전 공식

=XLOOKUP ( 1, SUBTOTAL ( 103, OFFSET ( 시작셀, ROW ( 범위 ) - ROW ( 시작셀 ), 0 ) ), 범위, "" )
인수 설명 자세히 보기(인수를 클릭하면 해당 영역만 강조됩니다. 여러 개를 함께 켜고 끌 수 있습니다.)
인수구분설명
시작셀필수필터를 적용할 범위의 맨 위 셀입니다. 범위의 첫 번째 셀과 같아야 합니다.
범위필수화면에 보이는 첫 번째 값을 찾을 한 열 범위입니다.
F1=XLOOKUP(1,SUBTOTAL(103,OFFSET($A$2,ROW($A$2:$A$8)-ROW($A$2),0)),$A$2:$A$8,"")
A
B
C
D
E
F
G
1
담당자
업무
화면 상태
첫 번째 보이는 값
오하늘
오하늘
검수
표시
한유진
배송
표시
윤서아
검수
표시
9
2·3·5·7행을 숨기면 A4·A6·A8만 화면에 남고, 그중 첫 번째 A4의 오하늘을 F1 셀이 반환합니다.

02레거시 배열수식

{=INDIRECT ( SUBSTITUTE ( ADDRESS ( 1, COLUMN ( 시작셀 ), 4 ), 1, "" ) & MIN ( IF ( SUBTOTAL ( 103, OFFSET ( 시작셀, ROW ( 범위 ) - ROW ( 시작셀 ), 0 ) ), ROW ( 범위 ) ) ) )}
인수 설명 자세히 보기
인수구분설명
시작셀필수필터를 적용할 범위의 맨 위 셀입니다. 범위의 첫 번째 셀과 같아야 합니다.
범위필수화면에 보이는 첫 번째 값을 찾을 한 열 범위입니다. 수식은 Ctrl+Shift+Enter로 입력합니다.
F1{=INDIRECT(SUBSTITUTE(ADDRESS(1,COLUMN($A$2),4),1,"")&MIN(IF(SUBTOTAL(103,OFFSET($A$2,ROW($A$2:$A$8)-ROW($A$2),0)),ROW($A$2:$A$8))))}
A
B
C
D
E
F
G
1
담당자
업무
화면 상태
첫 번째 보이는 값
오하늘
오하늘
검수
표시
한유진
배송
표시
윤서아
검수
표시
9
2·3·5·7행을 숨기면 A4·A6·A8만 화면에 남고, 레거시 배열수식은 가장 앞선 A4의 오하늘을 F1 셀에 반환합니다.

동작 원리

012021 이후 버전 공식

SUBTOTAL 함수는 숨긴 행을 0으로 표시하고 XLOOKUP 함수는 첫 번째 1에 대응하는 값을 반환합니다.

2021 이후 버전 공식의 예제 시트에서 F1 셀이 오하늘을 반환하는 계산 과정입니다. 단계마다 강조된 부분이 어떻게 계산되는지 살펴보세요.

1

ROW 함수가 시작셀부터의 간격을 계산합니다

ROW 함수는 A2:A8의 행 번호에서 시작셀 A2의 행 번호를 빼서 0부터 6까지의 간격을 반환합니다.

=ROW ( $A$2:$A$8 ) - ROW ( $A$2 )
= {0;1;2;3;4;5;6} A2에서 각 셀까지 이동할 행 수입니다.
2

SUBTOTAL 함수가 보이는 행을 표시합니다

OFFSET 함수는 A2에서 행 간격만큼 내려가 A2:A8을 한 셀씩 참조합니다. SUBTOTAL 함수의 103은 화면에 보이는 비어 있지 않은 행을 1, 숨긴 2·3·5·7행을 0으로 반환합니다.

=SUBTOTAL ( 103, OFFSET ( $A$2, {0;1;2;3;4;5;6}, 0 ) )
= {0;0;1;0;1;0;1} A4·A6·A8만 화면에 보여 각각 1입니다.
3

XLOOKUP 함수가 첫 번째 보이는 값을 찾습니다

XLOOKUP 함수는 표시 배열에서 첫 번째 1을 찾고, 같은 위치에 있는 A4의 값을 반환합니다.

=XLOOKUP ( 1, {0;0;1;0;1;0;1}, $A$2:$A$8, "" )
= "오하늘" 첫 번째 1과 같은 위치의 값입니다.

02레거시 배열수식

SUBTOTAL 함수가 보이는 행의 번호를 추리고 INDIRECT 함수가 가장 앞선 셀의 값을 반환합니다.

레거시 배열수식의 예제 시트에서 F1 셀이 오하늘을 반환하는 계산 과정입니다. 단계마다 강조된 부분이 어떻게 계산되는지 살펴보세요.

1

ROW 함수가 시작셀부터의 간격을 계산합니다

ROW 함수는 A2:A8의 행 번호에서 시작셀 A2의 행 번호를 빼서 0부터 6까지의 간격을 반환합니다.

=ROW ( $A$2:$A$8 ) - ROW ( $A$2 )
= {0;1;2;3;4;5;6} A2에서 각 셀까지 이동할 행 수입니다.
2

SUBTOTAL 함수가 보이는 행을 표시합니다

OFFSET 함수는 A2에서 행 간격만큼 내려가 A2:A8을 한 셀씩 참조합니다. SUBTOTAL 함수의 103은 화면에 보이는 비어 있지 않은 행을 1, 숨긴 2·3·5·7행을 0으로 반환합니다.

=SUBTOTAL ( 103, OFFSET ( $A$2, {0;1;2;3;4;5;6}, 0 ) )
= {0;0;1;0;1;0;1} A4·A6·A8만 화면에 보여 각각 1입니다.
3

IF 함수와 MIN 함수가 첫 행 번호를 찾습니다

IF 함수는 표시 배열이 1인 위치에만 행 번호를 남기고, MIN 함수는 남은 행 번호 중 가장 작은 4를 반환합니다.

=IF ( {0;0;1;0;1;0;1}, ROW ( $A$2:$A$8 ) )
= {FALSE;FALSE;4;FALSE;6;FALSE;8} A4·A6·A8의 행 번호만 남은 배열입니다.
=MIN ( {FALSE;FALSE;4;FALSE;6;FALSE;8} )
= 4 화면에 보이는 첫 번째 셀의 행 번호입니다.
4

INDIRECT 함수가 첫 셀의 값을 반환합니다

ADDRESS 함수와 SUBSTITUTE 함수는 시작셀의 열 문자 A를 만들고 행 번호 4를 이어 붙여 A4를 만듭니다. 이후 INDIRECT 함수가 A4를 실제 셀 참조로 바꾸어 값을 반환합니다.

=SUBSTITUTE ( ADDRESS ( 1, COLUMN ( $A$2 ), 4 ), 1, "" ) & 4
= "A4" 열 문자와 행 번호를 합친 참조 문자열입니다.
=INDIRECT ( "A4" )
= "오하늘" A4 셀의 값입니다.

댓글 4

댓글 4
5 (2개 평가)
umc
umc 2022.02.09 16:19
필터링 후에 값이 2개 이상일 경우 2번째 값도 표시할 수 있는 방법이 있을까요?
오빠두엑셀
오빠두엑셀 작성자 2022.02.11 02:12
안녕하세요?^^
두번째 값은 아래 수식을 사용해보세요.
{ =INDIRECT(SUBSTITUTE(ADDRESS(1,COLUMN($시작셀),4),1,"")&SMALL(IF(SUBTOTAL(3,OFFSET($시작셀,ROW($범위)-ROW($시작셀),0)),ROW($범위)),2)) }
umc
umc 2022.02.11 11:31
답변 감사드립니다.
강민준🤗
강민준🤗 2024.08.11 20:18
좋은 강의 감사합니다🙇‍♂️
스크랩 완료