갈루아의 반서재

728x90

구글 스프레드시트를 이용하여 간단한 성적관리 프로그램을 만들어보자.


<1> 먼저 필요한 화면들을 생각해보자.

1) 데이터 입력 : 학생명단 입력, 시험 생성, 성적입력 등 

2) 목록관리 : 데이터의 일관성을 확보하기 위해 별도 시트에서 입력되는 데이터의 목록을 관리한다.

3) 결과 분석 : 반별 성적표, 개인별 성적표, 반별 비교 등 


<2> ​그럼 본격적인 작업을 위해 구글 문서편집기로 이동한다.

https://docs.google.com/spreadsheets/u/0/


위의 링크로 들어가 하단의 + 아이콘을 클릭하면 아래와 같이 새로운 스프레드 시트가 열린다.


 

 

 

<3> 목록을 만들자

먼저 만들 것은 다음과 같이 목록의 내용이다. 이는 일관된 데이터의 사용을 위함이다.

예를 들면, 어떤 학생은 자신의 출신학교를 '한국대'라고 적고 다른 학생은 '한국대학교'라고 적으면 일관된 데이터 관리가 어려워진다. 그러므로 아래와 같이 항목별로 목록을 만들어 관리를 하면 잘못된 데이터의 입력을 줄일 수 있다. 항목이 늘어나면 열을 추가하면 된다.



잘못된 데이터를 제어하는 기준은 아래와 같이 다양하다. 방금 위에서 본 것처럼 '범위에서의 목록'에 들어있는 값만 인풋이 가능하게 할 수도 있고, '항목 목록'처럼 직접 항목을 쉼표로 구분해서 입력할 수도 있다.

 

 

우리가 만들고자 하는 것은 아래와 같이 데이터를 목록에서 선택할 수 있도록 하는 것이다. 




먼저 '기수'라는 컬럼에 대한 데이터 목록을 만들자

'학생명단' 시트 'A2'를 선택한 후 [데이터] - [확인]을 누른다. 우리는 '범위'라는 시트에 있는 값을 불러와서 활용할 것이므로 기준을 '범위에서의 목록'을 선택한 다음 해당 목록이 들어있는 영역을 선택한다. 목록은 그다지 많을 이유가 없으므로 아래와 같은 경우 10개의 행만 선택했다(목록이 너무 많다면 아예 A:A 와 같이 A열을 전부 선택해도 된다).


그리고 선택해야 하는 부분이 잘못된 데이터 입력시 처리방법이다. 아래에서는 잘못된 데이터는 입력이 되지 못하도록 '입력 거부'를 선택했다. 그리고 '저장'을 누른다.


 


방금 목록에서 값을 선택할 수 있는 셀범위를 A2 하나만 지정했는데, [데이터] - [확인] - [셀범위] 에서 영역을 정해도 되고, 아래와 같이 하나의 행에 데이터 확인 작업이 완료되면 셀을 선택해서 쭉 아래 행으로 댕겨 적용시켜도 된다.




다음으로 해야할 것은 생년월일과 연락처에 잘못된 데이터가 들어가지 않도록 하는 작업이다. 생년월일의 경우 [데이터] - [확인] - [기준] 항목에서 '날짜','올바른 날짜'를 선택하여 잘못된 데이터의 입력을 막는다.




마지막 연락처 항목은 그냥 "-" 을 넣어서 입력하자.

아래는 형식에 관한 간단한 팁!

1) 임의의 문자 하나는 물음표('?')를 사용한다.

'a?c'에는 'abc'는 들어갈 수 있지만, 'ac' 또는 'abbc'는 포함되지 않는다.

2) 별표(*)는 0개 또는 복수의 임의의 문자를 나타낸다.

가령 'a*c'에는 'abc','ac', 'abbbbbc' 등이 포함된다.

3) 맞춤 숫자 형식을 만들 때 다음과 같은 구문문자를 활용할 수 있다.

0 : 무의미한 0이 결과에 표시된다. 예를 들어, '000' 포맷에 74 를 입력하면 '074'로 표시된다.
# : 무의미한 0이 결과에 표시되지 않는다. 같은 예로,  '###' 포맷에 74 를 입력하면 '74'로 표시된다.


여기까지 준비한 후 테스트를 위해 가상의 학생명단을 입력한다.

먼저 반ID, 원생ID 를 부여한다.

이는 추후 vlookup 등으로 데이터를 검색할 때 기준점을 잡기 위해서다.

반 ID 는 간단히 '기수-반'의 형태로 원생 ID 는 '기수-반-번호'의 형태로 구성하자.

필요한 함수는 concatenate() 로 다음과 같이 입력한다.


반 ID =CONCATENATE(C2,"-",D2)

원생 ID =CONCATENATE(C2,"-",D2,"-",E2)








다음 포스팅에서는 성적입력을 위한 틀을 만들고 데이터를 입력해보자.

 

 



728x90