공부/스프레드시트

[스프레드시트] 다른 시트에서 원하는 데이터만 뽑아오기 Importrange × query

_마디 2021. 12. 23. 10:22
반응형

[스프레드시트] 다른 시트에서 원하는 데이터만 뽑아오기 IMPORTRANGE × QUERY

 

 

1. 하고 싶은 거

원본 데이터가 있는 시트가 있고,
나는 다른 시트에 이 데이터를 받아오고 싶다.
그런데 내가 필요한 건 B열과 D열만 있으면 된다.

 

2. IMPORTRANGE 함수

다른 시트의 데이터를 가져온다고 하면 당장 생각나는 함수가 바로 IMPORTRANGE 다.

=IMPORTRANGE("가져올 데이터가 있는 시트 url","시트이름!시트범위")

연속되는 범위를 가져오고 싶다면 간단하게 할 수 있다.
데이터 중 B와 C열만 필요하다면 가져오는 범위를 B1:C로 지정하면 된다.

 

importrange 함수를 쓰려면 원본 데이트 시트의 소유권을 가지고 있어야 한다.

 

 

그런데 B열과 D열만 필요하다면?

당장 생각하면 B~D열을 가져와서 2차 가공을 하면 될 것 같다.
BUT IMPORTRANGE 함수의 최대 단점은 바로

느린 속도

IMPORTRANGE 함수는 아마도 시트를 켜는 순간부터 데이터를 가져오는 로직이 동작하는 것 같다.
예시 정도의 작은 데이터라면 금방 가져오겠지만 규모가 큰 데이터를 가져오는 속도는 굉장히 느리다.
가능하면 적게 끌어오는 게 좋다.

 

3. QUERY 함수 조합

그래서 사용하는게 IMPORTRANGE와 QUERY 함수의 콤비네이션

사실 굉장히 쉬워서 이렇게 찾아보지 않고도 생각을 해 낼 수 있는 방법이다.

QUERY함수의 데이터 범위에 IMPORTRANGE 함수를 써주면 된다.

=QUERY(IMPORTRANGE("https://docs.google.com/spreadsheets/d/1A1N29kBTqpKzy4uuQE-GC3s4EhKAAOQA7l9Y89RAkY8/edit#gid=2827193","시트26!A:E"), "select Col2, Col4")

QUERY문 안에 IMPORTRANGE를 쓰고 가져오고 싶은 조건을 사용하면 된다.
간단하게 SELECT 문만 사용했지만 QUERY에서 사용가능한 WHERE절이나 기타 문법들도 사용이 가능하다.

 

※ 열을 표현하는 방법만 체크를 하자.

동일한 시트 내에서 QUERY문을 사용할 때는 해당 열의 알파벳을 사용했는데,
여기서는 Col1, Col2 형식으로 표현한다. 대소문자도 구분을 해야 인식을 하니 염두하자.

 

 

반응형