여러 조건 중 하나에 맞는 여러 결과 출력
지원 버전 자세히 보기
조건 중 하나를 만족하는 여러 결과 출력 공식입니다.
인수 설명
012021 이후 FILTER 방식
=FILTER ( 출력범위, ISNUMBER ( MATCH ( 조건범위, 조건, 0 ) ) )인수 설명 자세히 보기(인수를 클릭하면 해당 영역만 강조됩니다. 여러 개를 함께 켜고 끌 수 있습니다.)
동작 원리
MATCH 함수와 ISNUMBER 함수가 조건 목록에 포함된 행을 구분하고 FILTER 함수는 해당 행의 이름을 한 번에 반환합니다.
2021 이후 FILTER 방식의 예제 시트에서 F2:F5에 스필되는 네 이름의 계산 과정입니다. 단계마다 강조된 부분이 어떻게 계산되는지 살펴보세요.
MATCH 함수가 조건 목록의 위치를 찾습니다
MATCH 함수는 각 지역을 E2:E3의 서울, 대전과 비교합니다. 일치하면 조건 목록의 순번을, 일치하지 않으면 #N/A 오류를 반환합니다.
=MATCH ( B2:B8, E2:E3, 0 )
= {1;#N/A;2;#N/A;1;#N/A;2}
B2:B8의 각 지역이 조건 목록에서 발견된 위치입니다. ISNUMBER 함수가 포함 여부를 구분합니다
ISNUMBER 함수는 MATCH 함수가 숫자를 반환한 서울과 대전 행만 TRUE로 바꿉니다.
=ISNUMBER ( {1;#N/A;2;#N/A;1;#N/A;2} )
= {TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE}
서울 또는 대전인 행만 TRUE입니다. FILTER 함수가 일치하는 이름을 반환합니다
FILTER 함수는 TRUE인 1, 3, 5, 7번째 행의 이름을 골라 F2부터 세로로 스필합니다.
=FILTER ( A2:A8, {TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE} )
= {"김민준";"이도윤";"정우진";"오세훈"}
조건 중 하나를 만족하는 네 이름입니다. 02모든 버전 INDEX 배열 방식
=IFERROR ( INDEX ( 출력범위, SMALL ( IF ( ISNUMBER ( MATCH ( 조건범위, 조건, 0 ) ), ROW ( 출력범위 )-ROW ( 출력범위첫셀 )+1, "" ), ROWS ( 첫결과셀:현재결과셀 ) ) ), "" )인수 설명 자세히 보기
동작 원리
MATCH 함수와 IF 함수가 일치 행 번호만 남기고 SMALL 함수와 INDEX 함수가 번호 순서대로 이름을 반환합니다.
모든 버전 INDEX 배열 방식의 예제 시트에서 F2 셀이 김민준을 반환하는 계산 과정입니다. 단계마다 강조된 부분이 어떻게 계산되는지 살펴보세요.
MATCH 함수가 조건 목록의 위치를 찾습니다
MATCH 함수는 B2:B8의 각 지역이 E2:E3에 있으면 조건 목록의 순번을, 없으면 #N/A 오류를 반환합니다.
=MATCH ( B2:B8, E2:E3, 0 )
= {1;#N/A;2;#N/A;1;#N/A;2}
서울과 대전은 숫자, 다른 지역은 오류입니다. IF 함수가 원본 행 번호만 남깁니다
ISNUMBER 함수가 숫자인 위치만 TRUE로 바꾸면 IF 함수는 해당 행의 상대 번호 1, 3, 5, 7만 남깁니다.
=IF ( ISNUMBER ( {1;#N/A;2;#N/A;1;#N/A;2} ), ROW ( A2:A8 )-ROW ( A2 )+1, "" )
= {1;"";3;"";5;"";7}
조건과 일치하는 원본 행의 상대 번호입니다. SMALL 함수가 다음 행 번호를 꺼냅니다
F2에서 ROWS 함수는 1을 반환하므로 SMALL 함수는 첫 번째로 작은 행 번호 1을 반환합니다. 수식을 아래로 채우면 순번이 2, 3, 4로 늘어나 3, 5, 7을 차례대로 반환합니다.
=SMALL ( {1;"";3;"";5;"";7}, ROWS ( $F$2:F2 ) )
= 1
F2에서 사용할 첫 번째 일치 행 번호입니다. INDEX 함수가 이름을 반환합니다
INDEX 함수는 A2:A8의 첫 번째 값인 김민준을 F2에 반환합니다. F3:F5에서는 행 번호 3, 5, 7에 있는 이름을 같은 방식으로 반환합니다.
=INDEX ( A2:A8, 1 )
= "김민준"
F2에 출력되는 첫 번째 결과입니다.
감사합니다