본문 바로가기
Research/Google products

Googlesheet_순환 함수(ARRAYFORMULA)

by RIEM 2022. 1. 20.
728x90

자료 출처 : 일잘러의 비밀, 구글 스프레드 시트, 강남석 지음

5.3 순환 함수(ARRAYFORMULA)

Arrayformula 함수를 활용해 단일 인수 받는 함수들이 배열 인수를 받게하여 배열 함수로 만들어보자. 단일 조건 인수를 바꿔가며 결과값을 계산해주기 때문에 순환 함수라고도 표현할 수 있다. 이를 활용하면 수식 복사&붙여넣기를 없앨 수도 있다.

 

ARRAYFORMULA로 알아보는 함수 구조

ARRAYFORMULA는 여러 셀에 같은 함수를 입력하려 할 때 한 셀에만 입력하여 그 효과를 보게 해주는 함수다. 이를 사용하면 자동 채우기로 함수를 복붙할 필요가 없다. 

 

기존 함수와 arrayformula 함수를 비교해보자.

 

기존 함수

하나의 함수에 하나의 결과값만 반환된다.

ARRAYFORMULA

arrayformula는 인수로 범위를 받기 때문에 값의 범위를 배열로 바꿔주었다.

 

그러니 결과도 배열로 나타난다.

 

이를 응용해보자

내선번호 뒷자리 2개를 추출하는 함수를 mid 함수로 사용할 때 arrayformula를 활용하면 한 큐에 적용시킬 수 있다.

 

자동으로 계산되는 생년월일과 이메일 주소 만들기

요렇게 만들 수 있다.

중간에 직원이 늘어도 자동으로 만들어준다.

하단에 빈칸에도 자동으로 이메일 주소가 생성되었다. 이러한 에러를 반영하여 다시 코드를 수정해보자.

 

 

=arrayformula(if($C2:$C<>"",$C2:$C&"company.com", ""))

 

여기서 <>는 not equal to 의 의미다. 즉, 빈칸이 아닌 경우에만 함수를 시행하라는 의미다. 파이썬의 !=로 보면 되겠다.

 

생년 월일 코드도 이렇게 바꿔주었다.

 

arryaformula 단축키

 

위와 같이 작성하고 ctrl + Shift + Enter을 누르면 자동으로 arrayformula가 입혀진다. 

 

Arrayformula와 배열로 vlookup에서 복수 인덱스 호출

vlookup 시 전화번호 뿐만 아니라 본부 열까지 중괄호로 ‘{3, 4}’ 가져왔다. 

 

arrayformula는 vlookup의 키값 뿐만 아니라 열 인덱스 역시 배열로 인수로 넣을 수 있게 해준다.

 

ARRAYFORMULA 고려사항

ARRAYFORMULA와 함께 사용할 수 없는 함수

arrayformula는 단일값을 인수로 받는 함수와 함께 사용한다. 반대로 배열 또는 여러 인수를 처리하는 함수는 arrayformula와 함께 사용하기 어렵다고 볼 수 있다. 

  • and, or, sumifs, maxifs, countifs, index(match()) 등

 

  • AND -> AND(조건식, 조건식)
  • OR -> OR(조건식, 조건식)
  • SUMIFS(합계범위, 조건범위 1 = A, 조건범위 2 = B) -> SUMIF(조건범위1&조건범위2, A&B, 합계범위)와 

구글 업데이트

구글 안내에 따르면 곧 ARRAYFORMULA 없이 함수를 배열 수식으로 처리할 수 있도록 업데이트할 예정이라 한다.

처리 속도

ARRAYFORMULA는 기능적이지만 속도 부하가 심하다. 시트 전체 성능을 떨어뜨리기 때문에 꼭 필요한 기능인지 자문해볼 필요가 있다.

 

728x90

댓글