목차
이 빠른 강의에서는 수식을 사용하여 Excel에서 동적으로 필터링하는 방법을 배웁니다. 중복, 특정 텍스트가 포함된 셀, 여러 기준 등을 필터링하는 예.
일반적으로 Excel에서 어떻게 필터링합니까? 대부분의 경우 자동 필터를 사용하고 더 복잡한 시나리오에서는 고급 필터를 사용합니다. 빠르고 강력하기 때문에 이러한 방법에는 한 가지 중요한 단점이 있습니다. 즉, 데이터가 변경될 때 자동으로 업데이트되지 않으므로 정리하고 다시 필터링해야 합니다. Excel 365의 FILTER 기능 도입은 오랫동안 기다려온 기존 기능의 대안이 되었습니다. 이와는 달리 Excel 수식은 워크시트가 변경될 때마다 자동으로 다시 계산되므로 필터를 한 번만 설정하면 됩니다!
Excel FILTER 기능
FILTER 기능은 Excel은 지정한 기준에 따라 데이터 범위를 필터링하는 데 사용됩니다.
함수는 동적 배열 함수 범주에 속합니다. 결과는 수식을 입력하는 셀에서 시작하여 셀 범위로 자동으로 확장되는 값의 배열입니다.
FILTER 함수의 구문은 다음과 같습니다.
FILTER(배열, 포함 , [if_empty])여기서:
- 배열 (필수) - 필터링하려는 값의 범위 또는 배열입니다.
- Include (필수) - 부울 배열로 제공되는 기준(TRUE 및 FALSE 값).
그수백 개의 열이라도 가장 중요한 몇 개의 열로 결과를 제한할 수 있습니다.
예 1. 일부 인접한 열 필터링
일부 인접 열을 표시하려는 경우 FILTER 결과인 경우 반환할 열을 결정하는 인수가 이 인수이므로 array 의 해당 열만 포함합니다.
기본 FILTER 수식 예에서 처음 2개의 열을 반환한다고 가정합니다. ( 이름 및 그룹 ). 따라서 array 인수에 A2:B13을 제공합니다.
=FILTER(A2:B13, B2:B13=F1, "No results")
결과적으로 F1:<에 정의된 대상 그룹의 참가자 목록을 얻습니다. 3>
예 2. 인접하지 않은 열 필터링
FILTER 함수가 인접하지 않은 열을 반환하도록 하려면 다음 영리한 트릭을 사용하십시오.
- 배열 에 대한 전체 테이블을 사용하여 원하는 조건으로 FILTER 수식을 만듭니다.
- 다른 FILTER 함수 안에 위 수식을 중첩합니다. "래퍼" 기능을 구성하려면 include 인수에 대해 TRUE 및 FALSE 값 또는 1과 0의 배열 상수를 사용합니다. 여기서 TRUE(1)는 보관할 열을 표시하고 FALSE(0)는 열을 표시합니다. 제외할 열입니다.
예를 들어 Names (첫 번째 열) 및 Wins (세 번째 열)만 반환하려면 {1, 외부 FILTER 함수의 include 인수에 대한 0,1} 또는 {TRUE,FALSE,TRUE}:
=FILTER(FILTER(A2:C13, B2:B13=F1), {1,0,1})
또는
=FILTER(FILTER(A2:C13, B2:B13=F1), {TRUE,FALSE,TRUE})
제한 방법FILTER 함수에 의해 반환된 행 수
FILTER 수식이 상당히 많은 결과를 찾았지만 워크시트의 공간이 제한되어 있고 아래 데이터를 삭제할 수 없는 경우 FILTER 함수가 반환하는 행 수를 제한할 수 있습니다. .
F1:
=FILTER(A2:C13, B2:B13=F1)
의 대상 그룹에서 플레이어를 끌어오는 간단한 수식의 예에서 어떻게 작동하는지 살펴보겠습니다. 우리의 경우에는 4개의 행을 찾습니다. 하지만 두 사람을 위한 공간이 있다고 가정해 봅시다. 발견된 처음 2개의 행만 출력하려면 다음과 같이 해야 합니다.
- FILTER 수식을 INDEX 함수의 배열 인수에 연결합니다.
- INDEX의 row_num 인수는 {1;2}와 같이 세로 배열 상수를 사용합니다. 반환할 행 수를 결정합니다(이 경우 2개).
- column_num 인수는 {1,2,3}과 같은 수평 배열 상수를 사용합니다. 반환할 열(이 예에서는 처음 3개 열)을 지정합니다.
- 기준과 일치하는 데이터가 없을 때 발생할 수 있는 오류를 처리하려면 수식을 IFERROR 함수로 래핑할 수 있습니다.
완전한 수식은 다음과 같은 형식을 취합니다.
=IFERROR(INDEX(FILTER(A2:C13, B2:B13=F1), {1;2}, {1,2,3}), "No result")
큰 테이블로 작업할 때 배열 상수를 수동으로 쓰는 것은 상당히 번거롭다. 문제 없습니다. SEQUENCE 함수는 자동으로 일련 번호를 생성할 수 있습니다.
=IFERROR(INDEX(FILTER(A2:C13, B2:B13=F1), SEQUENCE(2), SEQUENCE(1, COLUMNS(A2:C13))), "No result")
첫 번째 SEQUENCE는 수직 배열을 생성합니다.첫 번째(유일한) 인수에 지정된 만큼의 일련 번호를 포함합니다. 두 번째 SEQUENCE는 COLUMNS 함수를 사용하여 데이터 세트의 열 수를 계산하고 동등한 수평 배열을 생성합니다.
팁. INDEX의 column_num 인수에 사용하는 가로 배열 상수에 모든 열이 아닌 특정 열 의 데이터를 반환하려면 해당 특정 숫자만 포함합니다. 예를 들어 1열과 3열에서 데이터를 추출하려면 {1,3}을 사용합니다.
Excel FILTER 기능이 작동하지 않음
Excel FILTER 수식에 오류가 발생하는 경우 다음 중 하나일 가능성이 높습니다.
#CALC! error
옵션 if_empty 인수가 생략되고 기준을 충족하는 결과가 없는 경우 발생합니다. 그 이유는 현재 Excel에서 빈 배열을 지원하지 않기 때문입니다. 이러한 오류를 방지하려면 수식에서 항상 if_empty 값을 정의해야 합니다.
#VALUE error
array 및 include 인수에 호환되지 않는 크기가 있습니다.
#N/A, #VALUE 등
include 인수의 일부 값이 다른 오류가 발생할 수 있습니다. 오류이거나 부울 값으로 변환할 수 없습니다.
#NAME 오류
이전 버전의 Excel에서 FILTER를 사용하려고 할 때 발생합니다. Office 365 및 Excel 2021에서만 사용할 수 있는 새로운 기능임을 기억해 주세요.
In새 Excel에서 실수로 함수 이름의 철자를 잘못 입력하면 #NAME 오류가 발생합니다.
#SPILL 오류
대부분 이 오류는 유출 범위에 있는 하나 이상의 셀이 완전히 비어 있지 않은 경우에 발생합니다. . 이를 수정하려면 비어 있지 않은 셀을 지우거나 삭제하십시오. 다른 사례를 조사하고 해결하려면 #SPILL을 참조하십시오! Excel의 오류: 의미 및 해결 방법.
#REF! error
여러 통합 문서 간에 FILTER 수식을 사용하고 원본 통합 문서가 닫힐 때 발생합니다.
Excel에서 데이터를 동적으로 파일링하는 방법입니다. 읽어 주셔서 감사합니다. 다음 주 블로그에서 뵙기를 바랍니다!
연습 통합 문서 다운로드
수식을 사용하여 Excel에서 필터링(.xlsx 파일)
높이(데이터가 열에 있는 경우) 또는 너비(데이터가 행에 있는 경우)는 array 인수와 같아야 합니다.FILTER 함수는 Microsoft용 Excel에서만 사용할 수 있습니다. 365 및 Excel 2021. Excel 2019, Excel 2016 및 이전 버전에서는 지원되지 않습니다.
기본 Excel FILTER 수식
처음에는 매우 간단한 몇 가지 사례에 대해 논의해 보겠습니다. 데이터를 필터링하는 Excel 공식이 작동하는 방식을 더 잘 이해합니다.
아래 데이터 세트에서 그룹 , 열(예: 그룹 C)에 특정 값이 있는 레코드를 추출한다고 가정합니다. 그렇게 하기 위해 B2:B13="C" 식을 include 인수에 제공합니다. 그러면 "C" 값에 해당하는 TRUE와 함께 필수 부울 배열이 생성됩니다.
=FILTER(A2:C13, B2:B13="C", "No results")
실제로 기준을 별도의 셀에 입력하는 것이 더 편리합니다. F1 키를 누르고 수식에서 직접 값을 하드코딩하는 대신 셀 참조를 사용합니다.
=FILTER(A2:C13, B2:B13=F1, "No results")
Excel의 필터 기능과 달리 이 함수는 원본 데이터를 변경하지 않습니다. 수식이 입력된 셀에서 시작하여 소위 유출 범위(아래 스크린샷의 E4:G7)로 필터링된 레코드를 추출합니다.
레코드가 없는 경우 지정한 기준과 일치하면 수식은 입력한 값을 반환합니다. if_empty 인수, 이 예에서 "결과 없음":
이 경우 아무것도 반환하지 않는 경우 마지막 인수에 빈 문자열("")을 제공합니다:
=FILTER(A2:C13, B2:B13=F1, "")
데이터가 아래 스크린샷과 같이 왼쪽에서 오른쪽으로 가로 로 구성된 경우, FILTER 기능도 잘 작동합니다. 소스 배열과 부울 배열의 너비가 같도록 array 및 include 인수에 대해 적절한 범위를 정의했는지 확인하십시오.
=FILTER(B2:M4, B3:M3= B7, "No results")
Excel FILTER 기능 - 사용 참고 사항
수식을 사용하여 Excel에서 효과적으로 필터링하려면 다음과 같은 몇 가지 중요한 사항에 유의해야 합니다.
- FILTER 기능은 원본 데이터가 구성된 방식에 따라 워크시트에서 결과를 세로 또는 가로로 자동으로 흘립니다. 따라서 항상 아래 오른쪽에 충분한 빈 셀이 있는지 확인하십시오. 그렇지 않으면 #SPILL 오류가 발생합니다.
- Excel FILTER 함수의 결과는 동적이므로 값이 입력되면 자동으로 업데이트됩니다. 원래 데이터 세트 변경. 그러나 array 인수에 제공된 범위는 새 항목이 소스 데이터에 추가될 때 업데이트되지 않습니다. 배열 의 크기를 자동으로 조정하려면 Excel 표로 변환하고 구조화된 참조를 사용하여 수식을 작성하거나 동적 명명 범위를 만드십시오.
Excel에서 필터링하는 방법 -수식 예
이제 기본 Excel 필터 수식이 어떻게 작동하는지 알았으므로 더 복잡한 작업을 해결하기 위해 수식을 확장할 수 있는 방법에 대한 통찰력을 얻을 시간입니다.
여러 기준으로 필터링(AND logic)
여러 기준으로 데이터를 필터링하려면 include 인수에 대해 두 개 이상의 논리식을 제공합니다.
FILTER(array, ( range1= criteria1) * ( range2= criteria2), "결과 없음")곱셈 연산은 AND 논리 로 배열을 처리합니다. , 모든 기준 을 충족하는 레코드만 반환되도록 합니다. 기술적으로는 다음과 같이 작동합니다.
각 논리식의 결과는 부울 값의 배열입니다. 여기서 TRUE는 1이고 FALSE는 0입니다. 그런 다음 동일한 위치에 있는 모든 배열의 요소가 곱해집니다. . 0을 곱하면 항상 0이 되므로 모든 기준이 TRUE인 항목만 결과 배열에 들어가고 결과적으로 해당 항목만 추출됩니다.
아래 예는 이 일반 공식이 작동하는 것을 보여줍니다.
예 1. Excel에서 여러 열 필터링
기본 Excel FILTER 수식을 조금 더 확장하여 그룹 (열 B) 및 <1의 두 열로 데이터를 필터링해 보겠습니다>Wins (열 C).
이를 위해 다음 기준을 설정합니다. F2에 대상 그룹의 이름을 입력하고( 기준1 ) 최소 필수 그룹 수를 입력합니다.F3( 기준2 )에서 승리합니다.
소스 데이터가 A2:C13( 배열 )에 있는 경우 그룹은 B2:B13( 범위1 ) 그리고 승리는 C2:C13( range2 )에 있으며 공식은 다음과 같은 형식을 취합니다.
=FILTER(A2:C13, (B2:B13=F2) * (C2:C13>=F3), "No results")
결과적으로 플레이어 목록을 얻습니다. 2승 이상을 확보한 그룹 A에서:
예 2. 날짜 사이의 데이터 필터링
먼저, 불가능하다는 점에 유의해야 합니다. Excel에서 날짜별로 필터링하는 일반 수식을 구성합니다. 다양한 상황에서 특정 날짜, 월 또는 연도로 필터링할지 여부에 따라 기준을 다르게 작성해야 합니다. 이 예의 목적은 일반적인 접근 방식을 보여주기 위한 것입니다.
샘플 데이터에 마지막 우승 날짜가 포함된 열(D열)을 하나 더 추가합니다. 이제 특정 기간(예: 5월 17일~5월 31일)에 발생한 승리를 추출합니다.
이 경우 두 기준이 동일한 범위에 적용됩니다.
=FILTER(A2:D13, (D2:D13>=G2) * (D2:D13<=G3), "No results")
여기서 G2와 G3은 필터링할 날짜입니다.
여러 기준으로 필터링(OR 논리)
데이터를 추출하려면 여러 OR 조건을 기반으로 이전 예제와 같은 논리식도 사용하지만 곱하는 대신 더합니다. 표현식에 의해 반환된 부울 배열이 합산되면 결과 배열은 기준을 충족하지 않는 항목에 대해 0을 갖습니다(즉, 모든기준은 FALSE임) 이러한 항목은 필터링됩니다. 하나 이상의 기준이 TRUE인 항목이 추출됩니다.
OR 논리로 열을 필터링하는 일반 수식은 다음과 같습니다.
FILTER(array, ( range1= criteria1) + ( range2= criteria2), "결과 없음")예를 들어, 또는 그 승리 횟수입니다.
소스 데이터가 A2:C13에 있고 승리가 C2:C13에 있고 관심 있는 승리 횟수가 F2 및 F3에 있다고 가정하면 공식은 다음과 같습니다.
=FILTER(A2:C13, (C2:C13=F2) + (C2:C13=F3), "No results")
결과적으로 어떤 플레이어가 모든 게임에서 이겼고(4) 어떤 플레이어가 한 번도 이기지 못했는지(0) 알 수 있습니다.
여러 AND 및 OR 기준에 기반한 필터
두 가지 기준 유형을 모두 적용해야 하는 상황에서 다음 간단한 규칙을 기억하세요. AND 기준은 별표(*)로 결합하고 OR 기준은 더하기 기호(+).
예를 들어, 주어진 승리 횟수(F2)를 가지고 있고 E2 또는 E3에 언급된 그룹에 속하는 플레이어 목록을 반환하려면 다음과 같은 논리 체인을 구축합니다. 식:
=FILTER(A2:C13, (C2:C13=F2) * ((B2:B13=E2) + (B2:B13=E3)), "No results")
그리고 다음 결과를 얻게 됩니다.
Excel에서 중복 항목을 필터링하는 방법
방대한 워크시트로 작업하거나 다른 소스의 데이터를 결합할 때 일부 중복 항목이 몰래 들어올 가능성이 종종 있습니다.
필터링 중복 항목 및 발췌고유 항목인 경우 위의 링크된 자습서에 설명된 대로 UNIQUE 기능을 사용하십시오.
목표가 중복 항목 필터링 인 경우, 즉 두 번 이상 발생하는 항목을 추출하는 것이라면 FILTER 기능을 사용하십시오. COUNTIFS와 함께.
아이디어는 모든 레코드에 대한 발생 횟수를 가져오고 1보다 큰 항목을 추출하는 것입니다. 횟수를 얻으려면 각 criteria_range / <에 대해 동일한 범위를 제공합니다. 1>criteria 다음과 같은 COUNTIFS 쌍:
FILTER( array, COUNTIFS( column1, column1, column2, column2)>1, "결과 없음")예를 들어, 3개 열 모두의 값을 기준으로 A2:C20의 데이터에서 중복 행을 필터링하려면 사용할 수식은 다음과 같습니다.
=FILTER(A2:C20, COUNTIFS(A2:A20, A2:A20, B2:B20, B2:B20, C2:C20, C2:C20)>1, "No results")
팁. 키 열 의 값을 기준으로 중복 항목을 필터링하려면 COUNTIFS 함수에 해당 특정 열만 포함하십시오.
Excel에서 공백을 필터링하는 방법
빈 셀을 필터링하는 수식은 실제로 여러 AND 기준을 사용하는 Excel FILTER 수식의 변형입니다. 이 경우 모든(또는 특정) 열에 데이터가 있는지 확인하고 하나 이상의 셀이 비어 있는 행을 제외합니다. 비어 있지 않은 셀을 식별하려면 다음과 같이 빈 문자열("")과 함께 "같지 않음" 연산자()를 사용합니다.
FILTER(array, ( column1 "") * ( column2 =""), "No results")A2:C12의 소스 데이터를 사용하여 행을 필터링합니다.하나 이상의 빈 셀을 포함하는 경우 다음 수식이 E3에 입력됩니다.
특정 텍스트가 포함된 셀 필터링
특정 텍스트가 포함된 셀을 추출하려면 FILTER 함수를 클래식 If cell contains 수식과 함께 사용할 수 있습니다:
FILTER(array, ISNUMBER(SEARCH(" text ", range )), "No results")작동 방식은 다음과 같습니다.
- SEARCH 함수는 지정된 범위에서 지정된 텍스트 문자열을 찾고 숫자(첫 번째 문자의 위치) 또는 #VALUE!를 반환합니다. 오류(텍스트를 찾을 수 없음).
- ISNUMBER 함수는 모든 숫자를 TRUE로, 오류를 FALSE로 변환하고 결과 부울 배열을 FILTER 함수의 include 인수로 전달합니다.
이 예에서는 플레이어의 성 을 B2:B13에 추가하고 G2에서 찾고자 하는 이름의 일부를 입력한 후 다음 수식을 사용하여 데이터 필터링:
=FILTER(A2:D13, ISNUMBER(SEARCH(G2, B2:B13)), "No results")
결과적으로 수식은 "han"을 포함하는 두 개의 성을 검색합니다.
필터링 및 계산 (Sum, Average, Min, Max 등)
Excel FILTER 함수의 멋진 점은 조건이 있는 값을 추출할 수 있을 뿐만 아니라 필터링된 데이터를 요약할 수 있다는 것입니다. 이를 위해 FILTER를 SUM, AVERAGE, COUNT, MAX, MIN 등의 집계 함수와 결합합니다.
예를 들어 F1에서 특정 그룹에 대한 데이터를 집계하려면 다음을 사용합니다.수식:
총 우승:
=SUM(FILTER(C2:C13, B2:B13=F1, 0))
평균 우승:
=AVERAGE(FILTER(C2:C13, B2:B13=F1, 0))
최대 우승:
=MAX(FILTER(C2:C13, B2:B13=F1, 0))
최소 승리:
=MIN(FILTER(C2:C13, B2:B13=F1, 0))
모든 수식에서 if_empty 인수에 0을 사용하므로 수식이 기준을 충족하는 값이 없으면 0을 반환합니다. "결과 없음"과 같은 텍스트를 제공하면 #VALUE 오류가 발생하며 이는 분명히 원하지 않는 것입니다 :)
대소문자 구분 FILTER 수식
표준 Excel FILTER 수식은 대소문자를 구분하지 않으므로 소문자와 대문자를 구분하지 않습니다. 텍스트 대소문자를 구분하려면 EXACT 함수를 include 인수에 중첩하십시오. 이렇게 하면 FILTER가 대소문자를 구분하는 방식으로 논리적 테스트를 수행하게 됩니다.
FILTER(array, EXACT( range , criteria ), "No results")가정 , A 및 a 그룹이 모두 있고 그룹이 소문자 "a"인 레코드를 추출하려고 합니다. 이를 수행하려면 다음 수식을 사용하십시오. 여기서 A2:C13은 소스 데이터이고 B2:B13은 필터링할 그룹입니다.
=FILTER(A2:C13, EXACT(B2:B13, "a"), "No results")
평소와 같이 대상 그룹을 미리 정의된 셀(예: F1)을 사용하고 하드코딩된 텍스트 대신 해당 셀 참조를 사용합니다.
=FILTER(A2:C13, EXACT(B2:B13, F1), "No results")
데이터를 필터링하고 특정 열만 반환하는 방법
대부분의 경우 단일 수식으로 모든 열을 필터링하는 것이 Excel 사용자가 원하는 것입니다. 그러나 소스 테이블에 10개 또는