KR100956571B1 - 스프레드시트의 셀 처리 방법, 시스템 및 컴퓨터 프로그램제품 - Google Patents

스프레드시트의 셀 처리 방법, 시스템 및 컴퓨터 프로그램제품 Download PDF

Info

Publication number
KR100956571B1
KR100956571B1 KR1020077006469A KR20077006469A KR100956571B1 KR 100956571 B1 KR100956571 B1 KR 100956571B1 KR 1020077006469 A KR1020077006469 A KR 1020077006469A KR 20077006469 A KR20077006469 A KR 20077006469A KR 100956571 B1 KR100956571 B1 KR 100956571B1
Authority
KR
South Korea
Prior art keywords
cell
formula
cells
root
spreadsheet
Prior art date
Application number
KR1020077006469A
Other languages
English (en)
Other versions
KR20070059106A (ko
Inventor
마이클 챠보우스티에
앤드류 에버바흐
트레버 몽고메리
조슈아 우즈
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20070059106A publication Critical patent/KR20070059106A/ko
Application granted granted Critical
Publication of KR100956571B1 publication Critical patent/KR100956571B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명은 스프레드시트에서 셀을 처리하는 방법, 시스템 및 컴퓨터 프로그램 제품이 제공한다. 통합된 포뮬러(formula)를 제공하도록 제1 셀에 포함된 제1 포뮬러와 제2 셀에 포함된 제2 포뮬러가 자동적으로 통합되고, 제2 포뮬러는 제1 셀의 출력을 참조한다. 통합된 포뮬러는 단일 셀에 저장된다. 스프레드시트에서 셀을 처리하는 부가적인 방법, 시스템 및 컴퓨터 프로그램 제품이 제공되고, 여기서 제1 셀과, 이 제1 셀에 포함된 포뮬러에 의해 선행 셀로서 참조되는 제2 셀과, 이 제2 셀에 포함된 포뮬러 또는 데이터를 디스플레이하는 동안 제1 셀에 포함된 포뮬러 및 그 값을 숨긴다.
스프레드시트, 포뮬러, 컴퓨터 프로그램, 메모리, 프로세서, 셀 통합, 참조 데이터, 프로그램 코드

Description

스프레드시트의 셀 처리 방법, 시스템 및 컴퓨터 프로그램 제품 {METHODS, SYSTEMS AND COMPUTER PROGRAM PRODUCTS FOR PROCESSING CELLS IN A SPREADSHEET}
본 발명은 일반적으로 스프레드시트에 관한 것으로, 보다 상세하게는 스프레드시트를 처리하는 방법, 시스템 및 컴퓨터 프로그램 제품에 관한 것이다.
전자 스프레드시트(electronic spreadsheet)는 컴퓨터 조작을 허용하는 방식으로 입력되는 데이터 및 포뮬러(formula)를 포함하는 셀을 정의하는 다차원 격자이다. 포뮬러는 결과를 결부시켜 생성한다. 이들 포뮬러는 스프레드시트의 복수 셀에 걸쳐 있고 스프레드시트의 다른 셀과 상호 의존할 수 있다. 스프레드시트는 이러한 많은 개수의 점유 셀을 포함할 수 있고, 이는 스프레드시트를 평가 또는 관찰하는데 사용자 어려움을 초래할 수 있다.
본 발명의 특정 실시예는 스프레드시트에서 셀을 처리하는 방법, 시스템 및 컴퓨터 프로그램 제품을 제공한다. 본 발명의 실시예에 따르면, 제1 셀에 포함된 제1 포뮬러와 제2 셀에 포함된 제2 포뮬러(제1 셀의 출력을 참조함)는 자동적으로 통합되어 통합된 포뮬러를 제공한다. 통합된 포뮬러는 단일 셀에 저장된다.
본 발명의 부가적인 실시예에 따르면, 스프레드시트에서 셀을 처리하는 방법은 제1 셀과, 이 제1 셀에 포함된 포뮬러에 의해 선행 셀로서 참조되는 제2 셀과, 이 제2 셀에 포함된 포뮬러 또는 데이터를 디스플레이하는 동안, 제1 셀에 포함된 포뮬러 및 그 값을 숨기는 단계를 포함한다.
본 발명의 실시예들이 주로 방법에 관하여 상술되었지만, 본 발명의 부가적인 실시예에 따르면, 컴퓨터 판독 가능한 프로그램 코드가 내부에서 구현되는 컴퓨터 판독 가능한 매체를 포함하는 컴퓨터 프로그램 제품이 제공되는데, 이 컴퓨터 판독 가능한 프로그램 코드는 상술한 방법의 각 단계를 실행하도록 구성된 컴퓨터 판독 가능한 프로그램 코드를 포함한다. 본 발명의 부가적인 실시예에 따르면, 상술한 방법의 각 단계를 실행하는 수단을 포함하는 시스템이 제공된다.
제1 실시 형태로부터 본 발명은, 제1 셀에 포함된 제1 포뮬러와 제2 셀에 포함된 제2 포뮬러를 자동적으로 통합하여 통합된 포뮬러를 제공하는 단계로서, 제2 포뮬러는 제1 셀의 출력을 참조하는 단계; 및 통합된 포뮬러를 단일 셀에 저장하는 단계를 포함하는 스프레드시트에서 셀을 처리하는 방법을 제공한다.
바람직하게는, 본 발명은, 상기 통합된 포뮬러를 단일 셀에 저장하는 단계는 통합된 포뮬러를 단일 셀에 자동적으로 저장하는 단계를 포함하는 것인 방법을 제공한다.
바람직하게는, 본 발명은, 제3 셀에 포함된 제3 포뮬러를 제1 및 제2 포뮬러와 자동적으로 통합하여 통합된 포뮬러를 제공하는 단계로서, 제3 셀의 출력은 제1 및 제2 포뮬러 중 적어도 하나에 의해 참조되는 단계를 더 포함하는 방법을 제공한다.
바람직하게는, 본 발명은 제1 셀을 소거하는 단계를 더 포함하는 방법을 제공한다.
바람직하게는, 본 발명은 단일 셀이 제2 셀인 것인 방법을 제공한다.
바람직하게는, 본 발명은 제2 셀을 선택하여 통합하는 사용자 입력을 수신하는 단계를 더 포함하는 방법을 제공한다.
바람직하게는, 본 발명은 제2 셀을 선택하는 사용자 입력에 응답하여 제2 셀에 선행하는 셀을 강조하는 단계를 더 포함하는 방법을 제공한다.
바람직하게는, 본 발명은 제1 셀을 선택하여 통합하는 사용자 입력을 수신하는 단계를 더 포함하는 방법을 제공한다.
바람직하게는, 본 발명은, 제1 포뮬러에의 입력을 포함하는 입력 셀을 선택하는 사용자 입력을 수신하는 단계로서, 입력 셀은 단일 셀에 통합되지 않는 것인 단계를 더 포함하는 방법을 제공한다.
바람직하게는, 본 발명은 단일 셀이 통합된 포뮬러를 포함하는 것을 시각적으로 표시하는 단계를 더 포함하는 방법을 제공한다.
바람직하게는, 본 발명은, 상기 단일 셀이 통합된 포뮬러를 포함하는 것을 시각적으로 표시하는 단계는 단일 셀이 통합된 포뮬러를 포함하는 것을 표시하는 그래픽 표시를 단일 셀 상에 디스플레이하는 단계를 포함하는 것인 방법을 제공한다.
바람직하게는, 본 발명은, 상기 단일 셀이 통합된 포뮬러를 포함하는 것을 시각적으로 표시하는 단계는 단일 셀이 통합된 포뮬러를 포함하는 것을 표시하는 포뮬러 이름을 단일 셀에 디스플레이하는 단계를 포함하는 방법을 제공한다.
바람직하게는, 본 발명은 포뮬러 이름의 사용자 입력을 수신하는 단계를 더 포함하는 방법을 제공한다.
바람직하게는, 본 발명은 제1 셀이 제2 셀 이외의 다른 셀에 의해 참조되는지 여부를 판정하는 단계; 및 제1 셀이 제2 셀 이외의 다른 셀에 의해 참조되는 경우, 사용자에게 경고를 발생하는 단계를 더 포함하는 방법을 제공한다.
바람직하게는, 본 발명은, 제1 셀에 포함된 제1 포뮬러와 제2 셀에 포함된 제2 포뮬러를 자동적으로 통합하여 통합된 포뮬러를 제공하는 방법으로서, 제2 포뮬러는 제1 셀의 출력을 참조하고, 제1 및 제2 셀을 선택하는 사용자 입력을 수신하는 단계; 제1 및 제2 셀에 대한 포뮬러 데이터를 입수하는 단계; 적어도 하나의 입력 셀을 결정하는 단계; 및 통합된 포뮬러를 결정하는 단계를 포함하고, 통합된 포뮬러를 단일 셀에 저장하는 단계는 단일 셀을 통합된 포뮬러에 대한 반환값으로서 할당하는 단계를 포함하는 것인 방법을 제공한다.
바람직하게는, 본 발명은 단일 셀이 제2 셀이며, 제1 셀을 소거하는 단계를 더 포함하는 방법을 제공한다.
바람직하게는, 본 발명은, 스프레드시트에서 셀을 처리하는 방법으로서, 제1 셀과, 이 제1 셀에 포함된 포뮬러에 의해 선행 셀로서 참조되는 제2 셀과, 이 제2 셀에 포함된 포뮬러 또는 데이터를 디스플레이하는 동안, 제1 셀에 포함된 포뮬러 및 그 값을 숨기는 단계를 더 포함하는 방법을 제공한다.
바람직하게는, 본 발명은, 상기 제1 셀과, 이 제1 셀에 포함된 포뮬러에 의해 선행 셀로서 참조되는 제2 셀과, 이 제2 셀에 포함된 포뮬러 또는 데이터를 디스플레이하는 동안, 제1 셀에 포함된 포뮬러 및 그 값을 숨기는 단계는 제1 셀의 종속 셀인 제3 셀의 포뮬러를 디스플레이하는 동안 제1 셀에 포함된 포뮬러 및 그 값을 숨기고 제2 셀에 포함된 포뮬러 또는 데이터를 디스플레이하는 단계를 포함하는 것인 방법을 제공한다.
바람직하게는, 본 발명은 사용자에 의한 제3 셀의 선택에 대응하여 제1 셀의 숨겨진 포뮬러를 디스플레이하는 단계를 더 포함하는 방법을 제공한다.
바람직하게는, 본 발명은 사용자에 의한 제3 셀의 선택에 대응하여 제3 셀에 선행하는 셀을 강조하는 단계를 더 포함하는 방법을 제공한다.
바람직하게는, 본 발명은 제2 셀을 입력 셀로서 선택하는 사용자 입력을 수신하는 단계를 더 포함하는 방법을 제공한다.
바람직하게는, 본 발명은 제1 셀이 숨겨진 포뮬러를 포함하는 것을 시각적으로 표시하는 단계를 더 포함하는 방법을 제공한다.
바람직하게는, 본 발명은, 상기 제1 셀이 숨겨진 포뮬러를 포함하는 것을 시각적으로 표시하는 단계는 제1 셀이 숨겨진 포뮬러를 포함하는 것을 표시하는 그래픽 표시를 제1 셀 상에 디스플레이하는 단계를 포함하는 것인 방법을 제공한다.
바람직하게는, 본 발명은, 상기 제1 셀이 숨겨진 포뮬러를 포함하는 것을 시각적으로 표시하는 단계는 제3 셀에 선행하는 셀이 숨겨진 포뮬러를 포함하는 것을 표시하는 그래픽 표시를 제1 셀로부터 종속되는 제3 셀 상에 디스플레이하는 단계를 포함하는 것인 방법을 제공한다.
바람직하게는, 본 발명은, 상기 제1 셀이 숨겨진 포뮬러를 포함하는 것을 시각적으로 표시하는 단계는 제3 셀에 선행하는 셀이 숨겨진 포뮬러를 포함하는 것을 표시하는 포뮬러 이름을 제1 셀로부터 종속되는 제3 셀에 디스플레이하는 단계를 포함하는 것인 방법을 제공한다.
제2 실시 형태로부터 본 발명은, 제1 셀에 포함된 제1 포뮬러와 제2 셀에 포함된 제2 포뮬러를 자동적으로 통합하여 통합된 포뮬러를 제공하는 수단으로서, 제2 포뮬러는 제1 셀의 출력을 참조하는 수단; 및 통합된 포뮬러를 단일 셀에 저장하는 수단을 포함하는, 스프레드시트에서 셀을 처리하는 시스템을 제공한다.
제3 실시 형태로부터 본 발명은, 제1 셀과, 이 제1 셀에 포함된 포뮬러에 의해 참조되는 선행 셀인 제2 셀과, 이 제2 셀에 포함된 포뮬러 또는 데이터를 디스플레이하는 동안, 제1 셀에 포함된 포뮬러 및 그 값을 숨기는 수단을 포함하는, 스프레드시트에서 셀을 처리하는 시스템을 제공한다.
제4 실시 형태로부터 본 발명은, 디지털 컴퓨터의 내부 메모리에 로딩할 수 있는 컴퓨터 프로그램 제품으로서, 상기 프로그램 제품이 컴퓨터 상에서 동작될 때, 상술한 본 발명을 실행하도록 이행하는 소프트웨어 코드부를 포함하는 컴퓨터 프로그램 제품을 제공한다.
도 1은 본 발명의 일부 실시예에 따라 사용하기에 적합한 데이터 처리 시스템의 블록도이다.
도 2는 본 발명의 일부 실시예에 따라 스프레드시트를 처리하는 시스템의 보 다 상세한 블록도이다.
도 3은 본 발명의 일부 실시예에 따라 스프레드시트를 처리하는 동작을 예시하는 순서도이다.
도 4는 본 발명의 일부 실시예에 따라 스프레드시트를 처리하는 동작을 예시하는 부가적인 순서도이다.
도 5는 본 발명의 일부 실시예에 따른 스프레드시트를 나타낸다.
도 6은 본 발명의 실시예에 따라 셀 C6이 선택되어 메뉴 상자가 제공되는 것을 제외하고 도 5에서와 동일한 스프레드시트를 나타낸다.
도 7은 본 발명의 실시예에 따라 통합 셀 특징이 활성화되어 대화 상자가 제공되는 것을 제외하고 도 6에서와 동일한 스프레드시트를 나타낸다.
도 8은 본 발명의 실시예에 따라 포뮬러 이름이 대화 상자에 입력된 것을 제외하고 도 7에서와 동일한 스프레드시트를 나타낸다.
도 9는 본 발명의 실시예에 따라 통합 셀 특징이 실행된 것을 제외하고 도 8에서와 동일한 스프레드시트를 나타낸다.
도 10은 본 발명의 실시예에 따라 스프레드시트가 값 디스플레이 모드에 있는 것을 제외하고 도 9에서와 동일한 스프레드시트를 나타낸다.
도 11은 셀 C6 및 셀 C6의 입력 셀이 강조되는 것을 제외하고 도 9에서와 동일한 스프레드시트를 나타낸다.
도 12는 본 발명의 부가적인 실시예에 따라 스프레드시트를 처리하는 동작을 예시하는 순서도이다.
도 13은 본 발명의 변형 실시예에 따른 통합 셀 특징이 실행되고, 셀 C6이 선택되어, 셀 C6으로부터 종속되는 셀이 강조되고, 숨겨진 포뮬러가 셀 A1 및 B4에 디스플레이되는 것을 제외하고 도 9에서와 동일한 스프레드시트를 나타낸다.
이하, 본 발명의 예시적인 실시예가 도시되어 있는 첨부된 도면을 참조하여 본 발명을 보다 상세하게 설명한다. 그러나, 본 발명은 많은 다양한 형태로 구현될 수 있고, 여기서 설명되는 실시예에 한정되는 것으로 해석되지 않아야 하며, 오히려, 본 실시예들을 제공함으로써 본 발명이 완전해지고, 본 발명의 범위를 당업자에게 충분히 전달할 것이다. 동일한 참조 부호는 전반에 걸쳐 동일한 요소를 가리킨다. 여기서 사용되는 바와 같이, 용어 "및/또는"은 하나 이상의 연관된 리스트 항목의 임의의 모든 조합을 포함하고 "/"로 생략될 수 있다.
여기서 사용되는 전문 용어는 단지 특정 실시예를 설명하기 위한 목적이며, 본 발명을 제한하는 것으로 의도되지 않는다. 여기서 사용되는 바와 같이, 단수형(영어로 "a", "an" 및 "the")은 문맥이 명확히 다른 형을 나타내지 않는다면, 복수형도 포함하는 것으로 의도된다. 또한, 용어 "포함한다(comprise)" 및/또는 "포함하는(comprising)"이, 본 명세서에서 사용시, 언급된 특징, 완전체, 단계, 동작, 요소, 및/또는 컴포넌트의 존재를 구체화하지만, 하나 이상의 다른 특징, 완전체, 단계, 동작, 요소, 컴포넌트, 및/또는 이들 그룹의 존재나 추가를 배제하지 않는다는 것을 이해할 것이다.
달리 정의되지 않는다면, 여기서 사용되는 모든 용어(기술적 및 과학적 용어 를 포함함)는 본 발명이 속하는 기술분야에서 당업자가 통상적으로 이해하는 것과 같은 의미를 갖는다. 공용되는 사전에서 정의된 것과 같은 용어들이 관련 기술의 문맥에서 그들 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 여기서 명백히 정의되어 있지 않으면 이상적인 또는 지나치게 형식적인 의미로 해석되지 않는다는 것을 이해할 것이다.
여기서 사용되는 바와 같이, 종속 트리(dependency tree)" 또는 "종속 체인(dependency chain)"은 주어진 루트 셀로부터 직접적으로 또는 간접적으로 종속(루트 셀의 "종속"이라 칭함)되거나 주어진 루트 셀이 직접적으로 또는 간접적으로 종속(루트 셀의 "선행"으로 칭함)되는 내부에 포함된 셀 또는 정보[예컨대, 데이터 및/또는 포뮬러(들)]를 의미한다. 종속 트리는 하나 이상의 분기(branch)를 가질 수 있다. "분기 셀"은 종속 트리 내의 셀이고, 종속 셀 또는 선행 셀일 수 있다.
여기서 사용되는 바와 같이, "리프 셀(leaf cell)"은 루트 셀의 종속 트리의 분기 내에 있는 최종 또는 종단 셀인 셀을 의미한다(즉, 리프 셀은 스프레드시트 내의 임의의 다른 셀에 종속되지 않음). 리프 셀은 일종의 분기 셀이다.
여기서 달리 나타내지 않는다면, 사용자는 컴퓨터 애플리케이션에 선택 입력을 제공하기 위한 공지된 종래의 기술을 포함하여 임의의 적절한 수단이나 방법에 의해 셀, 옵션, 특징 또는 기타 요소나 기능을 선택할 수 있다. 예를 들면, 셀 또는 상자 위에 커서를 위치하여 마우스 버튼을 클릭하거나, 셀 또는 상자로 탭 이동하여 "엔터" 키를 누름으로써 셀 또는 상자를 선택할 수 있다.
당업자가 인지하는 바와 같이, 본 발명은 방법, 데이터 처리 시스템, 및/또 는 컴퓨터 프로그램 제품으로서 구현될 수 있다. 따라서, 본 발명은 완전히 하드웨어 형상, 완전히 소프트웨어 형태 또는 소프트웨어와 하드웨어를 조합한 형태를 취할 수 있다. 더욱이, 본 발명은 컴퓨터 사용 가능한 프로그램 코드가 매체 내에 구현된 컴퓨터 사용 가능한 저장 매체 상의 컴퓨터 프로그램 제품의 형태를 취할 수 있다. 하드디스크, CD-ROM, 광학 저장 장치, 인터넷 또는 인트라넷을 지원하는 것과 같은 전송 매체, 또는 자기 저장 장치를 포함하는 임의의 적합한 컴퓨터 판독 가능한 매체가 이용될 수 있다.
본 발명의 동작을 실행하는 컴퓨터 프로그램 코드는 자바7(JAVA7), 스몰토크(Smalltalk) 또는 C++과 같은 객체 지향 프로그래밍 언어로 작성될 수 있다. 그러나, 본 발명의 동작을 실행하기 위한 컴퓨터 프로그램 코드는 또한 "C" 프로그래밍 언어와 같은 종래의 절차적 프로그래밍 언어로, 또는 비주얼 베이식(VisualBasic)과 같은 시각적 지향 프로그래밍 환경에서 작성될 수 있다.
프로그램 코드는 사용자 컴퓨터 상에서 완전하게, 사용자 컴퓨터상에서 부분적으로, 독립적 소프트웨어 패키지로서, 사용자 컴퓨터 상에서 부분적으로, 그리고 원격 컴퓨터상에서 부분적으로 또는 원격 컴퓨터상에서 완전하게 실행될 수 있다. 후자 시나리오에서, 원격 컴퓨터는 근거리 통신망(LAN) 또는 광역 통신망(WAN)을 통해 사용자 컴퓨터에 접속될 수 있거나, [예를 들어, 인터넷 서비스 제공자(Internet Service Provider)를 사용한 인터넷을 통해] 외부 컴퓨터에 접속될 수 있다.
본 발명의 실시예에 따른 방법, 시스템 및/또는 컴퓨터 프로그램 제품의 순 서도 예시 및/또는 블록도를 참조하여 아래에서 본 발명을 부분적으로 설명한다. 예시된 각 블록 및 블록의 조합이 컴퓨터 프로그램 명령에 의해 구현될 수 있다는 것을 이해할 것이다. 이들 컴퓨터 프로그램 명령은 범용 컴퓨터, 특수 용도 컴퓨터, 또는 기타 프로그램 가능한 데이터 처리 장치의 프로세서에 제공되어 기계를 생산함으로써, 컴퓨터 프로세서 또는 기타 프로그램 가능한 데이터 처리 장치를 통해서 실행되는 명령이 블록 또는 블록들에서 구체화된 기능/작용을 구현하는 수단을 형성할 수 있다.
이들 컴퓨터 프로그램 명령은 또한 컴퓨터 또는 기타 프로그램 가능한 데이터 처리 장치가 특정 방식으로 기능하도록 할 수 있는 컴퓨터 판독 가능한 메모리에 저장됨으로써, 컴퓨터 판독 가능한 메모리에 저장된 명령이 블록 또는 블록들에서 구체화된 기능/작용을 구현하는 명령 수단을 포함하는 제조 물품을 생산할 수 있다.
컴퓨터 프로그램 명령은 또한 컴퓨터 또는 기타 프로그램 가능한 데이터 처리 장치에 로딩되어 일련의 동작 단계들이 컴퓨터 또는 기타 프로그램 가능한 장치상에서 이행되도록 하여 컴퓨터 구현 프로세스를 생성함으로써, 컴퓨터 또는 기타 프로그램 가능한 장치 상에서 실행되는 명령이 블록 또는 블록들에서 구체화된 기능/작용을 구현하는 단계를 제공할 수 있다.
이제부터 도 1 내지 도 11을 참조하여 본 발명의 실시예를 설명한다. 여기서 설명되는 바와 같이, 본 발명의 실시예는 스프레드시트의 복수 셀을 단일 셀에 통합하는 단계를 제공한다. 이러한 방식으로, 스프레드시트 내의 가치 있는 공간 (즉, 셀)이 비워져 스프레드시트의 복잡성이 감소될 수 있다.
도 1 내지 도 11의 순서도 및 블록도는 본 발명의 다양한 실시예에 따른 시스템, 방법 및 컴퓨터 프로그램 제품을 가능하게 구현하는 아키텍처, 기능성, 및 동작을 예시한다. 이에 대해서, 순서도 또는 블록도의 각 블록은 모듈, 세그먼트, 또는 코드부를 나타낼 수 있고, 이는 특정한 논리 함수(들)를 구현하는 하나 이상의 실행 가능한 명령을 포함한다. 일부의 변형 구현예에서, 블록에 언급된 함수들이 도면에 언급된 순서에서 벗어나 발생될 수도 있다는 것을 또한 주목해야 한다. 예를 들어, 연속적으로 도시된 2개의 블록은 사실상 거의 동시에 실행될 수 있거나, 블록들은 때때로 관련되는 기능성에 따라서 역순으로 실행될 수도 있다. 블록도 및/또는 순서도 예시의 각 블록, 및 블록도 및/또는 순서도 예시의 블록의 조합이 특정한 기능이나 작용을 이행하는 특수 용도 하드웨어 기반 시스템, 또는 특수 용도 하드웨어와 컴퓨터 명령의 조합에 의해 구현될 수 있다는 것을 또한 이해할 것이다.
이제 도 1을 참조하면, 본 발명의 일부 실시예에 따른 시스템에 사용하기에 적합한 데이터 처리 시스템의 블록도를 설명한다. 도 1에 도시된 바와 같이, 데이터 처리 시스템(30)의 예시적인 실시예는 통상적으로 프로세서(38)와 통신하는 키보드 또는 키패드와 같은 입력 장치(들)(32), 디스플레이(34), 및 메모리(36)를 포함한다. 데이터 처리 시스템(30)은 프로세서(38)와 또한 통신하는 스피커(44), 및 I/O 데이터 포트(들)(46)를 더 포함할 수 있다. I/O 데이터 포트(46)는 데이터 처리 시스템(30)과 다른 컴퓨터 시스템 또는 네트워크 사이에서 정보를 전송하는데 사용될 수 있다. 이들 컴포넌트는 많은 종래의 데이터 처리 시스템에서 사용되는 것과 같은 종래의 컴포넌트일 수 있으며, 이는 여기서 설명되는 바와 같이 동작하도록 구성될 수 있다.
도 2는 본 발명의 실시예에 따른 시스템, 방법, 및/또는 컴퓨터 프로그램 제품을 예시하는 데이터 처리 시스템의 블록도이다. 프로세서(38)는 어드레스/데이터 버스(48)를 통해서 메모리(36)와 통신한다. 프로세서(38)는 마이크로프로세서와 같이, 임의의 상업적으로 입수 가능한 것이거나 주문형 프로세서일 수 있다. 메모리(36)는 데이터 처리 시스템(30)의 기능성을 구현하는데 사용되는 소프트웨어 및 데이터를 포함하는 메모리 장치의 전반적인 계층 구성을 나타낸다. 메모리(36)는 다음 유형의 장치, 즉 캐시, ROM, PROM, EPROM, EEPROM, 플래시 메모리, SRAM 및/또는 DRAM을 포함할 수 있지만, 이에 한정되지 않는다.
도 2에 도시된 바와 같이, 메모리(36)는 데이터 처리 시스템(30)에서 사용되는 여러 가지 카테고리, 즉 운영 체제(52), 응용 프로그램(54), 입력/출력(I/O) 장치 드라이버(58), 및 데이터(67)의 소프트웨어와 데이터를 포함할 수 있다. 당업자가 인지하는 바와 같이, 운영 체제(52)는 뉴욕주 아몬크시의 IBM사(International Business Machines Corporation)로부터의 OS/2, AIX 또는 System390, 워싱턴주 레드먼드시의 MS사(Microsoft Corporation)로부터의 Windows95, Windows98, Windows2000 또는 WindowXP, Unix 또는 Linux와 같이, 데이터 처리 시스템과 함께 사용하기에 적합한 임의의 운영 체제일 수 있다. I/O 장치 드라이버(58)는 통상적으로 I/O 데이터 포트(들)(46)와 특정 메모리(36) 컴포넌트 들과 통신하도록 응용 프로그램(54)에 의해 운영 체제(52)를 통해 액세스되는 소프트웨어 루틴을 포함한다. 응용 프로그램(54)은 데이터 처리 시스템(30)의 다양한 특징을 구현하는 프로그램을 예시한다. 최종적으로, 데이터(67)는 응용 프로그램(54), 운영 체제(52), I/O 장치 드라이버(58), 및 메모리(36)에 상주할 수 있는 기타 소프트웨어 프로그램에 의해 사용되는 정적 및 동적 데이터를 나타낸다.
도 2에 더 도시된 바와 같이, 응용 프로그램(54)은 복수 셀 통합 모듈(60) 및 적어도 하나의 스프레드시트 애플리케이션(62)을 포함할 수 있다.
도 2에 예시된 실시예에서 도시된 바와 같이, 메모리(36)의 데이터부(67)는 포뮬러 데이터(64) 및 참조 데이터(66)를 포함할 수 있다.
본 발명의 실시예가 응용 프로그램, 데이터 등 사이의 특정한 구분을 참조하여 도 2에 예시되었지만, 본 발명은 도 2의 구성에 한정되는 것으로 해석되지 않아야 하며, 여기서 설명되는 동작을 실행할 수 있는 임의의 구성을 포함하는 것으로 의도된다.
스프레드시트 및 그 동작은 당업자에게 잘 알려져 있으므로 여기서는 상세히 설명되지 않는다. 스프레드시트는 통상적으로 각각의 셀과 연관된 2차원 배열의 데이터 구조로서 컴퓨터 프로그램에서 표현된다. 각각의 데이터 구조는 무엇보다도 셀의 데이터 또는 포뮬러, 셀에 종속되는 셀(종속으로 칭함)에 대한 포인터의 링크된 리스트, 및 그 셀이 종속되는 셀(선행 또는 참조 셀로 칭함)에 대한 포인터의 링크된 리스트를 포함한다. 포뮬러는 이행될 하나 이상의 수학적 연산 및 이 수학적 연산(들)에 필요로 하는 값에 대한 임의의 셀 참조 또는 소스를 포함한다. 포뮬러는 셀 참조만을 포함할 수 있다. 개념적으로, 포인터는 종속 트리를 형성하고, 여기서 참조 셀은 루트(root) 셀로 칭할 수 있고, 트리의 분기를 종단하는 종속 셀 및 선행 셀은 리프(leaf) 셀로 칭할 수 있다. 트리 내의 셀들은 그들 레벨, 즉, 분기 셀과 주어진 루트 셀 사이의 단계 수에 의해 특징될 수 있다.
스프레드시트 애플리케이션은 셀을 평가하여 셀의 포뮬러에서 언급되는 임의의 셀이 존재하는지 여부를 판정하도록 구성될 수 있다. 마찬가지로 애플리케이션은 언급된 셀(들) 등을 평가하여 스프레드시트의 셀들의 모든 또는 선택된 셀 사이의 종속 및/또는 선행 상호 관계를 매핑할 수 있다. 이러한 평가는 임의의 적절한 방법으로 이루어질 수 있다. 사용시, 스프레드시트는 포뮬러 내의 셀 참조의 값을 검색하여 포뮬러에 의해 정의된 수학적 연산을 이행함으로써, 셀의 포뮬러에 대한 해답을 자동적으로 계산하도록 동작될 수 있다. 스프레드시트의 셀 중에서 종속 체인을 평가 및 갱신하는 시스템 및 방법이 당업자에게 잘 알려져 있다. 예를 들면, 적절한 방법이 Wisniewski에게 허여된 미국특허 제6,460,059호에 기술되어 있고, 이는 그 전체 내용이 참조용으로써 여기에 포함된다.
도 3 및 도 4는 본 발명의 특정 실시예에 따른 방법, 시스템, 및 프로그램 제품을 예시하는 순서도이다. 순서도의 각각의 단계, 및 순서도 도표 내의 단계 조합이 컴퓨터 프로그램 명령에 의해 구현될 수 있다는 것을 이해할 것이다. 이들 컴퓨터 프로그램 명령은 컴퓨터 또는 기타 프로그램 가능한 데이터 처리 장치에 로딩되어 기계를 생산함으로써, 컴퓨터 또는 기타 프로그램 가능한 장치 상에서 실행되는 명령들이 순서도 단계(들)에서 구체화된 기능을 구현하는 수단을 형성할 수 있다. 이들 컴퓨터 프로그램 명령은 또한 컴퓨터 또는 기타 프로그램 가능한 장치가 특정 방식으로 기능하도록 할 수 있는 컴퓨터 판독 가능한 메모리에 저장됨으로써, 컴퓨터 판독 가능한 메모리에 저장된 명령이 순서도 단계(들)에서 구체화된 기능을 구현하는 명령 수단을 포함하는 제조 물품을 생산할 수 있다. 컴퓨터 프로그램 명령은 또한 컴퓨터 또는 기타 프로그램 가능한 장치에 로딩되어 일련의 동작 단계들이 컴퓨터 또는 기타 프로그램 가능한 장치상에서 이행되도록 하여 컴퓨터 구현 프로세스를 생성함으로써, 컴퓨터 또는 기타 프로그램 가능한 장치상에서 실행되는 명령들이 순서도 단계(들)에서 구체화된 기능을 구현하는 단계를 제공할 수 있다.
따라서, 순서도 예시의 단계는 특정한 기능을 이행하는 수단의 조합, 특정한 기능을 이행하는 단계의 조합 및 특정한 기능을 이행하는 프로그램 명령 수단을 지원한다. 순서도 예시의 각각의 단계, 및 순서도 예시 내의 단계 조합이 특정한 기능이나 단계를 이행하는 특수 용도 하드웨어 기반 컴퓨터 시스템, 또는 특수 용도 하드웨어와 컴퓨터 명령의 조합에 의해 구현될 수 있다는 것을 또한 이해할 것이다.
이제 도 3의 순서도를 참조하면, 스프레드시트를 처리하기 위한 본 발명의 실시예에 따른 동작이 도시되어 있다. 이러한 동작에서, 제1 셀에 포함된 제1 포뮬러는 제2 셀 내의 제2 포뮬러와 자동적으로 통합되어 통합된 포뮬러를 제공한다(블록 202). 제2 포뮬러는 제1 셀을 참조한다. 통합된 포뮬러는 단일 셀에 저장된다(블록 204). "자동적으로"에 대해서는, 사용자가 통합된 포뮬러를 수동으로 타이핑하여 이를 단일 셀에 붙여넣기하는 것 등을 필요로 하지 않고 포뮬러 통합이 실행되는 것을 의미한다. 오히려, 제1 포뮬러와 제2 포뮬러의 통합은 복수 셀 통합 모듈(60)에 의해 자동적으로 달성된다. 자동적으로는 사용자에 의한 통합 기능의 활성화를 포함할 수 있다. 일부 실시예에 따라, 통합된 포뮬러는 사용자로부터 어떠한 부가적인 입력도 필요로 하지 않고 단일 셀에 자동적으로 저장된다. 본 발명의 부가적인 형태 및 그 실시예를 아래에서 설명한다.
이제부터 도 4의 순서도 및 도 5 내지 도 11에 도시된 예시적인 스프레드시트(100)를 참조하여 본 발명의 특정 실시예를 설명한다.
스프레드시트(100)는 예를 들어 디스플레이(34) 상에[즉, “온 스크린(on screen)”] 표시되는 열(A-E)과 행(1-9)을 갖는다. 스프레드시트(100)는 디스플레이 상에 나타내지 않았지만[즉, "오프 스크린(off screen)"], 디스플레이에서 스프레드시트를 이동시켜(예컨대, 스크롤링하여) 디스플레이 상에 나타낼 수 있는 부가적인 열 및/또는 행을 포함할 수 있다.
당업자에 의해 명백하게 인지되는 바와 같이 열(A-E)과 행(1-9) 각각은 셀 A1, A2, B1, B2 등을 정의한다. 도시된 바와 같이, 적어도 어떤 셀은 내부에 포함되거나 저장된 포뮬러 또는 데이터 값을 갖는다. 도 5 내지 도 9와 도 11에 도시된 바와 같이, 스프레드시트(100)는 포뮬러 자체가 디버깅 등을 하는데 바람직할 수 있는 것처럼 표시되는 모드에 있다. 그러나, 본 발명의 다양한 형태는 스프레드시트가 포뮬러 대신에 또는 이에 추가하여 포뮬러로부터의 결과적인 값을 표시하는 모드에 있는 경우에 또한 사용될 수 있다. 도 10에 도시된 바와 같이, 스프레 드시트(100)는 결과적인 값을 표시하는 모드에 있다.
예를 들면, 도 5에 도시된 바와 같이 초기에 구성된 스프레드시트(100)에 대해서, 사용자는 먼저 복수 셀 통합 모듈(60)의 셀 통합 특징을 사용하여 사용자가 통합하고자 하는 스프레드시트(100)의 셀을 선택할 수 있다(블록 210, 도 4). 셀 통합 특징은 가능하고 셀은 임의의 적절한 방법에 의해 선택될 수 있다. 예를 들면, 셀 통합 특징은 스프레드시트(100)의 부근에 표시되는 툴바(tool bar), 그의 풀다운 메뉴, 마우스 오른쪽 클릭 팝업 메뉴 등에 옵션으로서 리스트될 수 있다. 도 6에 도시된 바와 같이, 사용자는 셀 C6 상에 오르쪽 마우스 클릭하고, 이에 대응하여 복수 셀 통합 모듈(60)은 셀 C6[경계(110)로 표시됨]에 초점을 고정시켜 팝업 메뉴(112)를 제시한다. 사용자는 팝업 메뉴(112)로부터 "셀 통합"을 선택함으로써 셀 C6의 선택 및 셀 통합 요청을 확인한다.
대응하여, 복수 셀 통합 모듈(60)은 포뮬러 데이터 모듈(64) 및 참조 데이터 모듈(66)로부터 선택된 셀 C6에 대한 포뮬러 데이터 및 참조 데이터를 입수한다(블록 212). 이 데이터를 사용하여, 복수 셀 통합 모듈(60)은 셀 C6에 대한 선행 트리를 결정하고 선행 트리의 리프 셀(들) 및 임의의 중간 분기 셀[즉, 루트 셀과 리프 셀(들) 사이의 셀]을 식별한다. 도 7의 스프레드시트(100)에서, 선행 트리는 셀 C6의 포뮬러에 의해 참조되는 셀 A1, 셀 A1의 포뮬러에 의해 참조되는 셀 B2, 셀 A1의 포뮬러에 의해 또한 참조되는 셀 B4, 및 셀 B4의 포뮬러에 의해 참조되는 셀 A7을 포함한다.
복수 셀 통합 모듈(60)은 선택된 루트 셀 C6의 선행 트리 내의 셀을 시각적 으로 표시한다. 도 7에 도시된 스프레드시트(100)에서, 선행 셀 A1, A7, B1 및 B4는 도시된 바와 같이 음영 또는 강조에 의해 시각적으로 표시된다. 선행 셀을 시각적으로 표시하거나 구별하는 임의의 적절한 기술이 이용될 수 있다는 것을 인지할 것이다. 시각적 표시는 또한 리프 셀(셀 A7 및 셀 B2)과 중간 분기 셀(셀 A1 및 셀 B4)을 구별할 수 있다.
포뮬러 및 참조 데이터를 사용하여, 복수 셀 통합 모듈(60)은 또한 셀 C6의 선행 트리에는 없지만 셀 C6의 종속 트리의 중간 분기 셀을 참조하는 임의의 셀을 식별할 수 있다. 예를 들면, 도 7의 스프레드시트에서, 셀 D2는 셀 B4를 참조하는 포뮬러 "=B4"를 포함한다. 셀 B4는 셀 C6의 선행 트리의 중간 분기 셀이다. 복수 셀 통합 모듈(60)은 강조하는 경계(120)(도 7)와 같은 경보를 제공하여 사용자에게 셀 D2가 셀 C6의 중간 분기 셀을 참조하는 것을 통지할 수 있다. 음영, 팝업 메시지 상자 등과 같이 사용자에게 경보를 발하는 임의의 적절한 기술이 이용될 수 있다. 이러한 사용자에 대한 통지는 요청된 셀 통합이 이용할 수 없는 다른 셀의 포뮬러를 참조함으로써 또 다른 셀에서 에러를 초래할 수 있다는 것을 사용자에게 경고하도록 작용할 수 있다.
복수 셀 통합 모듈(60)은 출력 셀로서 루트 셀 C6을 지정하고, 포뮬러 및 참조 데이터를 사용하여, 복수 셀 통합 모듈(60)은 셀 C6의 선행 트리를 분석하여 적절한 입력 셀을 식별하고 통합된 포뮬러를 결정한다(블록 216). 리프 셀 A7, B2는 입력 셀로서 지정된다. 셀 C6에 의해 직접적으로 또는 간접적으로 참조되는 중간 분기 셀의 포뮬러 및 셀 C6의 포뮬러는 지정된 입력 셀에 대해서만 셀 참조를 포함 하는 통합 포뮬러로 셀 C6의 포뮬러를 변환하도록 확장된다. 이는 종속 셀 내의 참조를 참조된 셀의 포뮬러로 간단히 대체하여 달성될 수 있다. 예를 들면, A1의 포뮬러는 "B4"를 "A7+10"으로 대체하여 확장되고, 이어서 C6의 포뮬러는 "A1"을 "B2+(A7+10)"으로 대체하여 확장된다. 따라서, 통합된 포뮬러는 "=[B2+(A7+10)]*10"이 되고, 유일하게 요구되는 입력은 셀 B2 및 A7에 위치한 값이다.
본 예의 통합된 포뮬러는 루트 셀 C6으로부터의 단일 직접 분기만 포함하지만, 보다 확장되고 복잡한 세트 또는 그룹의 셀 포뮬러가 또한 본 발명에 따라 통합될 수 있다는 것을 인지할 것이다. 예를 들면, 복수 셀 통합 모듈(60)은 선행 트리 등 내의 복수 포뮬러에 의해 참조되는 셀을 수용할 수 있다. 복수 셀 통합 모듈(60)은 도 7에 도시된 바와 같이 스프레드시트(100)의 위에 또는 그 근처에 대화 상자(124)를 제공한다. 그리고 나서 사용자는 대화 상자(124)의 필드(126)에 소정의 이름(128)을 입력하고, 버튼(128)을 선택함으로써 그 이름을 제출할 수 있다. 대화 상자(124)가 사용자로부터 입력을 수신하는 기타 다른 적절한 메커니즘으로 교체 또는 보충될 수 있다는 것을 인지할 것이다. 다른 방법으로, 복수 셀 통합 모듈(60)은 디폴트에 따른 통합 포뮬러를 자동적으로 명명할 수 있다.
포뮬러 이름의 제출은 통합하기 위한 셀 A1, B4 및 C6의 사용자 선택을 확인하는 역할을 한다. 그 다음 복수 셀 통합 모듈(60)은 스프레드시트(100)를 갱신하여 지정된 출력 셀을 통합된 포뮬러에 대한 반환값으로서 할당하고(블록 218) 입력 셀 이외의 다른 선택된 셀을 소거한다(블록 220). 도 9에 도시된 바와 같이, 복수 셀 통합 모듈(60)은 통합된 포뮬러 "포뮬러1(formula1)" 및 그 입력 "(B2, A7)"을 셀 C6에 저장한다. 즉, 셀 C6에 포함된 원래의 포뮬러는 통합된 포뮬러로 교체된다. 스프레드시트가 도 9에 도시된 바와 같이 포뮬러 표시 모드에 있는 경우, 포뮬러 자체가 아니라 통합된 포뮬러의 이름이 셀 C6에 표시된다. 그러나, 일부 실시예에 따라, 입력 리스트가 없는 포뮬러 이름 또는 포뮬러 자체가 자동적으로 표시될 수 있거나, 단독의 포뮬러 이름, 이름과 입력, 또는 포뮬러를 표시하는 옵션을 사용자에게 제공할 수 있다. 복수 셀 통합 모듈(60)은 임의의 다른 적절한 기술을 이용하여 셀 C6이 통합된 포뮬러를 포함하는 것을 나타낼 수 있다. 예를 들면, 셀 C6에는 암시적인 컬러링이나 음영, 경계 등이 제공될 수 있다.
복수 셀 통합 모듈(60)은 또한 통합된 포뮬러로 합체된 중간 분기 셀에 포함된 포뮬러를 소거한다. 따라서, 도 9에 도시된 바와 같이, 셀 A1 및 B4는 소거되었다. 결과적으로, 셀 A1 및 B4는 비워져 부가적인 사용이나 삭제에 이용될 수 있다. 입력 셀 A7 및 B2는 남아 있다.
스프레드시트(100)가 도 10에 도시된 바와 같이 결과 모드로 표시되는 경우, 통합된 포뮬러의 결과는 일반적인 방식으로 셀 C6에 표시될 수 있다. 도 10에서, 셀 D2는 셀 D2의 포뮬러에 대한 참조(즉, 셀 B4)가 현재 빈 셀이기 때문에 "참조 에러!(REF ERROR!)"를 나타낸다.
복수 셀 통합 모듈(60)은 입력 강조 특징을 선택적으로 제공하여 사용자가 통합된 포뮬러의 입력 셀을 식별하는데 도움을 줄 수 있다. 예를 들어, 도 11을 참조하면, 출력 셀 C6이 선택되고 적절한 메뉴로부터 강조 특징이 선택된다. 복수 셀 통합 모듈(60)은 입력 셀 A7 및 B2를 강조함으로써 대응한다.
복수 셀 통합 모듈(60)은 또한 통합된 포뮬러로부터 셀의 선택적 배제를 제공할 수있다. 선택된 셀을 입력 셀로서 지정하는 옵션을 사용자에게 제공할 수 있고, 이 셀은 중간 분기 셀을 포함할 수 있다. 예를 들면, 사용자는 셀 B4를 입력 셀로서 지정할 수 있다. 이 경우, 통합된 포뮬러는 "=[B2+B4]*10"이다. 이러한 방법은 지정된 입력 셀(예컨대, 셀 B4)의 포뮬러를 또 다른 셀(예컨대, 셀 D2)에 의한 참조를 위한 활성 상태로 유지하는 것이 바람직한 경우에 유익할 수 있다.
복수 셀 통합 모듈(60)은 또한 사용자가 통합 절차에서 평가하기 위한 모든 셀을 개별적으로 직접 선택하는 것을 허용할 수 있다. 예를 들면, 사용자는 입력과 중간 셀이 결정되는 루트 셀을 선택하기보다는 각각의 입력, 출력 및 중간 셀을 직접 선택할 수 있다.
상기 제공된 예에서는 통합된 포뮬러가 할당되는 출력 셀로 루트 셀 C6이 자동적으로 지정되지만, 복수 셀 통합 모듈(60)은 사용자가 스프레드시트 B의 다른 셀을 선택하여 통합된 포뮬러를 저장하도록 허용할 수 있다.
본 발명의 다른 실시예에 따라, 복수 셀 통합 모듈(60)은 통합된 포뮬러를 결정하지 않을 수 있다. 도 12의 순서도를 참조하면, 이러한 다른 실시예에 따라, 제1 셀과, 이 제1 셀에 포함된 포뮬러에 의해 선행 셀로서 참조되는 제2 셀과, 이 제2 셀에 포함된 포뮬러 또는 데이터가 표시되는 동안 제1 셀에 포함된 포뮬러 및 그 값을 숨긴다(블록 230). 보다 구체적으로, 복수 셀 통합 모듈(60)은 상술한 바와 같이 입력, 출력 및 중간 분기 셀을 결정하고 나서, 중간 셀을 숨기며 입력 및 출력 셀의 포뮬러와 데이터를 그들 각각의 셀에 표시할 수 있다. 즉, 상술한 실시예에서 통합된 포뮬러로 합체되어 소거된 중간 포뮬러는 그 대신에 그들 셀에 유지되어 숨겨진다. "숨겨짐"에 대해서는, 포뮬러 자체 또는 그 결과나 값 어느 것도 셀에 표시되지 않음을 의미한다. 스프레드시트(100)의 하부 구조는 변경되지 않지만, 스프레드시트의 외관은 단순화된다.
바로 위에서 설명된 본 발명의 다른 실시예는 중간 셀의 값이 셀 D2와 같은 다른 셀이거나 이에 의해 필요로 하는 경우에 바람직할 수 있다. 상술한 하나 이상의 부가적인 특징이 또한 적절히 수정되어 이용될 수 있다. 예를 들면, 복수 셀 통합 모듈(60)은 상술한 바와 같이 입력 셀을 강조하기 위한 특징을 제공할 수 있지만, 여기서 중간 셀(예컨대, 셀 A1, B4)이 또한 강조되고 그들의 숨겨진 포뮬러가 도 13에 도시된 바와 같이 표시된다. 중간의 숨겨진 포뮬러 셀은 이 모드에서 상이한 컬러, 음영, 경계 등에 의해 입력 셀과 구별될 수 있다. 숨겨진 포뮬러를 포함하는 셀은 또한 포뮬러가 숨겨지는 경우에 (예컨대, 컬러, 음영, 경계 등에 의해) 시각적으로 표시될 수 있다. 스프레드시트(100) 내의 숨겨진 셀의 존재는 일반적으로 출력 셀 C6에서 포뮬러 이름이나 특정한 표시에 의해 표시된다.
본 발명의 사상 및 범위를 벗어나지 않고서, 본 발명의 이점이 주어지는 많은 변경 및 수정이 당업자에 의해 이루어질 수 있다. 따라서, 예시적인 실시예들이 실례를 들기 위한 목적으로만 설명되었으며, 또한 본 발명을 다음의 청구범위에 의해 정의되는 바와 같이, 본 발명을 제한하는 것으로서 간주되지 않아야 한다는 것을 이해해야 한다. 따라서, 다음의 청구범위는 실제 그대로 설명되는 요소들의 조합 뿐만 아니라, 실질적으로 동일한 결과를 얻기 위해 실질적으로 동일한 방법으로 동일한 기능을 이행하는 모든 동등한 요소들을 포함하는 것으로 해석되어야 한다. 따라서, 청구범위는 위에서 구체적으로 예시 및 설명된 것과, 개념적으로 동등한 것과, 또한 본 발명의 필수적인 사상을 포함한 것을 포함하는 것으로 이해해야 한다.

Claims (14)

  1. 스프레드시트에서 셀을 처리하는 방법에 있어서,
    복수 개의 셀들을 포함하는 스프레드시트를 디스플레이하는 단계로서, 상기 셀들 중 일부는 데이터를 포함하고 상기 셀들 중 일부는 포뮬러를 포함하는 것인, 상기 스프레드시트 디스플레이 단계;
    상기 스프레드시트의 루트 셀(root cell)-상기 루트 셀은 루트 포뮬러를 포함함- 에 대한 사용자 선택에 응답하여, 상기 루트 셀에 상기 루트 포뮬러를 디스플레이하는 단계;
    상기 루트 셀에 대한 종속 체인(dependency chain)을 결정하는 단계로서, 상기 종속 체인은 하나 이상의 입력 셀, 및 상기 입력 셀과 상기 루트 셀 사이의 하나 이상의 중간 셀(intermediate cell)을 포함하고, 상기 하나 이상의 중간 셀은 중간 포뮬러를 포함하는 것인, 상기 종속 체인 결정 단계;
    상기 중간 포뮬러와 상기 루트 포뮬러를 자동적으로 통합하여 통합된 포뮬러를 제공하는 단계; 및
    상기 통합된 포뮬러를 단일 셀에 저장하는 단계
    를 포함하는 셀 처리 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 중간 셀을 소거하는 단계를 더 포함하는 셀 처리 방법.
  4. 삭제
  5. 제 1 항에 있어서,
    상기 루트 셀을 선택하는 사용자 입력에 응답하여 상기 루트 셀에 대한 상기 종속 체인의 셀을 강조하는 단계를 더 포함하는 셀 처리 방법.
  6. 삭제
  7. 삭제
  8. 제 1 항에 있어서,
    상기 단일 셀이 상기 통합된 포뮬러를 포함하는 것을 시각적으로 표시하는 단계를 더 포함하는 셀 처리 방법.
  9. 스프레드시트에서 셀을 처리하는 시스템에 있어서,
    복수 개의 셀들을 포함하는 스프레드시트를 디스플레이하는 수단으로서, 상기 셀들 중 일부는 데이터를 포함하고 상기 셀들 중 일부는 포뮬러를 포함하는 것인, 상기 스프레드시트 디스플레이 수단;
    상기 스프레드시트의 루트 셀(root cell)-상기 루트 셀은 루트 포뮬러를 포함함 -에 대한 사용자 선택에 응답하여, 상기 루트 셀에 상기 루트 포뮬러를 디스플레이하는 수단;
    상기 루트 셀에 대한 종속 체인(dependency chain)을 결정하는 수단으로서, 상기 종속 체인은 하나 이상의 입력 셀, 및 상기 입력 셀과 상기 루트 셀 사이의 하나 이상의 중간 셀(intermediate cell)을 포함하고, 상기 하나 이상의 중간 셀은 중간 포뮬러를 포함하는 것인, 상기 종속 체인 결정 수단;
    상기 중간 포뮬러와 상기 루트 포뮬러를 자동적으로 통합하여 통합된 포뮬러를 제공하는 수단; 및
    상기 통합된 포뮬러를 단일 셀에 저장하는 수단
    을 포함하는 셀 처리 시스템.
  10. 디지털 컴퓨터의 내부 메모리에 로딩할 수 있는 컴퓨터 프로그램을 기록한 컴퓨터 판독가능 기록매체로서, 상기 프로그램이 컴퓨터 상에서 동작될 때, 제 1 항, 제 3 항, 제 5 항, 및 제 8 항 중 어느 한 항에 따른 방법을 실행하도록 하는 소프트웨어 코드부를 포함하는 것인 컴퓨터 판독가능 기록매체.
  11. 스프레드시트에서 셀을 처리하는 방법에 있어서,
    복수 개의 셀들을 포함하는 스프레드시트를 디스플레이하는 단계로서, 상기 셀들 중 일부는 데이터를 포함하고 상기 셀들 중 일부는 포뮬러를 포함하는 것인, 상기 스프레드시트 디스플레이 단계;
    상기 스프레드시트의 루트 포뮬러를 포함하는 루트 셀(root cell)에 대한 사용자 선택에 응답하여, 상기 루트 셀에 상기 루트 포뮬러를 디스플레이하는 단계;
    상기 루트 셀에 대한 종속 체인(dependency chain)을 결정하는 단계로서, 상기 종속 체인은 하나 이상의 입력 셀, 및 상기 입력 셀과 상기 루트 셀 사이의 하나 이상의 중간 셀(intermediate cell)을 포함하고, 상기 중간 셀은 중간 포뮬러를 포함하는 것인, 상기 종속 체인 결정 단계; 및
    상기 중간 포뮬러를 상기 루트 포뮬러로 통합하는 단계
    를 포함하는 셀 처리 방법.
  12. 제11항에 있어서,
    상기 중간 셀로부터 상기 중간 포뮬러를 소거하는 단계를 더 포함하는 셀 처리 방법.
  13. 제11항에 있어서,
    상기 루트 셀을 시각적으로 식별하는 단계를 더 포함하는 셀 처리 방법.
  14. 제11항에 있어서,
    상기 중간 셀을 시각적으로 식별하는 단계를 더 포함하는 셀 처리 방법.
KR1020077006469A 2004-10-07 2005-09-23 스프레드시트의 셀 처리 방법, 시스템 및 컴퓨터 프로그램제품 KR100956571B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/960,254 2004-10-07
US10/960,254 US9047266B2 (en) 2004-10-07 2004-10-07 Methods, systems and computer program products for processing cells in a spreadsheet

Publications (2)

Publication Number Publication Date
KR20070059106A KR20070059106A (ko) 2007-06-11
KR100956571B1 true KR100956571B1 (ko) 2010-05-07

Family

ID=35986144

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077006469A KR100956571B1 (ko) 2004-10-07 2005-09-23 스프레드시트의 셀 처리 방법, 시스템 및 컴퓨터 프로그램제품

Country Status (8)

Country Link
US (1) US9047266B2 (ko)
EP (1) EP1800221A2 (ko)
JP (1) JP4726907B2 (ko)
KR (1) KR100956571B1 (ko)
CN (1) CN101010672A (ko)
CA (1) CA2582743A1 (ko)
TW (1) TW200622864A (ko)
WO (1) WO2006037733A2 (ko)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004007638A1 (de) * 2004-02-17 2005-09-01 Xapio Gmbh Verfahren zum Erzeugen von Quellcode in einer prozeduralen, reentrantfähigen Programmiersprache aus einer Spreadsheet-Darstellung
US8745483B2 (en) 2004-10-07 2014-06-03 International Business Machines Corporation Methods, systems and computer program products for facilitating visualization of interrelationships in a spreadsheet
US7716231B2 (en) 2004-11-10 2010-05-11 Microsoft Corporation System and method for generating suggested alternatives for visual or audible submissions
US8055995B2 (en) * 2005-03-11 2011-11-08 Orangescape Technologies Limited System and method of defining a hierarchical datamodel and related computation and instruction rules using spreadsheet like user interface
US7424668B2 (en) * 2005-06-15 2008-09-09 Microsoft Corporation Pre-formulated spreadsheet cell groups
CN1892641A (zh) * 2005-06-29 2007-01-10 国际商业机器公司 用于在电子表单中隐藏模型内的敏感数据的方法和系统
US20070219847A1 (en) * 2006-03-15 2007-09-20 Kazimierz Ogonowski Internet-based marketing and sales application and method for targeted marketing of a product and/or service
US20080104498A1 (en) * 2006-10-25 2008-05-01 International Business Machines Corporation Dynamically Merging Columns Within a Table
JP2008165408A (ja) * 2006-12-27 2008-07-17 Canon Inc 情報処理装置、その制御方法及びプログラム
US20090006939A1 (en) * 2007-06-29 2009-01-01 Microsoft Corporation Task-specific spreadsheet worksheets
US20090044089A1 (en) * 2007-08-06 2009-02-12 Apple Inc. Automatic insertion of a default function
US8407668B2 (en) * 2007-10-26 2013-03-26 Microsoft Corporation Model based spreadsheet scripting language
US8370795B1 (en) * 2008-01-31 2013-02-05 Intuit Inc. Method and system for explaining a value of a field in a form
US20090228776A1 (en) * 2008-03-05 2009-09-10 Microsoft Corporation Dynamic formulas for spreadsheet cells
DE102009014616A1 (de) * 2009-03-24 2010-09-30 Hansa-Datenservice, Gowarsch & Co. Vorrichtung und Verfahren zur automatischen Verarbeitung von Daten
CA2718360A1 (en) * 2010-10-25 2011-01-05 Ibm Canada Limited - Ibm Canada Limitee Communicating secondary selection feedback
US9075787B2 (en) * 2010-11-30 2015-07-07 Think-Cell Software Gmbh Defining a reusable spreadsheet-function by extracting the function from a complex calculation in a spreadsheet document
US8250459B2 (en) * 2010-12-13 2012-08-21 Google Inc. System and method for providing online data management services
US9460073B2 (en) 2013-02-27 2016-10-04 Google Inc. Systems and methods for mutations and operational transforms in a collaborative spreadsheet environment
US20140359417A1 (en) * 2013-06-04 2014-12-04 Omer Bar-On Systems and methods for graphically modulating structured data
US9116931B2 (en) 2013-07-12 2015-08-25 Logic9S, Llc Integrated, configurable, analytical, temporal, visual electronic plan system
US9026897B2 (en) 2013-07-12 2015-05-05 Logic9S, Llc Integrated, configurable, sensitivity, analytical, temporal, visual electronic plan system
US10574548B2 (en) * 2013-07-31 2020-02-25 Splunk Inc. Key indicators view
CN103488622A (zh) * 2013-09-04 2014-01-01 用友软件股份有限公司 隐藏数据计算系统和隐藏数据计算方法
US10713428B2 (en) 2015-11-02 2020-07-14 Microsoft Technology Licensing, Llc Images associated with cells in spreadsheets
EP3411800A1 (en) * 2016-02-01 2018-12-12 Microsoft Technology Licensing, LLC Parameterizing and working with math equations in a spreadsheet application
US9983768B2 (en) * 2016-10-20 2018-05-29 International Business Machines Corporation Tabulated data selection
CN108446264B (zh) * 2018-03-26 2022-02-15 阿博茨德(北京)科技有限公司 Pdf文档中的表格矢量解析方法及装置
US20240070382A1 (en) * 2018-10-15 2024-02-29 Dayal Family LLC Method and System for Dynamic Naming of Component Expressions Within a Formula in a Cell in a Spreadsheet Application
US11610059B2 (en) 2018-12-07 2023-03-21 Interject Data System, Inc. Systems and methods for a visual interface for grid-based programs
CN111859880B (zh) * 2019-04-29 2023-06-27 珠海金山办公软件有限公司 一种定位到单元格的方法、系统、存储介质和终端
CN112784548A (zh) * 2019-11-07 2021-05-11 珠海金山办公软件有限公司 一种单元格合并方法、装置、及存储介质
CN113779161B (zh) * 2021-08-27 2022-08-23 北京元年科技股份有限公司 计算脚本的生成方法、装置、计算机设备以及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040088650A1 (en) * 2002-10-30 2004-05-06 Actuate Corporation Methods and apparatus for generating a spreadsheet report template

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5033009A (en) 1989-03-03 1991-07-16 Dubnoff Steven J System for generating worksheet files for electronic spreadsheets
US5255356A (en) 1989-05-31 1993-10-19 Microsoft Corporation Method for hiding and showing spreadsheet cells
US5325478A (en) 1989-09-15 1994-06-28 Emtek Health Care Systems, Inc. Method for displaying information from an information based computer system
US5949416A (en) 1991-05-28 1999-09-07 Borland International, Inc. Method for providing help information for nested functions
US5701499A (en) 1992-03-25 1997-12-23 Microsoft Corporation Method and system for automatically entering a data series into contiguous cells of an electronic spreadsheet program or the like
US5553215A (en) 1994-09-21 1996-09-03 Microsoft Corporation Method and system of sharing common formulas in a spreadsheet program and of adjusting the same to conform with editing operations
US5592666A (en) * 1994-10-31 1997-01-07 Sinper Corporation Method and system for storing and retrieving data from a multidimensional array using database pointers
JPH08180116A (ja) 1994-12-27 1996-07-12 Nec Software Ltd スプレッドシートセル構造
US6006239A (en) * 1996-03-15 1999-12-21 Microsoft Corporation Method and system for allowing multiple users to simultaneously edit a spreadsheet
US5819293A (en) 1996-06-06 1998-10-06 Microsoft Corporation Automatic Spreadsheet forms
US5987481A (en) 1997-07-01 1999-11-16 Microsoft Corporation Method and apparatus for using label references in spreadsheet formulas
US6057837A (en) * 1997-07-15 2000-05-02 Microsoft Corporation On-screen indentification and manipulation of sources that an object depends upon
US6460059B1 (en) 1998-08-04 2002-10-01 International Business Machines Corporation Visual aid to simplify achieving correct cell interrelations in spreadsheets
US6640234B1 (en) 1998-12-31 2003-10-28 Microsoft Corporation Extension of formulas and formatting in an electronic spreadsheet
GB2358936A (en) 2000-02-02 2001-08-08 Roke Manor Research Improvements in or relating to spreadsheets
US6341292B1 (en) 2000-05-30 2002-01-22 Outlooksoft Corporation Spreadsheet-based network information exchange with two-part cache
US6766512B1 (en) 2000-11-22 2004-07-20 Furraylogic Ltd. Methods and systems for generating a structured language model from a spreadsheet model
US7251776B2 (en) * 2001-07-13 2007-07-31 Netview Technologies, Inc. System and method for efficiently and flexibly utilizing spreadsheet information
US7530012B2 (en) * 2003-05-22 2009-05-05 International Business Machines Corporation Incorporation of spreadsheet formulas of multi-dimensional cube data into a multi-dimensional cube
US20070074112A1 (en) * 2005-09-23 2007-03-29 Business Objects Apparatus and method for consolidating reporting formulas

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040088650A1 (en) * 2002-10-30 2004-05-06 Actuate Corporation Methods and apparatus for generating a spreadsheet report template

Also Published As

Publication number Publication date
US9047266B2 (en) 2015-06-02
WO2006037733A3 (en) 2006-07-27
US20060080595A1 (en) 2006-04-13
JP2008516321A (ja) 2008-05-15
TW200622864A (en) 2006-07-01
WO2006037733A2 (en) 2006-04-13
EP1800221A2 (en) 2007-06-27
JP4726907B2 (ja) 2011-07-20
CN101010672A (zh) 2007-08-01
CA2582743A1 (en) 2006-04-13
KR20070059106A (ko) 2007-06-11

Similar Documents

Publication Publication Date Title
KR100956571B1 (ko) 스프레드시트의 셀 처리 방법, 시스템 및 컴퓨터 프로그램제품
US11036930B2 (en) Methods, systems and computer program products for facilitating visualization of interrelationships in a spreadsheet
US9727551B2 (en) Associating conditions to summary table data
US9075787B2 (en) Defining a reusable spreadsheet-function by extracting the function from a complex calculation in a spreadsheet document
US6078739A (en) Method of managing objects and parameter values associated with the objects within a simulation model
AU2011245430B2 (en) Spin control user interface for selecting options
AU2011245657B2 (en) Temporary formatting and charting of selected data
US20060190432A1 (en) System and method for graphically distinguishing levels of a multidimensional database
US20120102432A1 (en) Communicating secondary selection feedback
US20070274154A1 (en) Apparatus and method for relating graphical representations of data tables
US10705806B1 (en) Managing an application variable using variable attributes
US7409410B2 (en) System and method of presenting multilingual metadata
US7564458B2 (en) System and method for interactively linking data to shapes in a diagram
US20040227759A1 (en) Plotting numerical data
WO2004077310A1 (en) Graphically defining a formula for use within a spreadsheet program
US6766509B1 (en) Methodology for testing spreadsheet grids
US6938260B1 (en) Complex data navigation, manipulation and presentation support for visualage Java
US20080172636A1 (en) User interface for selecting members from a dimension
US8706751B2 (en) Method for providing a user interface driven by database tables
Verzani An introduction to gWidgets
Velázquez-Iturbide et al. Recursion-Based Visualizations of Search Algorithms in State-Spaces
Itakura et al. Implementing the Dynamic GTAP model in the RunDynam Software
Gregory et al. Lists
HU227652B1 (en) Risk management system and method

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee