수식이 바뀌면, row들이 자동으로 정렬되도록 한다.

jinwook han·2020년 9월 2일
0

특정 수식 결과값으로 행들을 정렬한다.
수식이 바뀌는 일이 잦은데, 수식이 바뀌면 알아서 행들이 정렬이 되게끔 하고 싶다.

목표

수식이 바뀌면 행들이 알아서 정렬이 된다.
수식을 관리하는 지점은 한 곳이다.

수식과 행들을 연동한다.

첫 번째 단계로, 수식이 바뀌면 그 수식을 쓰는 모든 행들이 적용되게끔 한다.

  1. 수식을 바꿀 수 있고,
  2. 수식과 행이 연동되게끔 하려면
    custom function을 만들어야 한다.

custom function

https://developers.google.com/apps-script/guides/sheets/functions
가이드 문서에 custom function 만드는 방법이 나와있다.

  1. cusotm function을 만든다.
function HELLO(input) {
  return input * 3;
}
  1. save 한다.

  2. 이제 goole spreadsheet에서 HELLO 함수를 사용할 수 있다.

자동으로 정렬하는 하는 방법

sort 함수를 사용한다.
sort의 결과는, 원본 데이터가 바뀜에 따라 자동으로 업데이트가 된다.

예시:

=sort(B9:F12,5,0)

B9:F12 -> 원본 데이터의 장소다.
5 -> 정렬 기준이 되는 데이터 열이다.
0 -> 오름차순 여부다.

수식을 수정함으로써 자동으로 정렬한다

원본 데이터

custom function, sort를 활용했다.
수식을 수정함으로써 자동으로 행들을 정렬할 수 있다.

	A열	B열	C열	D열	E열
1	교대	1	2	3	11
2	서울	4	5	6	29
3	강남	1	2	3	11
4	고담	1	1	3	8

여기서 5열을 더 자세히 보면,

=HELLO(A1,A2,A3)
=HELLO(B1,B2,B3)
=HELLO(C1,C2,C3)
=HELLO(D1,D2,D3)

HELLO함수에 A열,B열,C열의 값이 매개변수로 들어간 결과값들이다.

HELLO 함수는 script에 아래의 내용으로 적혀있다.

function HELLO(input1, input2, input3) {
 
  return input1 * 2 + input2 * 3 + input3 * 1;
}

정렬 적용

원본 데이터에 정렬을 적용한다.

=sort(A1:E4,5,0)

정렬의 기준값(두번째 매개변수 5)은 HELLO 함수의 결과물이다.

결과:

서울	4	5	6	29
교대	1	2	3	11
강남	1	2	3	11
고담	1	1	3	8

HEELO 함수 결과값 기준으로 내림차순으로 정렬했다.

수식을 바꾼다.

이제 HELLO 수식의 내용을 바꾼다.
두 번째 input에 가중치를 더 주자.

function HELLO(input1, input2, input3) {
 
  return input1 * 2 + input2 * 100 + input3 * 1;
}

두번째 매개변수 input2의 가중치를 3에서 100으로 올렸다.

script에서 수식 내용을 바꾼 후, save를 누른다.

수식만 바꿈으로써, 행들을 새로운 기준으로, 자동으로 정렬한다

정렬결과를 다시 본다.

서울	4	5	6	514
교대	1	2	3	205
강남	1	2	3	205
고담	1	1	3	105

행들의 순서가 자동으로 바뀌었음을 확인할 수 있다.
그리고, HELLO 함수가 바뀌었기 때문에, 행들에 적용된 HELLO 함수의 결과값도 바뀌었다.

custom function, sort 기능을 사용했다.
사용함으로써,
1. 수식 관리 지점을 하나로 줄이고,
2. 수식이 새로워질 때마다 행들을 자동으로 정렬할 수 있다.

참고자료

custom function:
https://www.youtube.com/watch?v=6QhEXOwC6pA
https://developers.google.com/apps-script/guides/sheets/functions

sort 기능:
https://www.spreadsheetclass.com/google-sheets-sort-function/

0개의 댓글