Excel

필터와 필터 함수 (1)

별동산 2024. 7. 17. 08:42
반응형

1. 필터 명령

필터문제.xlsx
0.01MB

 

아래와 같이 일자별, 구분별, 상품이 있을 때

구분이 판매인 것의 일자와 상품을 구하려고 합니다.

 

홈 탭에서 '정렬 및 필터' 누르고, 그 아래 필터를 누릅니다.

 

그러면 일자, 구분, 상품 필드에 필터 버튼이 생기는데,

 

구분 옆의 필터 버튼을 누르면

모두 선택, 구매와 판매가 모두 체크되어 있는데,

 


구매의 체크를 해제하면 판매만 남으므로 확인 버튼을 누릅니다.

 

그러면 구분이 판매인 일자와 상품이 표시됩니다.

 

2. Filter 함수

가. 구문

=FILTER(array,include,[if_empty])

로서 array는 필터를 적용할 범위,

include는 조건에 해당하며

if_empty는 대괄호로 되어 있으므로 선택값으로 조건에 맞는 값이 없을 때 어떻게 처리할 것인가를 정해주는 것입니다.

 

나. 구분이 판매인 데이터 추출

B3셀의 필터를 해제, 다시 말해 모두에 체크한 후 확인 버튼을 눌러 필터를 해제합니다.

 

그러면 모든 데이터가 표시됩니다.

 

이제, E4셀에 =filter를 한 후 A4에서 C8셀을 지정합니다. 절대참조 형식으로 지정하지 않아도 된다는 점 참고 바랍니다.

그리고, include가 구분이 판매인 것이므로

B5:B8="판매"라고 입력합니다.

그리고 if_empty는 필요 없으므로 (괄호를 닫고) 엔터키를 누르면

머리글은 표시되지 않고, 구분이 판매인 데이터만 표시됩니다.

 

=FILTER(A3:C8,B3:B8="판매")

라고, A3셀부터 범위를 지정하고, 조건도 B3셀부터 지정해도 결과는 마찬가지로 머리글이 표시되지 않습니다.

 

다. VStack 함수와 결합

이때 머리글을 표시하려면

A3셀에서 C3셀을 복사해서  E3셀에 붙여 넣거나,

VStack함수를 이용할 수 있습니다.

 

Vstack함수는 데이터를 세로로 결합한 결과를 반환해 주는 함수입니다.

 

구문은 

=VSTACK(array1,[array2],...)

로서 배열을 순차적으로 지정합니다.

 

머리글 아래 필터된 결과를 추가해야 하므로

=VSTACK(A3:C3,FILTER(A4:C8,B4:B8="판매"))

라고,

A3셀에서 C3셀 범위를 지정하고, 그다음으로 필터 된 데이터를 입력합니다.

 

그런데 값이 정상적으로 표시되지 않고  #분산! 에러가 발생하는데,

이는 결과를 표시할 영역에 45455등 데이터가 있기 때문입니다.

 

따라서, E4셀에서 G5셀까지를 선택한 후 Delete키를 눌러 데이터를 지우면 원하는 결괏값이 표시됩니다.

 

라. 숫자를 월/일의 날짜 형식으로 바꾸기

45455등을 제대로 날짜로 표시하기 위해서는 E4:E5셀을 선택한 후

홈 탭 > 표시 형식 그룹에서 > 기타 표시 형식을 선택하고

 

사용자 지정 범주를 선택한 후 mm"월" dd"일"을 클릭하고 확인 버튼을 누르면 됩니다.

 

그러면 월/일로 표시됩니다.

 

필터문제 해답1.xlsx
0.01MB

반응형