주요 함수의 처리속도

데이터 행이 늘어나고 수식이 많아지니, 처리속도가 현저히 느려짐을 느낀다.
배열수식과 같은 역할을 할 수 있는 함수들의 처리속도에 대하여 chatGPT에게 질문을 해본다.



실망스러운 DSUM

뭔가 있어 보이는 함수명 때문에 가장 큰 기대를 했지만, 아쉽게도 성능은 그렇지 못한가보다.
조건영역에 대한 문자열을 해석하는 시간이 더 소요된다고 한다.

img



의외로 sumifs

{sum(if()} 배열수식을 sumproduct 로 변경해서 직접 테스트한적이 있었는데, 거의 차이가 없었다.
조건이 많았는지 뭔지는 모르겠지만, 의외로 sumifs 함수가 가장 빠르다고 하니…..
다시 테스트해볼까 하다가, 엄두가 안나서 멈춰있다.

img



실사용 테스트

약간의 속도차이가 있다고 하더라도, 사용이 불편하면 곤란하기 때문에, 흔히 사용하게 될 and / or 조건이 잘 먹히는지 사용 예시를 적어본다.
아래 그림을 확인해 보자.

① 번의 수식이 일반적인 sumifs의 사용이다. 기본적으로 모든 조건은 and로 묶이게 된다.
② 번은 or 조건을 먹이기 위해, {x,x,x} 를 사용했다. 이 방식은 애석하게도 2019버전은 안되고, 365에서 사용이 가능하다.
③ 번은 sum과 filter 함수의 조합으로 사용은 sum / if 배열함수와 거의 동일하다.
④ 번은 sum / if 배열함수이다.

img



conclusion

결론은 보이는 것과 같이,

  • ② 번 혹은 ④ 번이 함수가 간결해 보인다. 이 중 처리속도가 ②번이 빠르다고 했으므로 ② 번이 나아 보이는 듯하나,
  • 회사에서 2019버전을 사용하고 있으니, 어쩔 수 없이 ④ 번을 사용해야한다.

그래도 각 방식별로 사용법을 알아둬야, 나중에 사용할 수 있을 것 같으니, 알아두는 것이 좋겠다.

끝.