본문 바로가기

카테고리 없음

[구글 시트] 2중 종속 드롭다운 (Dependent Dropdown) 만들기

데이터를 정리할 때 드롭다운으로 목록을 만들고 싶은데, 상위 항목과 하위 항목이 있고 서로 연계가 되도록 제작할 때가 있다.

 

에를 들어 채소와 과일이라는 상위 항목이 있고,

채소를 선택하면 양파,마늘,무

과일을 선택하면 오렌지,사과,바나나만 드롭다운으로 표시해야 하는 식이다.

 

 

 

2중 종속 드롭다운을 만드는 방법은 다음과 같다.

 

1. 상위항목이 하위 항목과 대응되도록 테이블을 만들기

왼쪽에는 상위 항목, 오른 쪽에는 하위 항목을 나열하기

2. Join 함수로 하위 항목들을 하나의 셀 값으로 합치기

2중 종속 드롭다운을 만들 때 vlookup을 사용할 예정인데, 이를 위해서는 1개의 상위항목과 대응되는 1개의 셀 값이 필요하다.

 

그래서 아래와 같이 Join 함수를 이용해서 여러 하위 항목들을 하나의 값으로 합친 열을 삽입한다.

3. 상위항목 드롭다운을 생성

상위항목 셀을 클릭한 후, 데이터 → 데이터확인 → 범위에서의 목록을 클릭한 후 과일,야채가 있는 셀을 드래그한다.

그리고 확인을 누른다. 그러면 우측 하단에 화살표가 생기면서 드롭다운 셀이 완성된다.

이 셀을 복사한 후 밑의 셀에도 그대로 붙여넣으면 모든 셀에 드롭다운이 적용된다.

드롭다운이 완성된 모습

4. 하위항목 드롭다운 선택지를 생성하기

 

각 행의 상위항목이 정해지면, 거기에 맞는 선택지가 행마다 나오도록 작업을 해야 한다.

 

이를 위해서

① 2단계에서 만든 테이블을 이용해서 Vlookup으로 하나의 셀로 합쳐진 선택지 항목을 가져오고

② 가져온 항목을 다시 split이라는 함수를 이용해서 각 열로 배분하는 작업을 한다.

 

 

5. 하위 항목 선택지 범위로 드롭다운을 만들기

 

하위항목 드롭다운을 만드는 것이 조금 까다로운 이유는,

하위항목 드롭다운 범위는 행마다 다르기 때문이다.

 

그래서 전체 열을 선택해서 한번에 데이터 확인 범위를 설정하면, 상위항목이 달라질 때다 범위가 달라지는 드롭다운을 만들 수 없다.

 

그래서 행마다 드롭다운 범위를 따로 설정해줘야 한다.

 

우선 아래와 같이 첫번째 행을 설정해준다.

 

 

 

그리고 그 행을 복사한 다음 아래 행에 붙여준다. (또는 우측 하단의 십자가를 잡고 아래로 드래그해준다)

함수가 적용되는 셀의 경우 아래로 드래그하면 자동으로 행 마다 함수가 다르게 적용되니까,

여기에서도 그 방법을 적용해보는 것이다.

그런데 첫 행의 상위항목에 따라서만 드롭다운 항목들이 바뀐다.

 

이런 현상이 발생하는 이유는 구글 시트에서 별도로 절대참조/상대참조를 지정하지 않으면, 드롭다운 범위는 다 절대참조가 되기 때문이다.

 

그래서 처음 범위를 설정할 때 열은 고정하고 행에 따라서는 범위가 바뀌도록 설정하면 문제가 해결된다.

 

 

여기까지 완료되었으면, 하우항목_선지 열은 숨겨준다.

 

하위항목_선지는 드롭다운을 만들기 위한 보조 범위이기 때문에 열을 숨기거나, 다른 시트에 옮겨두는 것이 좋다.

 

 

 

고급) 새로 추가되는 행에 대해서도 드롭다운을 적용하고 싶으면?

새로 추가되는 행에 대해서도 2중 종속 드롭다운이 적용되도록 하고 싶을 때가 있다.

상위항목과 하위항목 드롭다운은 지금 마지막 행까지 적용이 되어 있다면, 행을 추가하면 자동으로 신규 행에도 적용이 된다.

 

보조 범위인 하위항목_선택지는 vlookup을 사용했는데, 이 부분도  Arrayformula(배열함수)로 바꿔주면 된다.