표 수식 작성과 계산 결과

Glif의 표 수식은 전체 spreadsheet 엔진이 아니라 Markdown 표 안에서 반복 계산을 돕는 제한된 기능이다. 현재 계약에서는 =SUM(B1:B3) 같은 수식 원문이 Markdown 셀에 저장되고, 선택·읽기·출력 화면은 지원되는 수식을 계산한 값으로 표시할 수 있다. 편집 모드로 들어가면 계산값이 아니라 수식 원문을 다시 확인한다.

표 수식 실습 파일을 열거나 다음 표를 새 문서에 붙여 넣는다.

| 항목 | 1주 | 2주 | 3주 | 합계 | 평균 |
| :--- | ---: | ---: | ---: | ---: | ---: |
| 문서 | 10 | 12 | 15 | =SUM(B1:D1) | =AVG(B1:D1) |
| 이미지 | 4 | 7 | 9 | =SUM(B2:D2) | =AVERAGE(B2:D2) |
| 영상 | 1 | 2 | 3 | =SUM(B3:D3) | =AVG(B3:D3) |

표 수식 literal이 그대로 보이는 Markdown 원문 모드

같은 표의 SUM과 AVG 수식이 계산값으로 표시된 실시간 미리보기

두 화면은 실증 시작 상태(1주=8)의 같은 파일을 모드만 바꿔 캡처한 것이다. 첫 화면의 =SUM(B1:D1)이 두 번째 화면에서는 35로 보이지만, 파일에 저장되는 정본은 첫 화면의 수식 literal이다. 배포된 실습 파일은 아래 저장·재열기 검증까지 끝낸 상태라 1주=10, 합계 37을 담고 있다.

1. 수식을 입력한다

  1. 합계 열의 첫 body cell을 선택한다.
  2. F2를 누르고 =SUM(B1:D1)을 입력한다.
  3. 입력을 확정해 선택 모드로 돌아간다.
  4. 셀에는 계산 결과 35가 보이는지 확인한다.
  5. 다시 F2를 눌러 원문 =SUM(B1:D1)이 보이는지 확인한다.
  6. 문서를 저장하고 Source에서 수식 literal이 남았는지 확인한다.

초기 실증에서 Glif는 SUM(B1:D1)=35, SUM(B2:D2)=20, SUM(B3:D3)=6을 계산했다. 이후 첫 값을 10으로 저장하자 첫 합계가 37로 다시 계산됐다. 평균 열도 AVGAVERAGE를 모두 계산했다.

열 문자는 body table의 열을, 숫자는 body row를 가리킨다. 예제에서 B1:D1은 첫 번째 데이터 행의 1주부터 3주까지다. header는 body row 번호에 포함하지 않는다.

2. 지원 함수를 선택한다

함수 결과
SUM 숫자 합계 =SUM(B1:D1)
AVG, AVERAGE 산술 평균 =AVG(B1:D1)
MIN 최솟값 =MIN(B1:D1)
MAX 최댓값 =MAX(B1:D1)
COUNT 숫자 셀 개수 =COUNT(B1:D1)
VAR.P 모집단 분산 =VAR.P(B1:D1)
VAR.S 표본 분산 =VAR.S(B1:D1)
STDEV.P 모집단 표준편차 =STDEV.P(B1:D1)
STDEV.S 표본 표준편차 =STDEV.S(B1:D1)

함수명은 위 목록 안에서 사용한다. Excel 전체 함수 호환성이나 사용자 정의 함수 실행을 가정하지 않는다.

SUM부터 STDEV.S까지 지원 함수 10종을 같은 입력값으로 계산한 Glif 표

실제 앱에서 입력 2, 4, 6, 8을 각 함수에 적용해 SUM=20, AVG=5, AVERAGE=5, MIN=2, MAX=8, COUNT=4, VAR.P=5, VAR.S=6.666666666667, STDEV.P=2.2360679775, STDEV.S=2.581988897472를 확인했다. 표시값은 읽기 좋은 정밀도로 반올림되지만 Markdown에는 함수 literal이 남는다.

3. 자동완성과 키보드 범위 선택을 사용한다

3.1 함수 후보를 열고 선택한다

  1. 결과를 넣을 body cell을 선택하고 F2를 누른다.
  2. 기존 값을 지우고 =를 입력한다.
  3. 후보에서 함수를 찾는다. 함수명의 앞부분을 더 입력하면 후보가 좁혀진다.
  4. 원하는 후보를 클릭하거나 Enter 또는 Tab으로 적용한다.

결과 셀에서 등호를 입력하자 SUM부터 STDEV.S까지 함수 후보가 열린 화면

자동완성에는 앞 절의 지원 함수 10종이 같은 순서로 나온다. 는 첫 후보로 포커스를 옮기고, 는 마지막 후보로 이동한다. 메뉴 안에서는 HomeEnd로 처음·끝 후보로 갈 수 있다. Esc는 입력 중인 셀을 바꾸지 않고 후보만 닫는다. Shift+Tab은 후보를 적용하지 않고 이전 셀 이동 계약을 유지한다.

후보를 적용하면 Glif가 함수명과 여는 괄호를 함께 입력한다. 예를 들어 SUM을 고르면 편집값은 =SUM(이 된다. 위 캡처에서는 SUM 후보에 실제 pointerdown 이벤트를 보내 적용했으며, 키보드 Enter·Tab 적용 경로는 동일한 completion contract를 사용한다.

3.2 범위를 키보드로 만든다

예제의 결과 셀은 E1이고 합산할 숫자는 바로 왼쪽의 B1:D1이다.

  1. 편집값이 =SUM(인 상태에서 를 누른다. 바로 왼쪽 D1이 범위 시작점이 된다.
  2. Shift+를 두 번 눌러 포커스를 C1, B1까지 확장한다.
  3. 편집값이 =SUM(B1:D1)로 바뀌고 세 셀이 한 범위로 강조되는지 확인한다.
  4. Enter로 확정한다. 문서 행의 결과는 37이 된다.

왼쪽 방향키와 Shift 조합으로 B1부터 D1까지 세 셀이 강조되고 수식 원문이 완성된 화면

방향키만 누르면 anchor와 focus가 함께 움직여 한 셀 범위를 다시 고른다. Shift를 누른 방향키는 최초 anchor를 유지하고 focus만 움직여 직사각형 범위를 넓힌다. 위·아래 키도 같은 방식으로 body 행을 오간다. Glif가 닫는 괄호를 보완한 상태에서 )를 입력하면 중복 괄호를 만들지 않고 다음 위치로 이동한다. 범위 선택 도중 Esc를 누르면 범위 picker를 취소할 수 있다.

SUM 범위를 확정한 뒤 문서 행의 합계가 37로 계산된 화면

영상은 = 입력으로 후보 10종을 열고, SUM을 선택한 뒤 , Shift+ 두 번으로 B1:D1을 만드는 5.5초 실증이다. 마지막 화면에서는 셀 선택을 해제해 계산 결과 37과 저장 대기 상태를 분리해 확인할 수 있다.

포인터 대신 키보드를 쓰면 긴 표에서도 시작 셀과 끝 셀을 다시 확인하기 쉽다. 선택 범위가 다른 table section을 넘어가거나 같은 표 밖을 참조하면 지원 범위를 벗어난다.

4. 원문과 표시 결과를 구분한다

상태 사용자가 보는 것 정본
편집 모드 =SUM(B1:D1) Markdown 수식 literal
선택·읽기 모드 35 수식에서 파생한 표시값
Source =SUM(B1:D1) Markdown 수식 literal
지원되는 export·publish 계산된 값 또는 명시된 materialization 수식 원문에서 파생

수식 계산 결과를 별도 숨은 workbook에 저장하지 않는다. 따라서 Source로 돌아갔을 때 수식이 보여야 현재 계약에 맞다.

과거 버전에서 계산값만 저장한 셀은 수식 원문을 복구할 수 없다. 그 셀은 일반 숫자 값으로 남는다. 필요한 수식은 사용자가 다시 입력해야 한다.

5. 안전한 범위를 지킨다

현재 수식은 같은 Markdown 표의 body cell과 직사각형 범위를 기준으로 한다. 다음 항목은 지원 대상으로 보지 않는다.

  • 다른 표나 다른 문서를 참조하는 식
  • 전역 dependency graph와 임의 순환 참조 계산
  • Excel workbook의 전체 함수·이름 범위·multi-sheet 의미
  • arbitrary JavaScript나 plugin code 실행
  • 지원하지 않는 함수의 암묵적 변환

지원하지 않는 수식은 원문 literal을 그대로 표시할 수 있다. 잘못된 결과를 정상 값처럼 만드는 것보다 원문을 보존해 수정 가능하게 두는 경계다.

6. 데이터가 바뀌었을 때 검증한다

  1. 문서 행의 1주 값을 8에서 10으로 바꾼다.
  2. 합계가 37로 바뀌는지 확인한다.
  3. Source에서 값과 수식 두 변경이 예상대로 남았는지 확인한다.
  4. 저장 후 문서를 닫고 다시 열어 수식 literal과 표시값을 비교한다.
  5. Markdown 표에서 Chart 만들기로 전환해 계산된 수치가 시각화 입력에 반영되는지 확인한다.

다음 영상은 첫 입력값을 실제 셀 편집 모드에서 8에서 10으로 바꾸는 과정이다. 입력 확정 직후 합계는 35에서 37로 바뀌고, 자동 저장 뒤 앱을 완전히 종료했다.

앱을 완전히 재시작하고 같은 파일을 다시 열었을 때 입력값 10과 합계 37이 표시된 화면

재시작 뒤 복구 대화상자 없이 디스크 원본에서 1037이 다시 표시됐다. 파일 원문에는 10=SUM(B1:D1)이 함께 남아 있어, 계산 결과가 수식 정본을 덮어쓰지 않았음도 확인했다.

실패와 복구

증상 원인 후보 복구
결과 대신 수식 text가 보임 지원하지 않는 함수·범위 또는 편집 모드 함수 목록과 body 좌표를 확인하고 Esc로 선택 모드 전환
기대값과 다름 header를 1행으로 계산했거나 범위 끝이 다름 body 첫 행이 1임을 기준으로 식 수정
저장 후 수식이 숫자로 바뀜 legacy 문서·구버전에서 생성된 값 History에서 원문을 찾고 현재 버전에서 수식 재입력
빈 셀이 숫자로 계산됨 함수별 빈 셀 처리 차이 COUNT와 통계 함수 입력 셀을 직접 확인
다른 표 참조가 동작하지 않음 현재 범위 밖 필요한 값을 같은 표로 가져오거나 계산 결과를 값으로 기록

완료 체크

  • 지원 함수와 지원하지 않는 spreadsheet 기능을 구분했다.
  • 수식 literal이 Markdown에 남고 읽기 화면은 계산값을 표시하는지 확인했다.
  • 자동완성과 키보드 범위 선택으로 수식을 만들었다.
  • 값을 바꾸고 저장·재열기·Chart 결과까지 검증했다.