안녕하세요, 리스틀리입니다.😀
시트 속에서 원하는 정보를 찾는 방법은 다양합니다. 많이 사용하는 방법으로는 Ctrl+F 단축키나 필터 기능 등을 꼽아 볼 수 있을 텐데요. 한 번에 여러 결과를 보기 어렵거나, 원하는 결과만 필터링해서 보는 과정이 번거로워 아쉬움을 느끼셨던 분이라면 오늘의 레터에 집중해 주세요!
구글시트와 함수만 가지고 썸네일과 같은 실시간 검색창을 만들어 보겠습니다!😆
|
|
|
STEP 1. 데이터를 준비하고 시트 추가하기 |
|
|
우선 검색하고자 하는 원본 데이터를 준비합니다. 저는 리스틀리를 통해 쇼핑몰에서 판매 중인 공기청정기 상품 데이터를 준비했는데요. 위 데이터는 그룹추출 기능을 통해 상품 목록 27페이지를 한 번에 추출하고, 제가 필요한 데이터만 골라 1차 정제한 상태입니다.
|
|
|
하단의 +아이콘을 클릭하여 검색창을 만들 새 시트를 하나 생성해주시고요. |
|
|
새로 생성한 ‘검색시트’의 원하는 공간에 타이틀을 붙여 넣고, 필요한 내용만 남겨줍니다.
저의 경우에는 원본 데이터에서 제품명/면적/판매가/평점/리뷰수만 검색되어도 될 것 같아 해당 내용만 남기기로 했어요. 여기서 잠깐! 위 이미지에 표시된 것과 같이 데이터 원본에서 각 항목의 원래 열은 A, B, E, F, G 열임을 기억해 주세요. 🙂 |
|
|
STEP 2. 본격적으로 검색창 세팅을 시작해봅시다. |
|
|
일단 타이틀 아래에 검색된 데이터가 반영될 지점에 기본 쿼리 함수를 작성하여 데이터가 잘 옮겨져 오는지 확인합니다.
=QUERY('데이터 모음'!A2:H, "SELECT A,B,E,F,G")
위 함수는 아래와 같은 명령을 담고 있어요.
=QUERY('데이터 모음'!A2:H, -> '데이터 모음' 시트 A2셀부터 H열 전체 범위(데이터가 존재하는 범위)
"SELECT A,B,E,F,G") -> 해당 범위 안의 A,B,E,F,G 열만 반환해라
|
|
|
데이터와 타이틀이 잘 매칭되었다면, 함수에 셀 참조를 걸기 전 검색어를 입력할 공간, 카테고리 정렬을 배치하고 싶은 공간 등 검색창을 구성하는 요소들의 위치를 원하는 대로 잡아줍니다. 이때 가능한 셀 병합은 하지 않는 게 좋아요.
|
|
|
그 후 검색 결과에서 검색어가 입력될 셀을 참조할 수 있도록 쿼리 함수에 해당 내용을 추가합니다. 저는 B3 셀에 검색어를 입력할거예요.
=QUERY('데이터 모음'!A2:H, "SELECT A,B,E,F,G WHERE A CONTAINS '"&B3&"'")
-> A열(원본데이터)에서 B3셀에 있는 검색어를 포함하고 있는 데이터만 가져와라.
+) 셀 참조 시 따옴표에 주의하세요.‘ “ &셀& ” ’ 과같이 && 사이에 셀 이름을 넣고, 큰따옴표(" ")로 묶은 후, 작은따옴표(' ')로 묶어준 형태입니다.
사실 여기까지만 하셔도 검색창의 기본 세팅은 끝입니다.😉
지금부터는 위에서 위치를 잡아둔 각 요소에 맞춰 부가적인 기능들을 조금씩 더해볼게요.
|
|
|
검색 결과에서 특정 검색어를 제외한 결과만 보고 싶은 경우를 위해 쿼리 함수에 제외 단어도 추가를 해보겠습니다.
=QUERY('데이터 모음'!A2:H, "SELECT A,B,E,F,G WHERE A CONTAINS '"&B3&"' AND NOT A CONTAINS '"&C3&"'")
-> B3의 검색어는 포함하지만, C3에 있는 데이터는 포함하지 않는 데이터를 가져와라.
여기까지 따라오셨다면 C3 셀에 데이터가 없는 경우에는 결과가 나오지 않으실 텐데요. 이 부분에 대한 수정은 STEP4에서 다시 다루도록 하겠습니다.😀
|
|
|
위 이미지의 루트대로 메뉴에서 삽입→드롭다운 을 클릭하여 정렬할 항목들을 추가합니다.
검색 결과에 제품명/면적/판매가/평점/리뷰 데이터가 있으므로 이 항목들을 전부 추가해 주었는데요. 드롭다운 항목은 우리가 알아보기 위한 임의의 텍스트이므로 이 상태 그대로는 셀 참조에 사용할 수 없어요.😔
그래서 임의의 셀에 드롭다운 항목 선택 시 대치되는 데이터를 연동해 주도록 하겠습니다.
|
|
|
위 이미지와 같이 인접한 셀에 드롭다운 항목 안에 있는 데이터와 원본 데이터의 열 이름을 매칭해줍니다. 지정한 셀의 내용이 “제품명” 이면 A를 반환하고 “면적" 이면 B를 해당 셀에 반환하도록 =IFS() 함수를 사용해 주었습니다.
=IFS(E5="제품명", "A", E5="면적", "B", E5="판매가", "E", E5="평점", "F", E5="리뷰", "G")
|
|
|
정렬방식도 위와 동일한 방식으로 세팅해줍니다.
=IFS(F5="내림차순", "DESC", F5="오름차순","ASC")
-> F5란의 데이터가 내림차순이면 DESC를, 오름차순이면 ASC를 반환해라.
|
|
|
그리고 쿼리함수에 위와같은 정렬이 반영될 수 있도록 함수를 추가합니다.
=QUERY('데이터 모음'!A2:H, "SELECT A,B,E,F,G WHERE A CONTAINS '"&B3&"' AND NOT A CONTAINS'"&C3&"' ORDER BY "&E6&" "&F6&"",0)
ORDER BY 다음에 참조되는 셀은 드롭다운 항목이 추가된 셀(E5, F5)이 아니라, 드롭다운의 각 항목을 선택함에 따라 대치된 데이터가 반환되는 셀(E6, F6)을 추가해야해요.
함수를 적용한 후 정렬 필터를 변경해 보니 위와 같이 잘 반영되었습니다. 🙂
|
|
|
+) 대치된 데이터가 반환되는 셀은 시각적으로 불필요하니 글씨를 흰색으로 바꿔 보이지 않도록 해두시면 됩니다.😉
|
|
|
검색 시트를 구성하는 기타 요소들도 함수를 추가하여 값을 넣어줍니다.(이 부분은 생략가능)
="검색결과 "&COUNTA(B8:B)&" 건"
-> 결과가 총 몇건인지 표시합니다. 괄호() 안에는 제품명 범위를 입력하시면 됩니다.
=NOW()
-> 이 시트에 변동사항이 있을때마다 업데이트 되는 함수입니다.
|
|
|
STEP 2. 에서 발견했던 오류입니다. 제외단어에 값이 없으면 검색이 되지 않는다...!!! 🫨
현재까지 만들어진 함수를 바탕으로, 제외단어 셀에 데이터가 없는 경우에는 검색어를 포함한 데이터만 나오도록 조치가 필요해 보입니다. 그리고 결과가 없는 경우에는 ‘검색결과가 없습니다’와 같이 문구가 표시되면 좋겠어요. 물론 직접 수정할 수도 있겠지만, 시간을 아끼기 위해우리의 친구 GPT를 잠시 소환해 보겠습니다.ㅎㅎ |
|
|
PROMPT =QUERY('데이터 모음'!A2:H, "SELECT A,B,E,F,G WHERE A CONTAINS '"&B3&"' AND NOT A CONTAINS'"&C3&"' ORDER BY "&E6&" "&F6&"",0)
위의 구글시트 쿼리함수에서 수정이 필요해. C3셀이 비어있는경우, B3의 데이터만 포함하는 결과를 표현하도록 변경하고, 검색결과가 없는 경우 “검색된 결과가 없습니다"라는 문장이 반환되도록 해줘.
GPT의 답변
=IFERROR(IF(ISBLANK(C3), QUERY('데이터 모음'!A2:H, "SELECT A,B,E,F,G WHERE A CONTAINS '"&B3&"' ORDER BY "&E6&" "&F6&"",0), QUERY('데이터 모음'!A2:H, "SELECT A,B,E,F,G WHERE A CONTAINS '"&B3&"' AND NOT A CONTAINS'"&C3&"' ORDER BY "&E6&" "&F6&"",0)),"검색된 결과가 없습니다") |
|
|
최종적으로 수정된 함수를 적용하고 다시 검색을 해보았습니다. 제외단어가 없을때도, 있을때도 결과가 잘 반환되고 있네요 🙂 |
|
|
상단 메뉴에서 보기→표시→격자선의 체크를 해제해주시면 좀 더 깔끔한 화면으로 보실 수 있습니다. 원하는 색, 교차색상 등 다양한 디자인도 마음껏 적용해보세요.😍 |
|
|
[NOTICE] 구독자 여러분! 한가지 소식이 있습니다.😢 보다 심도있는 내용과 유익한 정보를 제공하기 위해, 그동안 매주 수요일에 찾아가던 리스틀리 뉴스레터가 앞으로 격주로 발행될 예정입니다. 여러분께 더 가치있는 내용을 준비하는 시간을 갖고자 하는 것이니, 계속해서 리스틀리에 많은 관심 부탁드립니다!
|
|
|
💌
오늘의 뉴스레터, 어떻게 보셨나요?
뉴스레터에서 다뤄줬으면 하는 내용이 있으시다면
아래 버튼을 클릭해 소중한 의견을 남겨주세요. |
|
|
본 메일은 리스틀리 마케팅 정보 수신에 동의하신 회원님을 대상으로 발송되었습니다.
|
|
|
|
|