본문 바로가기
사업지속/AppSheet

013-1 AppSheet Slices 로 구글 스프레드시트 데이터 필터링(선별) 하기 (소상공인, 1인기업 용)

by 자바라머신러닝_출판 2022. 8. 4.

구글 스프레드시트의 데이터를 선별하는 Slices에 대해 알아봅니다. 엑셀의 필터링과 같은 기능이며 필요한 데이터와 필요한 항목만 집중해서 보여주는 기능입니다. 이번의 데이터는 Ref 속성으로 관계가 형성된 구글 스프레드시트를 그대로 사용하므로 새로운 파일 생성은 하지 않습니다.

 

AppSheet의 Data > Slices (엑셀 필터링과 유사) : Slice명 = 업무 진척 현황

이번 사례에서는 업무 진척 과정 중 아직 종료되지 않은 업무만 선별하고 업무장소와 사원 정보(메일 주소)는 제외하되 사원 정보의 상세내역을 조회할 수 있는 새로운 Slice를 구성하고 Ui를 만드는 과정을 살펴보겠습니다.

AppSheet는 구글모든 항목, 모든 데이터를 보여주는 것으로 되어있습니다. 그러나 상황에 따라 데이터를 선별하여 특정 항목이나 특정 데이터만 보여줘야 할 경우가 있습니다. 구글 스프레드시트를 그대로 사용하므로 AppSheet 도 그대로 사용해서 Slice 기능만 추가하겠습니다.

Slice 도 Data 구조 중에 하나이므로 DATA 메뉴에서 시작하고 Slices 탭 메뉴에서 +New Slice를 클릭한후 아래와 같이 설정합니다.

Slices 탭메뉴에서 설정해야할 내용들
Slices 탭메뉴에서 설정해야할 내용들

Slices 탭 메뉴에서 설정해야 할 내용들은 총 4가지이며 Source Table 선택, Row filter condition 함수 정의, Slice Columns 항목 선택, Slice Actions 의한 Ref 정의입니다. 주요 내용을 정의하면 아래 표와 같이 정의됩니다.

Slices 탭메뉴 설정 설정 내용 주요 기능
Source Table 업무 진척 현황 선별할 데이터(워크시트) 선택
Row filter condition [상태]<>'완료' 데이터 필터링 함수 깔때기 클릭 후 정의
Slice Columns 업무장소와 사원정보(메일주소)는 제외한 항목 앱에 보여줄 항목 +Add 로 선별
Slice Actions  View Ref (사원 정보) Slice 에 포함될 작동 방식 선택

Slice에 이렇게 새로 정의된 내용을 바탕으로 선별된 데이터를 확인하고자 한다면 "View Data"를 클릭하면 됩니다. Row filter condition에 "[상태]<>'완료' " 로 정의되어 있는데, 이 의미는 완료 상태가 아닌 데이터만 선별한다는 것입니다. 따라서 아래 그림처럼 "View Data"를 클릭 후 보이는 데이터는 "상태" 항목이 미착수 및 진행 중인 데이터만 보입니다. 그리고 Slice Columns에서 업무 장소 및 사원 정보를 제외한 나머지 항목들을 확인할 수 있습니다. 마지막으로 사원 정보 상세를 확인할 텐데 중요한 것은 DATA > Slice에서 Slice Columns에 사원 정보 항목이 Slice Actions 은 Vew (사원 정보)가 반드시 정의되어야 참조할 수 있는 연결고리가 형성됩니다. 사원 정보 항목을 정의하지 않으면 연결고리가 끊어지므로 사원 정보 상세 정보를 새로 정의된 UX에서 확인이 불가능하게 됩니다.

View Data 클릭 후 보여질 데이터
View Data 클릭 후 보여질 데이터

추가 설명할 부분은 Row filter condition입니다. 데이터를 선별할 함수를 정의하는 부분입니다. 필자가 AppSheet를 노코딩이 아닌 레스 코딩이라고 설명한 이유가 사용자가 함수를 정의해야 하기 때문입니다. 엑셀과 같은 사무자동화 소프트웨어에 익숙한 사용자는 이 정도는 쉽게 이해할 수 있지만 그렇지 않은 사용자는 함수 조차도 코딩으로 인식할 수 있기 때문입니다. 

Row filter condition의 오른쪽이 깔때기 모양 아이콘을 클릭하면 Expression Assistant라는 새로운 창이 보이는데 함수를 정의하는 창입니다. 아래 그림처럼 상태가 완료가 아닌 것은 모두 선별하라고 간단하게 "[상태]<>'완료' "로 정의할 수 있습니다. 그리고 왼쪽 아래 부분에 초록색 바탕으로 V 표기가 보이면 제대로 함수가 정의되었다는 뜻이고 오른쪽 Test를 클릭하면 함수에 의해 가공된 데이터를 확인할 수 있습니다.

Expression Assistant 의 함수 정의 (상태]&lt;&gt;&#39;완료&#39; )
Expression Assistant 의 함수 정의 (상태]<>'완료'&nbsp;)

Test를 클릭하면 함수에 의해 가공된 데이터를 확인할 수 있는데 중요한 것은 필터링되어 안보일 데이터도 보인다는 것입니다. 다만 제일 왼쪽 항목 Expression Result에 N으로 표기되므로 선별될 데이터와 제외될 데이터를 모두 확인할 수 있습니다. 

Expression Assistant 의 Test 클릭 후 확인할 수 있는 데이터 목록
Expression Assistant 의 Test 클릭 후 확인할 수 있는 데이터 목록

Expression Assistant에서 정의할 함수는 무궁무진하므로 별도 설명 시간을 갖겠습니다. 중요한 것은 다양한 예시를 제공하지만 엑셀 함수처럼 독자들이 직접 실행하보고 체화되어야 익숙해질 수 있습니다. 

AppSheet의 UX> Views (Slice로 정의된 데이터를 앱으로 보여주게 정의) : View명 = 진행 중 업무

Slice 도 일종의 Data입니다. 그러면 Data를 앱에 보이게끔 UX를 정의해야 합니다. 아래처럼 UX 메뉴에서 Views 탭 메뉴로 들어간 다음 + New Views를 클릭한 다음과 같이 설정합니다. 

Views 탭메뉴에서 정의할 내용들
Views 탭메뉴에서 정의할 내용들

Views 탭 메뉴에서 설정해야 할 내용들은 총 5가지이며 For this data 선택, Sort by 기준 항목 및 정렬 방식 선택, Group by 기준 항목 및 정렬 방식 선택, Group Aggregate 집계 건수 선택, Columns Order에서 앱에 보일 항목 순서 정의 등입니다. 아래와 같이 표로 정리하였습니다.

Views 탭메뉴 설정 설정 내용 주요 기능
For this data 진행중 업무 (slice) 선택 앱에서 보여질 데이터 선택
View Options > Sort by 기한일 및 Ascending 선택 데이터 정렬 기준 선택
View Options > Group by 상태 및 Ascending 선택 데이터 그룹핑 기준 선택
View Options > Group Aggregate COUNT 선택 집계된 숫치값 (건수,합계 등) 선택
View Options > Columns Order 업무, 상태, 우선순위, 기한일 순서 정의 앱에 보여질 항목 순서 정의

실습을 위해 For this data와 View Options > Columns Order 만 정의하면 앱에 보일 데이터는 아래 그림과 같습니다.

아직은 진행 중 업무(slice)에서 보일 항목만 선별만 하였습니다. 

진행중 업무(slice) 에서 보여질 항목만 선별
진행중 업무(slice) 에서 보여질 항목만 선별

업무를 진행하다 보면 기한 일자가 도래한 업무들은 급하게 진행해야 하므로 제일 먼저 보여야 할 필요가 있습니다. 이런 경우 Sort by에서 "기한일" 항목을 선택하고 제일 빠른 날짜가 위로 오게 정렬방법을 Ascending (오름차순, 역배열)로 지정합니다. 그러면 앱 UX는 아래와 같이 변경됩니다. 

기한일 기준으로 가장 빠른 날짜가 먼저 정렬되게 정의
Sort by 에 기한일 지정하여 가장 빠른 날짜가 먼저 정렬되게 정의 (Ascending)

진행 중 업무와 미착수 업무가 혼재되어 나열되다 보니 업무 상태별로 묶어서 보는 방법은 Group by를 이용하는 것입니다. Group by에 "상태" 항목을 선택하면 아래 그림처럼 앱 화면이 집계되어 보입니다.

Group by에 상태를 지정하여 업무상태별로 집계된 결과
Group by에 상태를 지정하여 업무상태별로 집계된 결과

마지막으로 업무 상태별로 몇 건이 남아 있는지 Count 한 수치를 보여주기 위해 Group Aggregate를 COUNT로 지정합니다.

Group Aggregate 에 COUNT 를 선택하여 상태별 업무건수를 나타낸 결과
Group Aggregate 에 COUNT 를 선택하여 상태별 업무건수를 나타낸 결과

이로써 기본적인 Slice로 선별된 데이터를 표현하는 방식을 정의하는 것은 끝났습니다. 

진행중 업무 Slice 에서 사원 정보 상세로 넘어가는 과정
진행중 업무 Slice UX 에서 사원 정보 상세로 넘어가는 과정

요약
  • AppSheet의 Data > Slices (엑셀 필터링과 유사) : Slice명 = 업무 진척 현황
Slices 탭메뉴 설정 설정 내용 주요 기능
Source Table 업무 진척 현황 선별할 데이터(워크시트) 선택
Row filter condition [상태]<>'완료' 데이터 필터링 함수 깔때기 클릭 후 정의
Slice Columns 업무장소와 사원정보(메일주소)는 제외한 항목 앱에 보여줄 항목 +Add 로 선별
Slice Actions  View Ref (사원 정보) Slice 에 포함될 작동 방식 선택
  • AppSheet의 UX> Views (Slice로 정의된 데이터를 앱으로 보여주게 정의) : View명 = 진행 중 업무
Views 탭메뉴 설정 설정 내용 주요 기능
For this data 진행중 업무 (slice) 선택 앱에서 보여질 데이터 선택
View Options > Sort by 기한일 및 Ascending 선택 데이터 정렬 기준 선택
View Options > Group by 상태 및 Ascending 선택 데이터 그룹핑 기준 선택
View Options > Group Aggregate COUNT 선택 집계된 숫치값 (건수,합계 등) 선택
View Options > Columns Order 업무, 상태, 우선순위, 기한일 순서 정의 앱에 보여질 항목 순서 정의

댓글