스프레드시트

섬네일|300px|오디오 트랙 그룹에 대한 데이터를 담고 있는 스프레드시트의 예
**스프레드시트**(spreadsheet, ) 또는 **표 계산**은 표 형식으로 컴퓨테이션, 조직화, 분석 및 저장을 위한 컴퓨터 응용 프로그램이다. 스프레드시트는 종이 회계 작업표의 컴퓨터화된 아날로그로 개발되었다. 이 프로그램은 표의 셀에 입력된 데이터를 기반으로 작동한다. 각 셀에는 숫자 또는 텍스트 데이터, 혹은 다른 셀의 내용을 기반으로 값을 자동으로 계산하고 표시하는 공식의 결과가 포함될 수 있다. 스프레드시트라는 용어는 이러한 전자 문서를 지칭할 수도 있다.

현대 스프레드시트 응용 프로그램에서는 종종 "**워크시트**" 또는 단순히 "시트"라고 불리는 여러 스프레드시트가 모여 "**통합 문서**"를 형성한다. 통합 문서는 책, 시트 및 시트 내의 셀에 대한 모든 데이터를 포함하는 파일로 물리적으로 표현된다. 워크시트는 일반적으로 페이지를 넘기는 탭으로 표시되며, 각 탭에는 시트 중 하나가 포함되어 있지만 넘버스는 이 모델을 크게 변경한다. 여러 시트가 있는 통합 문서의 셀은 시트 이름을 참조에 추가한다. 예를 들어, "Sheet 1!C10"과 같다. 일부 시스템은 이 구문을 확장하여 다른 통합 문서에 대한 셀 참조를 허용한다.

스프레드시트 사용자는 저장된 값을 조정하고 계산된 값에 미치는 영향을 관찰할 수 있다. 이로 인해 스프레드시트는 수동 재계산 없이 많은 경우를 신속하게 조사할 수 있으므로 "가상 시나리오" 분석에 유용하다. 최신 스프레드시트 소프트웨어는 여러 상호 작용하는 시트를 가질 수 있으며 데이터를 텍스트 및 숫자로 또는 그래픽 형태로 표시할 수 있다.

기본 산술 및 수학 함수를 수행하는 것 외에도 최신 스프레드시트는 일반적인 재무회계 및 통계 작업에 대한 내장 함수를 제공한다. 순현재가치, 표준 편차, 회귀 분석과 같은 계산은 공식에 미리 프로그래밍된 함수를 사용하여 표 형식 데이터에 적용할 수 있다. 스프레드시트 프로그램은 또한 조건식, 텍스트와 숫자 간 변환 함수, 문자열에서 작동하는 함수를 제공한다.

스프레드시트는 비즈니스 세계 전반에 걸쳐 종이 기반 시스템을 대체했다. 처음에는 회계 또는 부기 작업을 위해 개발되었지만, 현재는 표 형식 목록이 작성되고 정렬되고 공유되는 모든 상황에서 광범위하게 사용된다.

## 기본
섬네일
1969년에 출시된 LANPAR는 메인프레임 및 시분할 컴퓨터의 첫 번째 전자 스프레드시트였다. LANPAR는 LANguage for Programming Arrays at Random의 약자이다. 비지칼크 (1979)는 마이크로컴퓨터에서 처음으로 사용된 전자 스프레드시트였으며, 이는 애플 II를 인기 있고 널리 사용되는 개인용 컴퓨터로 만드는 데 기여했다. 로터스 1-2-3은 도스가 지배적인 운영 체제였을 때 선도적인 스프레드시트였다. 마이크로소프트 엑셀은 현재 Windows 및 Macintosh 플랫폼에서 가장 큰 시장 점유율을 가지고 있다. 스프레드시트 프로그램은 사무 생산성 스위트의 표준 기능이다. 2006년 구글은 베타 버전 스프레드시트 웹 애플리케이션을 출시했으며, 현재는 구글 시트로 알려져 있으며 구글 드라이브에서 제공되는 응용 프로그램 중 하나이다.

스프레드시트는 행과 열로 배열된 셀 표로 구성되며 X 및 Y 위치로 참조된다. X 위치인 열은 일반적으로 "A", "B", "C" 등의 문자로 표시되며, 행은 일반적으로 1, 2, 3 등의 숫자로 표시된다. 단일 셀은 행과 열을 주소 지정하여 "C10"과 같이 참조할 수 있다. 셀 참조의 이 전자적 개념은 LANPAR (Language for Programming Arrays at Random)에서 처음 소개되었으며 (르네 파르도와 레미 랜더우가 공동 발명) VisiCalc에서 사용된 변형은 "A1 표기법"으로 알려져 있다.
또한 스프레드시트는 일반적으로 연속적인 셀 그룹인 범위의 개념을 가지고 있다. 예를 들어, 첫 번째 열의 처음 10개 셀을 범위 "A1:A10"으로 참조할 수 있다. LANPAR는 Lotus 123 및 Microsoft의 MultiPlan 버전 2까지 다시 나타나지 않았던 정방향 참조/자연 순서 계산을 혁신했다.

사용자는 주로 셀을 통해 시트와 상호 작용한다. 특정 셀은 단순히 데이터를 입력하여 데이터를 보유하거나, 일반적으로 등호로 시작하는 텍스트로 만들어지는 공식을 보유할 수 있다. 데이터에는 텍스트 문자열 `hello world`, 숫자 `5` 또는 날짜 `10-Sep-97`가 포함될 수 있다. 공식은 등호 `=5*3`으로 시작하지만, 이 경우 표시에는 계산 결과인 `15`가 표시되고 공식 자체는 표시되지 않으므로 일반적으로 보이지 않는다. 이로 인해 일부 경우에 혼란이 발생할 수 있다.

스프레드시트의 주요 기능은 공식이 다른 셀의 내용을 참조할 수 있는 능력이며, 이는 다시 공식의 결과일 수 있다. 이러한 공식을 만들려면 숫자를 셀 참조로 바꾼다. 예를 들어, 공식 `=5*C10`은 C10 셀의 값을 5로 곱한 결과를 생성한다. C10이 값 `3`을 포함하면 결과는 `15`가 된다. 그러나 C10은 다른 셀을 참조하는 자체 공식을 포함할 수도 있다.

[섬네일|upright=2|스프레드시트의 [문자열 연결("&") 함수는 단일 셀에 복잡한 텍스트 문자열(이 예에서는 SVG "원" 요소에 대한 XML 코드)을 조합하는 데 사용될 수 있다. 이 문자열 연결은 스프레드시트가 일반적으로 사용되는 공식 연결의 변형이다.]]
수식을 함께 연결하는 기능이 스프레드시트의 힘이다. 많은 문제는 일련의 개별 수학적 단계로 나눌 수 있으며, 이들은 셀의 개별 수식에 할당될 수 있다. 이러한 수식 중 일부는 범위에도 적용될 수 있으며, 범위 내의 모든 숫자를 더하는 `SUM` 함수와 같다.

스프레드시트는 데이터베이스와 많은 원칙과 특성을 공유하지만, 스프레드시트와 데이터베이스는 동일한 것이 아니다. 스프레드시트는 본질적으로 하나의 테이블일 뿐이지만, 데이터베이스는 기계 판독 가능한 의미론적 관계를 가진 많은 테이블의 모음이다. 세 개의 시트를 포함하는 통합 문서가 실제로 서로 상호 작용할 수 있는 여러 테이블을 포함하는 파일이라는 것은 사실이지만, 데이터베이스의 관계형 구조는 부족하다. 스프레드시트와 데이터베이스는 상호 운용이 가능하다. 시트는 데이터베이스로 가져와 그 안의 테이블이 될 수 있으며, 데이터베이스 쿼리는 추가 분석을 위해 스프레드시트로 내보낼 수 있다.

스프레드시트 프로그램은 일반적으로 워드 프로세서, 프레젠테이션 소프트웨어 및 데이터베이스 관리 시스템도 포함하는 사무 생산성 제품군의 주요 구성 요소 중 하나이다. 제품군 내의 프로그램은 유사한 기능에 대해 유사한 명령을 사용한다. 일반적으로 구성 요소 간에 데이터를 공유하는 것은 기능적으로 동등한 비통합 프로그램 모음보다 쉽다. 이는 많은 개인용 컴퓨터 시스템이 그래픽 사용자 인터페이스 대신 텍스트 모드 디스플레이 및 명령을 사용하던 시기에 특히 이점이었다.

## 역사

### 종이 스프레드시트

인류는 고대부터 표, 즉 열과 행으로 구성된 그리드에 데이터를 정리해 왔다. 바빌로니아인들은 기원전 1800년부터 점토판을 사용하여 데이터를 저장했다. 다른 예로는 부기 원장과 천문 기록에서 찾을 수 있다.

적어도 1906년부터 "스프레드시트"라는 용어는 회계에서 원장의 열과 행으로 이루어진 그리드를 의미하는 데 사용되었다. 컴퓨터화된 스프레드시트가 등장하기 전에는 "스프레드"는 양면 인쇄를 가로질러 두 개의 마주보는 페이지를 덮고 두 페이지를 하나의 큰 페이지로 취급하는 신문이나 잡지 항목(텍스트 또는 그래픽)을 의미하기도 했다. 합성어 '스프레드시트'는 장부 기장 원장을 제시하는 데 사용되는 형식(지출 범주를 위한 열이 위쪽에 있고, 청구서가 왼쪽 여백에 아래로 나열되어 있으며, 각 지불 금액은 해당 행과 열이 교차하는 셀에 있음)을 의미하게 되었는데, 이는 전통적으로 제본된 원장(회계 기록을 보관하는 책)의 마주보는 페이지에 "스프레드"로 펼쳐지거나 해당 형식으로 행과 열이 그려진 대형 종이(분석 용지라고 불림)에 표시되며 일반 용지보다 약 두 배 넓었다.

### 전자 스프레드시트

#### 일괄 스프레드시트 보고서 생성기 BSRG
일괄 처리 "스프레드시트"는 추가 입력 데이터를 가진 일괄 컴파일러와 구별할 수 없으며, 출력 보고서를 생성한다. 즉, 4GL 또는 기존의 비대화형 일괄 컴퓨터 프로그램이다. 그러나 이 전자 스프레드시트 개념은 리처드 매테시치가 1961년에 쓴 논문 "예산 모델 및 시스템 시뮬레이션"에서 개략적으로 설명되었다. 매테시치의 후속 작업(1964a, 9장, 회계 및 분석 방법)과 그 동반 서적(1964b, 예산 컴퓨터 프로그램을 통한 기업 시뮬레이션)은 컴퓨터화된 스프레드시트를 회계 및 예산 시스템(포트란 IV로 프로그래밍된 메인프레임에서)에 적용했다. 이러한 일괄 스프레드시트는 개별 셀보다는 전체 열 또는 행(입력 변수)의 추가 또는 빼기를 주로 다루었다.

1962년에 BCL(Business Computer Language)이라고 불리는 이 스프레드시트 개념은 IBM 1130에 구현되었고, 1963년에 위스콘신주 마켓 대학교의 R. 브라이언 월시(R. Brian Walsh)에 의해 IBM 7040으로 포팅되었다. 이 프로그램은 포트란으로 작성되었다. 그 컴퓨터들에서는 원시적인 시분할 시스템을 사용할 수 있었다. 1968년에 BCL은 월시에 의해 워싱턴 주립 대학교의 IBM 360/67 시분할 시스템으로 포팅되었다. 이 시스템은 경영 학생들에게 금융을 가르치는 데 사용되었다. 학생들은 교수가 준비한 정보를 가져와서 이를 표현하고 비율 등을 보여주기 위해 조작할 수 있었다. 1964년에 킴볼(Kimball), 스토펠스(Stoffells), 월시(Walsh)에 의해 "비즈니스 컴퓨터 언어(Business Computer Language)"라는 책이 쓰여졌다. 이 책과 프로그램 모두 1966년에 저작권이 등록되었고 몇 년 후 저작권은 갱신되었다.

어플라이드 데이터 리소스(Applied Data Resources)는 Empires라는 FORTRAN 전처리를 가지고 있었다.

1960년대 후반, 제록스는 BCL을 사용하여 자사의 시분할 시스템을 위한 더욱 정교한 버전을 개발했다.

#### LANPAR 스프레드시트 컴파일러
전자 스프레드시트 개발에 있어서 핵심적인 발명은 1970년에 스프레드시트 자동 자연 순서 계산 알고리즘에 대한 를 출원한 르네 K. 파르도(Rene K. Pardo)와 레미 랜더우(Remy Landau)에 의해 이루어졌다. 특허는 순수 수학적 발명이라는 이유로 특허청에서 처음에는 거부되었지만, 12년간의 항소 끝에 파르도와 랜더우는 1983년에 연방 항소 법원의 전신인 CCPA에서 특허청의 결정을 뒤집는 획기적인 승소를 거두었다. 이로써 "발명의 핵심이 알고리즘에 있다는 이유만으로 특허 불가능해지지 않는다"는 원칙이 확립되었다. 그러나 1995년 연방 지방 법원은 발명자들이 신청 과정에서 부당한 행위를 했다는 이유로 해당 특허가 시행 불가능하다고 판결했다. 미국 연방 순회 항소 법원은 1996년에 그 판결을 확정했다.

실제 소프트웨어는 LANPAR(LANguage for Programming Arrays at Random)라고 불렸다. 이것은 파르도와 랜더우가 하버드 대학교를 졸업한 직후인 1969년 여름에 구상되어 완전히 개발되었다. 공동 발명가 르네 파르도(Rene Pardo)는 벨 캐나다의 한 관리자가 예산 양식을 프로그래밍하고 수정하기 위해 프로그래머에게 의존해서는 안 된다고 느꼈으며, 사용자가 어떤 순서로든 양식을 입력하고 전자 컴퓨터가 올바른 순서로 결과를 계산하도록 하는 방법을 생각했다고 회상한다 ("정방향 참조/자연 순서 계산"). 파르도와 랜더우는 1969년에 이 소프트웨어를 개발하고 구현했다.

LANPAR는 벨 캐나다, AT&T, 그리고 전국 18개 운영 전화 회사에서 지역 및 전국 예산 운영에 사용되었다. LANPAR는 제너럴 모터스에서도 사용되었다. 그 독특함은 비지칼크, 슈퍼칼크, 그리고 초기 버전의 멀티플랜에서 사용된 왼쪽에서 오른쪽, 위에서 아래로 각 셀의 결과를 계산하는 순서와 달리 정방향 참조/자연 순서 계산 (최초의 "비절차적" 컴퓨터 언어 중 하나)을 통합한 파르도의 공동 발명에 있었다. 정방향 참조/자연 순서 계산이 없으면 사용자는 모든 셀의 값이 변경되지 않은 상태로 유지될 때까지 스프레드시트를 새로 고쳐야 했다. 일단 셀 값이 일정하게 유지되면 사용자는 스프레드시트 내에 남아있는 계산되지 않은 정방향 참조가 없음을 확신할 수 있었다.

#### 오토플랜/오토탭 스프레드시트 프로그래밍 언어
1968년, 피닉스, 애리조나에 본사를 둔 제너럴 일렉트릭 컴퓨터 회사의 세 명의 전 직원이 자신들의 소프트웨어 개발 회사를 시작하기 위해 나섰다. A. 르로이 엘리슨(A. Leroy Ellison), 해리 N. 캔트렐(Harry N. Cantrell), 러셀 E. 에드워즈(Russell E. Edwards)는 벤처 자본가들에게 제시할 사업 계획을 위해 테이블을 만들 때 수많은 계산을 하고 있다는 것을 깨달았다. 그들은 많은 노력을 절약하기 위해 자신들의 테이블을 생성하는 컴퓨터 프로그램을 작성하기로 결정했다. 원래 개인적인 사용을 위한 단순한 유틸리티로 구상되었던 이 프로그램은 나중에 Capex Corporation으로 알려질 회사가 제공하는 첫 번째 소프트웨어 제품이 될 것이다. "AutoPlan"은 GE의 시분할 시스템 서비스에서 실행되었고, 그 후 IBM 메인프레임에서 실행되는 버전이 AutoTab이라는 이름으로 소개되었다. (내셔널 CSS(National CSS)는 유사한 제품인 CSSTAB을 제공했으며, 1970년대 초반에는 상당한 시분할 사용자 기반을 가지고 있었다. 주요 응용 프로그램은 여론 조사 표 형식이었다.)

AutoPlan/AutoTab은 위지위그 대화형 스프레드시트 프로그램이 아니었고, 스프레드시트를 위한 간단한 스크립팅 언어였다. 사용자는 행과 열의 이름과 레이블을 정의한 다음 각 행 또는 열을 정의하는 공식을 정의했다. 1975년, Autotab-II는 원본을 "사용자가 요구하는 비율로 결합된 최대 1,500개의 행과 열..."로 확장한다고 광고되었다.

시분할 서비스를 운영하던 GE 정보 서비스는 1974년경 자체 스프레드시트 시스템인 FAL(Financial Analysis Language)을 출시했다. 이후 추가 스프레드시트 언어인 TABOL이 보완되었다. 이 언어는 영국의 독립 저자인 올리버 벨라코트(Oliver Vellacott)가 개발했다. FAL과 TABOL 모두 GEIS의 데이터베이스 시스템인 DMS와 통합되었다.

#### IBM 재무 계획 및 통제 시스템
IBM 재무 계획 및 통제 시스템은 1976년 IBM 캐나다의 브라이언 잉햄이 개발했다. 이 시스템은 IBM에 의해 최소 30개국에서 구현되었다. IBM 메인프레임에서 실행되었으며, APL을 사용하여 개발된 첫 번째 재무 계획 응용 프로그램으로, 최종 사용자로부터 프로그래밍 언어를 완전히 숨겼다. IBM의 VM 운영 체제를 통해, 새로운 버전이 출시될 때마다 응용 프로그램의 각 사본을 자동 업데이트하는 최초의 프로그램 중 하나였다. 사용자는 행과 열 사이의 간단한 수학적 관계를 지정할 수 있었다. 당시의 대안들과 비교했을 때, 매우 큰 스프레드시트를 지원할 수 있었다. 이 시스템은 매월 기존 일괄 처리 시스템에서 가져온 실제 재무 계획 데이터를 각 사용자의 스프레드시트에 로드했다. 객체 커널을 통해 APL의 성능을 최적화하도록 설계되어 기존 프로그래밍 방식보다 프로그램 효율성을 최대 50배까지 높였다.

#### APLDOT 모델링 언어
초기 "산업용" 스프레드시트의 한 예는 1976년 미국 철도 협회에서 존스 홉킨스 대학교 응용 물리 연구소 (메릴랜드주 로럴)에서 실행되는 IBM 360/91에 개발된 APLDOT이다. 이 응용 프로그램은 미 의회와 콘레일을 위한 재무 및 원가 모델과 같은 응용 프로그램을 개발하는 데 수년 동안 성공적으로 사용되었다. APLDOT는 재무 분석가와 전략 기획자가 종이 스프레드시트 패드를 사용하여 해결하던 동일한 문제를 해결하는 데 사용했기 때문에 "스프레드시트"라고 불렸다.

### 애플 II용 VisiCalc
섬네일|애플 II에서 실행되는 VisiCalc

스프레드시트의 개념은 1979년 비지코프(VisiCorp) 직원인 댄 브릭클린과 밥 프랭크스턴이 애플 II용으로 개발한 비지칼크 덕분에 널리 알려졌다.
중요하게도, 이는 개인용 컴퓨터를 컴퓨터 애호가들의 취미에서 비즈니스 도구로 변화시켰다.

VisiCalc는 위지위그 대화형 사용자 인터페이스, 자동 재계산, 상태 및 수식 줄, 상대 및 절대 참조를 사용한 범위 복사, 참조 셀 선택을 통한 수식 작성 등 현대 스프레드시트 응용 프로그램의 필수 기능 중 다수를 결합한 최초의 스프레드시트였다. 당시 LANPAR를 알지 못했던 PC 월드 잡지는 VisiCalc를 최초의 전자 스프레드시트라고 불렀다.

브릭클린은 그의 대학교 교수가 칠판에 계산 결과 표를 만드는 것을 지켜보았다고 말한다. 교수가 오류를 발견했을 때, 그는 테이블에서 여러 순차적인 항목을 지우고 다시 써야 하는 지루한 작업을 해야 했고, 브릭클린은 칠판을 기본 수식 결과를 보는 모델로 사용하여 컴퓨터에서 이 과정을 재현할 수 있다고 생각하게 되었다. 그의 아이디어가 VisiCalc가 되었다.

애플 II용 VisiCalc는 사람들이 특정 컴퓨터를 오직 그것을 사용하기 위해 구매하게 만드는 매우 매력적인 프로그램인 최초의 킬러 애플리케이션이 되었다. 이 프로그램은 CP/M 기기, 아타리 8비트 제품군, 코모도어 PET 등 다른 컴퓨터로 포팅되었지만, VisiCalc는 여전히 애플 II 프로그램으로 가장 잘 알려져 있다.

### CP/M용 SuperCalc

슈퍼칼크는 1980년 Sorcim에서 발행한 스프레드시트 응용 프로그램으로, 원래 Osborne 1 휴대용 컴퓨터에 포함된 CP/M 소프트웨어 패키지의 일부로 (WordStar와 함께) 번들로 제공되었다. 이 프로그램은 CP/M용 사실상의 표준 스프레드시트가 되었다.

### IBM PC DOS용 Lotus 1-2-3 스프레드시트
1982년 11월 로터스 1-2-3의 도입은 IBM PC의 수용을 가속화했다. 이 프로그램은 특히 IBM PC DOS용으로 작성되었으며 애플 II용 VisiCalc에 비해 속도와 그래픽이 향상되어 인기를 얻는 데 도움이 되었다. 로터스 1-2-3은 몇 년 동안 선도적인 스프레드시트였다.

### 애플 매킨토시 및 Windows용 Microsoft Excel

마이크로소프트는 1985년 9월 30일에 애플 매킨토시용 Excel의 첫 버전을 출시하고, 1987년 11월에 2.05 버전(매킨토시 버전 2.2와 동기화하기 위해)으로 포팅하여 Windows용으로 출시했다. 1990년대 초반 마이크로소프트의 Windows 3.x 플랫폼은 자사의 Excel 스프레드시트 응용 프로그램이 로터스(Lotus)의 시장 점유율을 차지할 수 있게 했다. 로터스가 사용할 수 있는 Windows 제품으로 대응했을 때, 마이크로소프트는 이미 Office 제품군을 구축하기 시작했다. 1995년까지 Excel은 로터스 1-2-3을 제치고 시장 선두 주자가 되었으며, 2013년에는 IBM이 로터스 1-2-3을 완전히 단종했다.

### 구글 시트, 온라인, 웹 기반 스프레드시트

2006년 구글은 웹 기반 스프레드시트 응용 프로그램인 베타 버전 구글 시트를 출시했다. 이 응용 프로그램은 호환되는 웹 브라우저를 사용하여 여러 사용자가 모든 장치 유형에서 접근할 수 있으며, 온라인과 오프라인 (인터넷 연결 유무에 관계없이)으로 사용할 수 있다. 구글 시트는 2Web Technologies가 개발한 웹 기반 스프레드시트 응용 프로그램 XL2Web와 Office 문서의 다중 사용자 온라인 협업을 가능하게 한 DocVerse를 결합하여 탄생했다.

2016년 Collabora Online Calc가 출시되었으며, 웹 기반 스프레드시트를 인증 또는 유지 관리를 위해 제3자에 의존하지 않고 모든 환경에 호스팅 및 통합할 수 있다는 점에서 주목할 만하다. Collabora Online은 1985년에 출시된 스타오피스에서 성장한 리브레오피스 키트를 핵심으로 실행된다.

### 메인프레임 스프레드시트
*ICI에서 1974년 IBM 370/145에서 개발된 Works Records System
*ExecuCalc, Parallax Systems, Inc. 제공: 1982년 후반에 출시된 ExecuCalc는 IBM 메인프레임에서 3270 디스플레이 터미널을 사용하여 VisiCalc의 기능을 복제한 최초의 메인프레임 "비시-클론"이었다. 150개 이상의 라이선스가 부여되었으며 (포춘 500대 기업에 35개), DP 관리자들은 호환성과 당시 고가였던 PC 구매 회피에 매력을 느꼈다 (1983년 컴퓨터월드 잡지 표지 기사 및 광고 참조).

### 기타 스프레드시트
주목할 만한 현재 스프레드시트 소프트웨어:
* 아파치 오픈오피스 캘크는 자유 및 오픈 소스이다.
* 캘리그라 시츠 (이전 KCalc)
* Collabora Online Calc는 모바일 및 데스크톱 앱용으로 자유, 오픈 소스, 크로스 플랫폼 엔터프라이즈 지원 리브레오피스 에디션이다.
* 코렐 쿼트로 프로 (워드퍼펙트 오피스)
* Gnumeric은 GNU 프로젝트의 자유 스프레드시트이다.
* Kingsoft Spreadsheets
* 리브레오피스 캘크는 자유, 오픈 소스, 크로스 플랫폼이다.
* Numbers는 애플의 스프레드시트 소프트웨어로, 아이워크의 일부이다.
* 온리오피스 문서 스프레드시트 편집기는 자유 및 오픈 소스이다.
* PlanMaker (SoftMaker Office)
* Pyspread
*Sourcetable
단종된 스프레드시트 소프트웨어:
* 20/20
* 아타리 ST 컴퓨터용 3D-Calc
* As Easy As
* 프레임워크 by Forefront Corporation/Ashton-Tate (1983–84)
* GNU Oleo – UNIX/UNIX-유사 시스템용 기존 터미널 모드 스프레드시트
* IBM 로터스 심포니 (2007)
* Javelin Software
* KCells
* Lucid 3-D
* 로터스 임프로브
*매킨토시용 Lotus Jazz
* Lotus Symphony (1984)
* 멀티플랜
*Claris의 Resolve (매킨토시)
* 네오오피스
* Resolver One
*Borland의 쿼트로 프로
* SC IM (이전 SC - 스프레드시트 계산기)
* SIAG
* 슈퍼칼크
* T/Maker
*CP/M 및 TRS-DOS용 Target Planner Calc
*매킨토시용 Trapeze
*매킨토시용 윙즈

### 기타 제품
여러 회사가 매우 다른 패러다임을 기반으로 하는 프로그램으로 스프레드시트 시장에 진출하려고 시도했다. 로터스는 가장 성공적인 사례인 로터스 임프로브를 선보였는데, 특히 강력한 데이터 마이닝 기능이 오늘날까지도 높이 평가받는 금융 분야에서 상당한 상업적 성공을 거두었다.

스프레드시트 2000은 공식 구성을 극적으로 단순화하려고 시도했지만, 일반적으로 성공하지 못했다.

## 개념
주요 개념은 시트라고 불리는 셀 격자에 값이라고 불리는 원시 데이터 또는 셀에 있는 공식이 있다는 것이다. 공식은 기존 값에서 새 값을 기계적으로 계산하는 방법을 알려준다. 값은 일반적인 숫자이지만 순수 텍스트, 날짜, 월 등이 될 수도 있다. 이러한 개념의 확장은 논리적 스프레드시트를 포함한다. 시트를 프로그래밍하고, 데이터를 시각화하고, 시트를 원격으로 연결하고, 셀의 종속성을 표시하는 등의 다양한 도구가 일반적으로 제공된다.

### 셀
**"셀"**은 데이터를 담는 상자로 생각할 수 있다. 단일 셀은 일반적으로 열과 행(아래 예제 표에서 C2는 값 30을 포함하는 셀을 나타냄)으로 참조된다. 일반적으로 종속 변수를 나타내는 행은 1부터 시작하는 십진법으로 참조되는 반면, 독립 변수를 나타내는 열은 A-Z를 숫자로 사용하는 26진 전단사 표기법을 사용한다. 물리적 크기는 일반적으로 상자 교차점에서 (또는 전체 열 또는 행의 경우 열- 또는 행-머리글을 끌어) 높이 또는 너비를 끌어 내용에 맞게 조정할 수 있다.

셀들의 배열을 시트 또는 워크시트라고 한다. 이는 기존 컴퓨터 프로그램의 변수 배열과 유사하다 (단, 한 번 입력되면 변하지 않는 특정 값은 동일한 비유로 상수로 간주될 수 있다). 대부분의 구현에서 단일 스프레드시트 내에 여러 워크시트가 있을 수 있다. 워크시트는 명확성을 위해 분할된 스프레드시트의 부분 집합일 뿐이다. 기능적으로 스프레드시트는 전체적으로 작동하며 모든 셀은 스프레드시트 내의 전역 변수로 작동한다 (각 변수는 해당 셀을 제외하고 '읽기' 액세스만 가짐).

셀은 값이나 공식을 포함할 수 있으며, 단순히 비어 있을 수도 있다.
관례적으로 공식은 일반적으로 **=** 기호로 시작한다.

#### 값
값은 셀 자체에 직접 입력하여 컴퓨터 키보드에서 입력할 수 있다. 또는 값은 계산을 수행하거나 현재 날짜 또는 시간을 표시하거나 주식 시세 또는 데이터베이스 값과 같은 외부 데이터를 검색할 수 있는 공식(아래 참조)을 기반으로 할 수 있다.

**스프레드시트 ''값 규칙**

컴퓨터 과학자 앨런 케이는 스프레드시트의 작동을 요약하기 위해 값 규칙이라는 용어를 사용했다. 즉, 셀의 값은 사용자가 셀에 입력한 공식에만 의존한다는 것이다. 공식은 다른 셀의 값에 의존할 수 있지만, 해당 셀도 마찬가지로 사용자가 입력한 데이터 또는 공식으로 제한된다. 공식을 계산하는 데 '부작용'은 없다. 유일한 출력은 계산된 결과를 해당 셀 내부에 표시하는 것이다. 사용자가 셀의 내용을 수동으로 수정하지 않는 한 셀의 내용을 영구적으로 수정하는 자연스러운 메커니즘은 없다. 프로그래밍 언어의 맥락에서 이는 제한된 형태의 1차 함수형 프로그래밍을 산출한다.


#### 자동 재계산
1980년대 이후 스프레드시트의 표준인 이 선택적 기능은 스프레드시트 프로그램에 값을 수동으로 재계산하도록 요청할 필요가 없게 해준다(현재는 일반적으로 성능 향상을 위해 대규모 스프레드시트에서 특별히 '해제'하지 않는 한 기본 옵션이다). 일부 초기 스프레드시트는 대규모 또는 복잡한 스프레드시트의 재계산이 종종 데이터 입력 속도를 감소시켰기 때문에 수동으로 재계산을 요청해야 했다. 많은 최신 스프레드시트에서도 이 옵션을 유지하고 있다.

재계산은 일반적으로 스프레드시트에 순환 종속성이 없어야 한다. 종속성 그래프는 업데이트될 각 객체에 대한 꼭짓점과, 한 객체가 다른 객체보다 먼저 업데이트되어야 할 때마다 두 객체를 연결하는 모서리가 있는 그래프이다. 순환 종속성이 없는 종속성 그래프는 유향 비순환 그래프를 형성하며, 이는 스프레드시트 전반에 걸쳐 확실한 결과를 제공할 수 있는 부분 순서의 표현이다.

#### 실시간 업데이트
이 기능은 외부 소스(예: "원격" 스프레드시트의 셀)의 값으로 셀 내용을 주기적으로 업데이트하는 것을 의미한다. 공유 웹 기반 스프레드시트의 경우 다른 사용자가 업데이트한 셀을 "즉시" 업데이트하는 데 적용된다. 모든 종속 셀도 업데이트되어야 한다.

#### 잠긴 셀
일단 입력되면 선택된 셀(또는 전체 스프레드시트)은 선택적으로 "잠겨" 실수로 덮어쓰는 것을 방지할 수 있다. 일반적으로 이는 수식이 포함된 셀에 적용되지만 킬로그램/파운드 변환 계수(소수점 이하 여덟 자리까지 2.20462262)와 같은 "상수"가 포함된 셀에도 적용될 수 있다. 개별 셀이 잠긴 것으로 표시되더라도 파일 기본 설정에서 이 기능을 활성화하기 전에는 스프레드시트 데이터가 보호되지 않는다.

#### 데이터 형식
셀 또는 범위는 값 표시 방식을 지정하도록 선택적으로 정의할 수 있다. 기본 표시 형식은 이전에 특별히 설정되지 않은 경우 일반적으로 초기 내용에 따라 설정된다. 예를 들어 "31/12/2007" 또는 "31 Dec 2007"은 날짜 셀 형식으로 기본 설정된다.
마찬가지로 숫자 값 뒤에 % 기호를 추가하면 셀이 백분율 셀 형식으로 태그된다. 셀 내용은 이 형식에 의해 변경되지 않고 표시되는 값만 변경된다.

"숫자" 또는 "통화"와 같은 일부 셀 형식은 소수점 자릿수를 지정할 수도 있다.

이것은 유효하지 않은 연산(예: 날짜가 포함된 셀에 곱셈을 수행)을 허용하여 적절한 경고 없이 비논리적인 결과를 초래할 수 있다.

#### 셀 서식
스프레드시트 응용 프로그램의 기능에 따라 각 셀은 (워드 프로세서의 "스타일"처럼) 내용(포인트 크기, 색상, 굵게 또는 기울임꼴) 또는 셀(테두리 두께, 배경 음영, 색상)의 속성을 사용하여 개별적으로 서식을 지정할 수 있다. 스프레드시트의 가독성을 높이기 위해 셀 서식은 데이터에 조건부로 적용될 수 있다. 예를 들어, 음수는 빨간색으로 표시될 수 있다.

셀의 서식은 일반적으로 내용에 영향을 미치지 않으며, 셀이 다른 워크시트나 응용 프로그램으로 참조되거나 복사되는 방식에 따라 서식이 내용과 함께 전달되지 않을 수 있다.

#### 명명된 셀
[섬네일|400px|[마이크로소프트 엑셀에서 명명된 열 변수 x 및 y의 사용. y=x2 공식은 포트란과 유사하며, 이름 관리자는 x 및 y의 정의를 보여준다.]]

대부분의 구현에서 셀 또는 열이나 행의 셀 그룹에 "이름"을 지정하여 사용자가 그리드 참조 대신 이름으로 해당 셀을 참조할 수 있다. 이름은 스프레드시트 내에서 고유해야 하지만, 스프레드시트 파일에서 여러 시트를 사용하는 경우 각 시트에서 동일하게 명명된 셀 범위는 시트 이름을 추가하여 구분하면 사용할 수 있다. 이 사용의 한 가지 이유는 많은 시트에 걸쳐 명령을 반복하는 매크로를 만들거나 실행하는 것이다. 다른 이유는 명명된 변수가 있는 공식이 구현하려는 대수학에 대해 쉽게 확인할 수 있기 때문이다(포트란 표현식과 유사함). 명명된 변수 및 명명된 함수의 사용은 스프레드시트 구조를 더욱 투명하게 만든다.

##### 셀 참조
명명된 셀 대신 셀(또는 그리드) 참조를 사용할 수 있다. 대부분의 셀 참조는 동일한 시트 내의 다른 셀을 나타내지만, 셀 참조는 동일한 스프레드시트 내의 다른 시트에 있는 셀을 참조할 수도 있고, (구현에 따라) 다른 스프레드시트의 셀을 참조하거나 원격 응용 프로그램의 값을 참조할 수도 있다.

"A1" 스타일의 일반적인 '셀 참조'는 열을 식별하는 하나 또는 두 개의 대소문자를 구분하지 않는 문자(최대 256개 열인 경우: A–Z 및 AA–IV)와 그 뒤에 행 번호(예: 1–65536 범위)로 구성된다. 각 부분은 상대적(수식이 이동하거나 복사될 때 변경됨)이거나 절대적(셀 참조의 해당 부분 앞에 $로 표시됨)일 수 있다. 대체 "R1C1" 참조 스타일은 문자 R, 행 번호, 문자 C, 열 번호로 구성되며, 상대적인 행 또는 열 번호는 숫자를 대괄호로 묶어 표시한다. 대부분의 현재 스프레드시트는 A1 스타일을 사용하며, 일부는 R1C1 스타일을 호환성 옵션으로 제공한다.

컴퓨터가 한 셀의 공식을 계산하여 해당 셀의 표시 값을 업데이트할 때, 해당 셀에 있는 다른 셀을 명명하는 셀 참조는 컴퓨터가 명명된 셀의 값을 가져오도록 한다.

동일한 "시트"의 셀은 일반적으로 다음과 같이 주소 지정된다.


```
=A1
```


동일한 스프레드시트의 다른 시트에 있는 셀은 일반적으로 다음과 같이 주소 지정된다.

 =SHEET2!A1             (즉, 동일한 스프레드시트의 시트 2에 있는 첫 번째 셀).

Excel의 일부 스프레드시트 구현은 동일한 컴퓨터 또는 로컬 네트워크에 있는 다른 스프레드시트(현재 열려 있고 활성 상태가 아닌 파일)에 대한 셀 참조를 허용한다. 또한 동일한 컴퓨터 또는 네트워크에서 공유 가능한 것으로 정의된 다른 열려 있고 활성 상태인 스프레드시트의 셀을 참조할 수도 있다. 이러한 참조는 다음과 같은 전체 파일 이름을 포함한다.

 ='C:\Documents and Settings\Username\My spreadsheets\[main sheet]Sheet1!A1

스프레드시트에서 셀에 대한 참조는 새 행이나 열이 삽입되거나 삭제될 때 자동으로 업데이트된다. 그러나 열 합계 세트 바로 앞에 행을 추가할 때는 합계가 추가 행의 값을 반영하는지 확인해야 한다. 그렇지 않은 경우가 많다.

순환 참조는 한 셀의 공식이 다른 셀을 직접 또는 셀 참조 체인을 통해 간접적으로 참조하고, 그 다른 셀이 다시 첫 번째 셀을 참조할 때 발생한다. 많은 일반적인 에러가 순환 참조를 유발한다. 그러나 일부 유효한 기술은 순환 참조를 사용한다. 이러한 기술은 여러 스프레드시트 재계산 후 해당 셀에 대한 올바른 값으로 (일반적으로) 수렴한다.

##### 셀 범위
마찬가지로, 명명된 셀 범위 대신 범위 참조를 사용할 수 있다. 셀 범위에 대한 참조는 일반적으로 (A1:A6) 형식을 취하며, 이는 열 A의 1행부터 6행까지의 모든 셀을 지정한다. "=SUM(A1:A6)"과 같은 공식은 지정된 모든 셀을 더하고 그 결과를 공식이 포함된 셀 자체에 넣는다.

### 시트
초기 스프레드시트에서 셀은 간단한 2차원 그리드였다. 시간이 지남에 따라 모델은 3차원을 포함하도록 확장되었으며, 경우에 따라 시트라고 불리는 일련의 명명된 그리드를 포함하게 되었다. 가장 진보된 예시에서는 다양한 방식으로 데이터 세트를 슬라이스하고 투영할 수 있는 반전 및 회전 작업을 허용한다.

### 수식
[섬네일|right|279px|왼쪽 열의 값을 2로 곱한 다음, 오른쪽 열에서 가장 아래쪽 셀까지 계산된 값을 합산하는 간단한 스프레드시트의 애니메이션. 이 예시에서는 `A` 열의 값(10, 20, 30)만 입력되었고, 나머지 셀은 수식이다. `B` 열의 수식은 상대 참조를 사용하여 A 열의 값을 곱하고, `B4`의 수식은 `SUM()` 함수를 사용하여 `B1:B3` 범위의 값 [합을 찾는다.]]

공식은 결과가 포함될 셀에 결과를 배치하는 데 필요한 계산을 식별한다. 따라서 공식을 포함하는 셀은 두 가지 표시 구성 요소, 즉 공식 자체와 결과 값을 가진다. 공식은 일반적으로 특정 셀 위로 마우스를 "클릭"하여 셀이 선택될 때만 표시되며, 그렇지 않으면 계산 결과가 포함된다.

수식은 셀 또는 셀 범위에 값을 할당하며, 일반적으로 다음 형식을 가진다.

여기서 표현식은 다음으로 구성된다.
*`2`, `9.14` 또는 `6.67E-11`과 같은 값
*`A1`과 같은 단일 셀 또는 `B1:B3`과 같은 범위에 대한 다른 셀 참조
*`+`, `-`, `*`, `/` 등과 같은 산술 연산자
*`>=`, ` 100, "100% 초과", SUM(A1:A6))

추가 예시:
:=IF(AND(A1"",B1""),A1/B1,"")는 셀 A1과 B1이 모두 비어있지 않으면 A1을 B1으로 나누어 표시하고, 그렇지 않으면 아무것도 표시하지 않는다.
:=IF(AND(A1"",B1""),IF(B10,A1/B1,"0으로 나눌 수 없음"),"")는 셀 A1과 B1이 비어있지 않고 B1이 0이 아니면 A1을 B1으로 나누고, B1이 0이면 "0으로 나눌 수 없음"을 표시하며, A1과 B1 중 하나라도 비어있으면 아무것도 표시하지 않는다.
:=IF(OR(A1"",B1""),"A1 또는 B1에 텍스트 표시","")는 A1 또는 B1 셀 중 하나라도 비어있지 않으면 텍스트를 표시한다.

조건문을 작성하는 가장 좋은 방법은 단계별 구성 후 시행착오 테스트 및 코드 정제이다.

스프레드시트는 전혀 공식을 포함할 필요가 없으며, 이 경우 달력, 시간표 또는 간단한 목록처럼 행과 열로 배열된 데이터 모음( 데이터베이스)으로 간주될 수 있다. 사용 편의성, 서식 지정 및 하이퍼링크 기능 때문에 많은 스프레드시트가 오직 이 목적으로만 사용된다.

### 함수
[섬네일|400px|[마이크로소프트 엑셀에서 사용자 정의 함수 *sq(x)*의 사용]]
스프레드시트는 일반적으로 산술 연산(예: 합계, 평균 등), 삼각 함수, 통계 함수 등 여러 제공된 함수를 포함한다. 또한 종종 *사용자 정의 함수*를 위한 조항이 있다. 마이크로소프트 엑셀에서는 이러한 함수가 제공된 Visual Basic 편집기에서 비주얼 베이직 포 애플리케이션을 사용하여 정의되며, 이러한 함수는 워크시트에서 자동으로 액세스할 수 있다. 또한 워크시트에서 정보를 가져와 일부 계산을 수행하고 결과를 워크시트로 다시 보고하는 프로그램을 작성할 수 있다. 그림에서 *sq*라는 이름은 사용자에게 할당되었으며, *sq* 함수는 Excel과 함께 제공되는 *[[비주얼 베이직 포 애플리케이션|Visual Basic]]* 편집기를 사용하여 도입되었다. *이름 관리자*는 명명된 변수 *x* 및 *y*의 스프레드시트 정의를 표시한다.

### 서브루틴
[섬네일|400px|[마이크로소프트 엑셀에서 *x*를 사용하여 계산된 값을 *y*에 쓰는 서브루틴.]]
함수는 워크시트에 직접 쓸 수 없지만, 단순히 평가 결과를 반환한다. 그러나 마이크로소프트 엑셀에서는 서브루틴이 서브루틴 내에서 찾은 값이나 텍스트를 스프레드시트에 직접 쓸 수 있다. 이 그림은 명명된 열 변수 'x'의 각 멤버를 읽고, 그 제곱을 계산한 다음, 이 값을 명명된 열 변수 'y'의 해당 요소에 쓰는 서브루틴의 비주얼 베이직 코드를 보여준다. 'y' 열에는 값이 스프레드시트에서 계산되지 않고 서브루틴에서 계산되어 단순히 기록되기 때문에 수식이 포함되어 있지 않다.

### 원격 스프레드시트
현재 물리적 스프레드시트 파일 내에 위치하지 않는 셀 또는 셀 그룹을 참조할 때마다 "원격" 스프레드시트에 액세스하는 것으로 간주된다. 참조된 셀의 내용은 수동 업데이트를 통해 첫 번째 참조 시 액세스하거나, 최근에는 웹 기반 스프레드시트의 경우 지정된 자동 새로 고침 간격으로 거의 실시간 값으로 액세스할 수 있다.

### 차트
섬네일|300px|마이크로소프트 엑셀로 만든 그래프
많은 스프레드시트 응용 프로그램은 지정된 셀 그룹에서 차트와 그래프 (예: 히스토그램, 원그래프)를 생성할 수 있도록 허용하며, 셀 내용이 변경됨에 따라 동적으로 다시 구축된다. 생성된 그래픽 구성 요소는 현재 시트에 포함되거나 별도의 객체로 추가될 수 있다. Excel 히스토그램을 만들려면 REPT 함수를 기반으로 하는 수식을 사용할 수 있다.

### 다차원 스프레드시트
1980년대 후반과 1990년대 초반에 Javelin Software와 로터스 임프로브가 처음 등장했다. 기존 스프레드시트의 모델과는 달리, 보고서의 셀에 있는 데이터가 아닌 변수라는 객체를 기반으로 구축된 모델을 사용했다. 이러한 다차원 스프레드시트는 동시 다중 동기화된 보기를 포함하여 다양한 자체 문서화 방식으로 데이터와 알고리즘을 볼 수 있도록 했다. 예를 들어, Javelin 사용자는 각 변수의 논리적 뿌리와 가지를 보면서 다이어그램의 변수 간 연결을 이동할 수 있었다. 이는 아마도 초기 Javelin의 주요 기여인 사용자 논리 또는 모델 구조의 12가지 보기를 통한 추적성 개념의 한 예일 것이다. 복잡한 모델은 생성에 관여하지 않은 다른 사람들이 분석하고 이해할 수 있다.

이러한 프로그램에서 시계열 또는 모든 변수는 그 자체로 객체였으며, 행이나 열에 나타나는 셀 모음이 아니었다. 변수는 모든 다른 변수와의 연결, 데이터 참조, 텍스트 및 이미지 노트 등 많은 속성을 가질 수 있었다. 계산은 이러한 객체에 대해 수행되었으며, 셀 범위에 대해 수행되지 않았으므로 두 시계열을 더하면 자동으로 달력 시간 또는 사용자 정의 시간 프레임에 정렬되었다. 데이터는 워크시트와 독립적이었다. 즉, 행, 열 또는 전체 워크시트를 삭제해도 변수와 데이터가 파괴될 수 없었다. 예를 들어, 1월의 비용은 1월의 수익에서 차감되며, 워크시트에 나타나는지 여부와 관계없이 적용된다. 이를 통해 피벗 테이블에서 나중에 사용되는 작업이 허용되었지만, 보고서 테이블의 유연한 조작은 변수가 지원하는 많은 기능 중 하나일 뿐이었다. 더욱이 비용이 주 단위로, 수익이 월 단위로 입력되면 프로그램은 적절하게 할당하거나 보간할 수 있었다. 이 객체 설계는 변수와 전체 모델이 사용자 정의 변수 이름으로 서로를 참조하고 다차원 분석 및 방대하지만 쉽게 편집 가능한 통합을 수행할 수 있도록 했다.

맥용 스프레드시트인 Trapeze는 더 나아가 테이블 열뿐만 아니라 행렬 연산자도 명시적으로 지원했다.

### 논리 스프레드시트
논리적 표현을 기반으로 하는 수식 언어를 사용하는 스프레드시트는 논리 스프레드시트로 알려져 있다. 이러한 스프레드시트는 셀 값에 대해 연역적으로 추론하는 데 사용될 수 있다.

## 프로그래밍 문제
초기 프로그래밍 언어가 스프레드시트 인쇄물을 생성하도록 설계된 것처럼, 프로그래밍 기술 자체도 컴퓨터 내에서 데이터를 담는 테이블(스프레드시트 또는 행렬이라고도 함)을 보다 효율적으로 처리하도록 발전해 왔다.

### 최종 사용자 개발
스프레드시트는 인기 있는 최종 사용자 개발 도구이다. EUD는 전문 개발자가 아닌 사람들이 프로그래밍 언어에 대한 상당한 지식 없이도 자동화된 동작과 복잡한 데이터 객체를 생성하는 활동 또는 기술을 의미한다. 많은 사람들이 동등한 순차적 프로그램을 작성하는 것보다 스프레드시트에서 계산을 수행하는 것을 더 쉽다고 생각한다. 이는 스프레드시트의 여러 특성 때문이다.
* 그들은 프로그램 관계를 정의하기 위해 공간적 관계를 사용한다. 인간은 공간과 항목 간의 종속성에 대해 고도로 발달된 직관을 가지고 있다. 순차적 프로그래밍은 일반적으로 이해하고 변경하기 위해 느리고 신중하게 읽어야 하는 텍스트를 한 줄씩 입력해야 한다.
* 그들은 관대하여 부분적인 결과와 기능이 작동하도록 허용한다. 프로그램의 일부가 미완성이거나 손상되었더라도 하나 이상의 부분이 올바르게 작동할 수 있다. 이는 프로그램을 작성하고 디버깅하는 것을 더 쉽고 빠르게 만든다. 순차적 프로그래밍은 일반적으로 프로그램이 실행되기 위해 모든 프로그램 줄과 문자가 정확해야 한다. 하나의 오류는 일반적으로 전체 프로그램을 중지시키고 어떤 결과도 방지한다. 이러한 사용자 친화성은 스프레드시트 개발의 이점이지만, 종종 오류 발생 위험 증가와 함께 온다.
* 최신 스프레드시트는 보조 표기법을 허용한다. 프로그램은 색상, 글꼴, 선 등으로 주석을 달아 프로그램 요소의 의미에 대한 시각적 단서를 제공할 수 있다.
* 사용자가 새로운 함수를 생성할 수 있도록 하는 확장 기능은 함수형 언어의 기능을 제공할 수 있다.
* 사용자가 기계 학습 도메인에서 모델을 구축하고 적용할 수 있도록 하는 확장.
* 스프레드시트는 다재다능하다. 불 논리 및 그래픽 기능으로 전자 회로 설계도 가능하다.
* 스프레드시트는 관계형 데이터를 저장할 수 있으며 스프레드시트 수식은 SQL의 모든 쿼리를 표현할 수 있다. SQL 코드에서 스프레드시트 구현을 자동으로 생성하는 쿼리 변환기가 존재한다.

### 스프레드시트 프로그램
**"스프레드시트 프로그램"**은 시간을 주된 구성 원리로 삼기보다는 공간적 관계를 이용하여 일반적인 계산 작업을 수행하도록 설계되었다.

스프레드시트를 수학적 그래프로 생각하는 것이 편리한 경우가 많다. 여기서 노드는 스프레드시트 셀이고, 가장자리는 공식에 지정된 다른 셀에 대한 참조이다. 이를 종종 스프레드시트의 종속성 그래프라고 한다. 셀 간의 참조는 상대 위치 및 절대 위치와 같은 공간 개념과 명명된 위치를 활용하여 스프레드시트 공식을 이해하고 관리하기 쉽게 만들 수 있다.

스프레드시트는 일반적으로 의존하는 셀이 변경될 때 자동으로 셀을 업데이트하려고 시도한다. 초기 스프레드시트는 특정 순서로 셀을 평가하는 것과 같은 간단한 전술을 사용했지만, 최신 스프레드시트는 종속성 그래프에서 최소 재계산 순서를 따른다. 후기 스프레드시트는 또한 역방향으로 값을 전파하는 제한된 능력을 포함하여 특정 셀에서 특정 답변에 도달하도록 원본 값을 변경한다. 그러나 스프레드시트 셀 공식은 일반적으로 역전 불가능하므로 이 기술은 다소 제한적인 가치가 있다.

순차 프로그래밍 모델에 공통적인 많은 개념은 스프레드시트 세계에서도 유사하게 존재한다. 예를 들어, 색인 루프의 순차 모델은 일반적으로 유사한 공식(일반적으로 참조하는 셀만 다름)을 가진 셀 테이블로 표현된다.

스프레드시트는 스프레드시트 언어가 쉽게 만드는 것 이상으로 확장성을 위한 도구로 스크립팅 프로그래밍 언어인 VBA를 사용하도록 발전했다.

## 단점
스프레드시트는 양적 모델링에 있어 큰 진전을 이루었지만, 결함도 있다. 그 단점으로는 영숫자 셀 주소의 불친절함이 인식된다.

* ClusterSeven의 연구에 따르면 금융 기관 및 기업이 방대한 스프레드시트와 비정형 금융 데이터 (CSV 파일 및 Microsoft Access 데이터베이스 포함)를 이해, 관리 및 통제하는 방식에 엄청난 차이가 있는 것으로 나타났다. 2011년 초 영국에서 약 1,500명을 대상으로 한 연구에 따르면 스프레드시트 사용자 중 57%가 사용하는 스프레드시트 패키지에 대한 정식 교육을 받은 적이 없다고 응답했다. 72%는 어떤 내부 부서도 스프레드시트의 정확성을 확인하지 않는다고 말했다. 13%만이 내부 감사가 스프레드시트를 검토한다고 말했고, 단 1%만이 위험 부서의 확인을 받는다고 응답했다.

* 스프레드시트는 신뢰성 문제가 있을 수 있다. 연구에 따르면 운영 중인 스프레드시트의 모든 공식 중 약 1%가 오류를 포함하고 있다고 추정된다.

::스프레드시트 작성 및 사용과 관련된 높은 오류 위험에도 불구하고, 오류 발생 가능성을 근원적으로 구조적으로 줄여 제어 및 신뢰성을 크게 향상시킬 수 있는 특정 조치를 취할 수 있다.

* 스프레드시트의 실제 표현력은 최신 기능을 사용하지 않는 한 제한될 수 있다. 여러 요인이 이러한 제한에 기여한다. 셀 단위로 복잡한 모델을 구현하려면 세부 사항에 지루할 정도로 주의를 기울여야 한다. 작성자는 공식에 나타나는 수백 또는 수천 개의 셀 주소의 의미를 기억하기 어려워한다.

::이러한 단점은 셀 지정을 위해 명명된 변수를 사용하고 셀 위치 및 셀별 조작 대신 공식에 변수를 사용하여 완화된다. 그래프를 사용하여 매개변수 값 변경에 따라 결과가 어떻게 변경되는지 즉시 보여줄 수 있다. 스프레드시트는 사용자에게 관련 입력을 요청하고, 사용자가 요청한 결과를 표시하고, 보고서를 생성하고, 올바른 입력을 프롬프트하는 내장 오류 트랩을 갖춘 투명한 사용자 인터페이스를 제외하고는 보이지 않게 만들 수 있다.

* 마찬가지로 셀 주소를 사용하여 표현된 공식은 파악하기 어렵고 감사하기 어렵다. 연구에 따르면 숫자 결과와 셀 공식을 확인하는 스프레드시트 감사자는 숫자 결과만 확인하는 감사자보다 더 많은 오류를 발견하지 못한다. 이는 명명된 변수와 명명된 변수를 사용하는 공식을 사용하는 또 다른 이유이다.

::특히 스프레드시트에는 일반적으로 동일한 수식이 여러 개 복사되어 있다. 수식을 수정하면 사용자는 해당 수식이 포함된 모든 셀을 변경해야 한다. 이와 대조적으로 대부분의 컴퓨터 언어는 코드에 수식이 한 번만 나타나도록 허용하고 루프를 사용하여 반복을 달성하여 구현 및 감사하기 훨씬 쉽다.

* 차원 변경에는 대대적인 수정이 필요하다. 테이블에 행(또는 열)이 추가되거나 삭제되면 해당 테이블에 의존하는 많은 하위 테이블의 크기를 조정해야 한다. 이 과정에서 새 열이나 행을 위한 공간을 마련하고 그래프 데이터 소스를 조정하기 위해 다른 셀을 이동해야 하는 경우가 많다. 대규모 스프레드시트에서는 이는 극히 시간이 많이 소요될 수 있다.
* 차원을 추가하거나 제거하는 것이 너무 어려워서 일반적으로 처음부터 다시 시작해야 한다. 패러다임으로서의 스프레드시트는 스프레드시트 모델이 성숙된 후에 이러한 선택을 하는 것이 가장 자연스러운 경우가 많음에도 불구하고 스프레드시트 생성 초기에 차원을 결정하도록 강요한다. 차원을 추가하고 제거하려는 욕구는 매개변수 및 민감도 분석에서도 발생한다.
* 셀 및 셀 주소 수준에서 공동 작업이 이루어질 경우 스프레드시트 공식 작성에서의 공동 작업이 어려울 수 있다.

스프레드시트와 관련된 기타 문제점은 다음과 같다.

* 일부 출처는 특정 응용 프로그램(예산 책정, 통계)에 스프레드시트 대신 전문 소프트웨어를 사용할 것을 권장한다.
* 2007년 이전 버전에서 사용된 기본 파일 형식인 Microsoft xls 파일 형식은 65,536행, 256열(각각 216 및 28)의 용량 제한이 있었다. 이는 더 큰 데이터 세트를 사용하는 사람들에게 문제가 되며 데이터 손실로 이어질 수 있다. 시간이 지났음에도 불구하고 최근의 한 예로는 레거시 컴퓨터 시스템에서 Microsoft xls 파일 형식이 사용되었을 때 2020년 9월과 10월 영국 통계에서 COVID-19 양성 사례가 손실된 사례가 있다.
* 감사 및 개정판 관리의 부족. 이로 인해 누가 무엇을 언제 변경했는지 파악하기 어렵다. 이는 규정 준수에 문제를 일으킬 수 있다. 개정판 관리 부족은 문서에 대한 변경 사항을 추적, 분리 및 테스트할 수 없기 때문에 오류 위험을 크게 증가시킨다. 최신 스프레드시트에는 개정판 관리가 포함된다.
* 보안 부족. 스프레드시트는 특정 데이터를 누가 보고 수정할 수 있는지에 대한 통제가 부족하다. 이는 위의 감사 부족과 결합되어 누군가가 사기를 저지르기 쉽게 만들 수 있다.
* 구조가 느슨하기 때문에 정보를 잘못된 위치에 입력하거나 셀 간의 종속성(예: 수식)을 잘못 표현하여 우연히 또는 의도적으로 오류를 유발하기 쉽다.
* 수식의 결과(예: "=A1*B1")는 단일 셀(즉, 수식이 위치한 셀, 이 경우 C1)에만 적용되며, 다른 많은 셀과 심지어 실시간 날짜 및 실제 시간에서 데이터를 "추출"할 수 있다. 이는 셀 배열에 유사한 계산을 수행하려면 거의 동일한 수식(하지만 자체 "출력" 셀에 있는)이 "입력" 배열의 각 행에 대해 반복되어야 함을 의미한다. 이는 일반적인 컴퓨터 프로그램의 "수식"과 다르다. 일반적인 컴퓨터 프로그램의 "수식"은 일반적으로 모든 입력에 차례로 적용되는 하나의 계산을 수행한다. 현재 스프레드시트에서는 이러한 거의 동일한 수식의 강제 반복이 품질 보증 관점에서 해로운 결과를 초래할 수 있으며, 종종 많은 스프레드시트 오류의 원인이 된다. 일부 스프레드시트에는 이 문제를 해결하기 위한 배열 수식이 있다.
* 적절한 보안, 감사 추적, 의도하지 않은 오류 발생 및 위에서 언급한 기타 항목 없이 조직에 존재할 수 있는 엄청난 양의 스프레드시트를 관리하려고 하면 압도적일 수 있다.

데스크톱 스프레드시트 응용 프로그램에 이러한 단점 중 일부를 해결하는 내장 도구 및 타사 도구가 있지만, 이에 대한 인식과 사용은 일반적으로 낮다. 금융 분야의 많은 전문가들은 자신의 스프레드시트가 어떻게 감사되는지 "모르며", 6%만이 타사 솔루션에 투자한다.

## 스프레드시트 위험

스프레드시트 위험은 스프레드시트 응용 프로그램에서 실질적으로 잘못된 값을 도출하여 관련 (일반적으로 숫자 기반) 결정을 내릴 때 발생하는 위험이다. 예를 들어, 자산 가치 평가, 재무 계정 결정, 약물 복용량 계산 또는 구조 공학용 하중 지지 보의 크기 등이 있다. 위험성은 잘못된 또는 사기성 데이터 값 입력, 스프레드시트 논리 내의 실수 (또는 잘못된 변경), 또는 관련 업데이트 누락 (예: 오래된 환율)으로 인해 발생할 수 있다. 일부 단일 오류는 10억 달러를 초과했다. 스프레드시트 위험은 주로 개인의 행동(또는 inaction)과 관련되어 있으므로 운영 위험의 하위 범주로 정의된다.

그럼에도 불구하고 ClusterSeven이 수행한 연구에 따르면 연간 매출 5천만 파운드를 초과하는 기업의 C레벨 임원 및 고위 관리자 중 절반 가량(48%)이 해당 기업에서 스프레드시트 사용에 대한 사용 통제가 전혀 없거나 수동 프로세스가 제대로 적용되지 않고 있다고 응답했다.

2013년 매사추세츠 대학교 애머스트의 경제학 대학원생인 토마스 허든은 경제학자 카르멘 라인하트와 케네스 로고프가 부채의 시대의 성장에 사용한 스프레드시트에서 주요 코딩 오류를 발견했다. 이 논문은 2010년부터 2013년까지 유럽의 긴축 정책을 추진하는 정당화로 널리 사용되었다.

## 같이 보기
* 속성-값 시스템
* 스프레드시트 소프트웨어 비교
* 스프레드시트에서 이동 및 복사
* 스프레드시트 소프트웨어 목록
* 모델 감사

## 내용주

## 각주

## 외부 링크
* 스프레드시트의 간략한 역사 D.J. Power
* *The History of Mathematical Tables: From Sumer to Spreadsheets* Martin Campbell-Kelly, Mary Croarken, Raymond Flood, Eleanor Robson.


분류:미국의 발명품