본문 바로가기
WeekdayLife/excel

[엑셀] 배열함수 안에서 와일드카드 문자 사용하기

by JO_i 2020. 2. 17.

sumif 와 sum배열함수

두 가지 함수 사용에 있어 차이는 뭐라고 생각이 들지 모르겠다.

개인적인 생각은 sumif는 조건에 와일드카드문자(*)를 사용할 수 있다는 장점을 가지고,

sum배열수식은 조건을 정의하기 위해 다른 함수를 사용할 수 있다는 장점을 가지는 정도겠다.

 

 

배열함수 내에서의 와일드카드문자

배열함수 내에서, find함수를 사용해서 와일드카드문자(여기서는 *)를 대체해서 사용하는 방법이었다.

 

아래 표에서, 입금은행이

- 국민/기업은행 이면 "국민은행 또는 기업은행" 표시

- 우리은행 이면 "우리은행" 으로 표시

하려고 한다.

 

 

 

 

사용된 수식을 보면 입금은행 셀에서 "국민" 또는 "기업" 문자열을 FIND 함수로 찾고,

이를 COUNT 함수로 에러가 아닌값을 숫자로 변환,

결과가 0일 경우(같은 값이 없을 경우)IF 함수에서 FALSE 값인 "우리은행"을 반환하고,

결과가 1 이상일 경우(같은 값이 있을 경우),IF 함수의 TRUE 값을 반환하게 된다.

 

길게 적었지만, 별건 없다.

 

 

영역참조 배열수식에서 사용

위에서는 단일 셀값에 대한 처리였다면,

일반적인 배열함수에 이를 적용하는 방식은 여러가지가 있을 수 있지만,

여기서 사용한 방법은 FIND 함수에서 찾아진 에러 값을ISERROR 함수로 TRUE로 처리하는 방법이다.

 

위의 표를 아래 요약 테이블로 정리를 하려고 한다.

- 요약 테이블 맨 왼쪽에 있는 입금은행 열을 기준으로 값을 찾아야 한다고 하자

** 은행이름이 앞 두자리만 있으므로 조건에 와일드카드 문자 사용이 필요하다

** 위 테이블에서 은행이름열은 '은행' , 금액은 '금액' 으로 영역에 대한 이름정의를 해두었다.

 

 

두 가지 방법 중 뭘 사용해도 값은 동일하게 나온다. 사용된 수식을 살펴본다.

 

- SUMIF 수식은 간단하다. 와일드카드문자를 &로 연결해서 사용하였다.

- SUM 배열수식은 FIND 함수와 ISERROR함수, NOT함수를 연결해서 사용하였다.

- FIND에서 발생한 에러(#VALUE)는 ISERROR 함수에 의해 TRUE가 되고, 숫자 값은 FALSE가 된다.

- NOT으로 TRUEFALSE를 서로 바꿔준다.

 

 

다중조건 배열수식에서 사용

위의 경우라면, 구지, 복잡한 함수들을 동원해서 수식을 작성할 필요가 없다.

아래와 같은 경우는 어떨까?

 

[23일 기업은행 입금금액]

: 위에 작성된 배열수식을 2가지 조건으로 연결하였다. 23일은 일자를 텍스트형태로 바꿔서 조건을 달아주었다.

 

[금요일 우리은행 또는 기업은행 입금금액]

: 위와 마찬가지로 2가지 조건으로 연결하였다. 금요일은 일자를 텍스트형태로 바꿔서 조건을 달아주었다.
: 은행이름은 find 함수에 배열을 넣는 방식으로 두가지 경우를 모두 포함하도록 하였다.

 

 

복잡하지만 유용함

수식은 복잡해졌지만, 다중 조건을 처리하는 sumifs 함수 대비해서 더 강력한 수식을 만들 수 있다.

이 정도 배열수식을 컨트롤할 수 있다면, 다른 배열수식이 등장했을때, 무리없이 처리가 가능할 것이다.

F9 키를 통해 미리 결과를 확인해본다면, 적절하게 수식을 만들어 갈 수 있을 것이다.

 

긴 글보다는 영상으로 보시는게 나을수도 있습니다만, 좀 지루할 수 있습니다. ㅋㅋ