KR20060048710A - 스프레드시트 공식 내의 동적 데이터를 참조하기 위한 방법및 구현 - Google Patents

스프레드시트 공식 내의 동적 데이터를 참조하기 위한 방법및 구현 Download PDF

Info

Publication number
KR20060048710A
KR20060048710A KR1020050057124A KR20050057124A KR20060048710A KR 20060048710 A KR20060048710 A KR 20060048710A KR 1020050057124 A KR1020050057124 A KR 1020050057124A KR 20050057124 A KR20050057124 A KR 20050057124A KR 20060048710 A KR20060048710 A KR 20060048710A
Authority
KR
South Korea
Prior art keywords
data
structural
semantic
user
column
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
KR1020050057124A
Other languages
English (en)
Other versions
KR101130458B1 (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 KR20060048710A publication Critical patent/KR20060048710A/ko
Application granted granted Critical
Publication of KR101130458B1 publication Critical patent/KR101130458B1/ko
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Landscapes

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

Abstract

본 발명은 사용자가 테이블, 테이블 내의 데이터 컬럼, 테이블의 헤더, 테이블로부터의 총계, PivotTable® 및 PivotTable® 데이터의 일부를 데이터의 헤더에 의해 참조하게 하는 스프레드시트 프로그램 내의 새로운 유형의 구조된 네임에 관한 것이다. 본 발명의 실시예는 하나 이상의 의미 지정(sementic designation)을 수신하는 것을 포함하는 데이터 세트를 참조하기 위한 방법을 포함하는데, 여기서, 하나 이상의 의미 지정은 데이터 구조 내의 하나 이상의 데이터 아이템을 설명하며, 자동으로 구조적 참조를 생성하고 의미 지정을 그 구조적 참조에 연계시킨다. 본 발명의 다른 실시예는 데이터 구조의 하나 이상의 구성요소를 설명하는 하나 이상의 의미 지정을 사용자로부터 수신하는 것, 데이터 구조의 구성요소에 대한 구조적 참조를 생성하는 것, 및 그 구조적 참조를 하나 이상의 의미 지정의 집합으로서 디스플레이하는 것을 포함하는 스프레드시트 내의 데이터에 대한 참조를 디스플레이 장치 상에 디스플레이 하기 위한 사용자 인터페이스와의 상호작용에 관한 것이다.
스프레드 시트 공식, 동적 데이터, 의미 지정, 데이터 참조 모듈, 구조적 참조

Description

스프레드시트 공식 내의 동적 데이터를 참조하기 위한 방법 및 구현{METHOD AND IMPLEMENTATION FOR REFERENCING OF DYNAMIC DATA WITHIN SPREADSHEET FORMULAS}
도 1a 및 도 1b는 구조적 참조와 그 구조적 참조를 사용하는 공식 간의 함수 관계를 예시하는 본 발명의 실시예의 기능도.
도 2는 본 발명에 따른 구조적 참조를 제공하도록 동작가능한 컴퓨터 환경 및 컴퓨팅 장치을 예시하는 본 발명의 실시예의 기능도.
도 3은 본 발명에 따라 구조적 참조를 스프레드시트 내의 데이터 세트에 연계시키는 본 발명의 실시예를 나타내는 순서도.
도 4는 본 발명에 따라 스프레드시트 내의 구조적 참조를 동적으로 갱신하기 위한 본 발명의 실시예를 나타내는 순서도.
도 5는 본 발명에 따라 구조화된 공식을 스프레드시트 내의 데이터 세트에 적용시키기 위한 본 발명의 실시예를 나타내는 순서도.
도 6은 본 발명에 따른 스프레드시트를 도시하는 본 발명의 실시예의 예를 나타내는 도면.
도 7은 본 발명에 따른 구조적 참조를 갖는 스프레드시트를 예시하는 본 발명의 실시예의 예를 나타내는 도면.
도 8은 본 발명에 따른 첨부된 데이터를 갖는 스프레드시트를 예시하는 본 발명의 실시예의 예를 나타내는 도면.
도 9는 본 발명에 따라 동적으로 갱신된 구조적 참조를 예시하는 본 발명의 실시예의 예를 나타내는 도면.
도 10은 본 발명에 따른 데이터의 삽입으로 인해 변경된 구조를 갖는 스프레드시트를 예시하는 본 발명의 실시예의 예를 나타내는 도면.
도 11은 본 발명에 따라 동적으로 갱신된 구조적 참조를 갖는 스프레드시트를 예시하는 본 발명의 실시예의 예를 나타내는 도면.
<도면의 주요 부분에 대한 부호의 설명>
302: 사용자 인터페이스
304: 데이터 참조 모듈
306: 공식 모듈
310: 구조적 참조
312: 의미 지정
본 발명은 일반적으로, 스프레드시트 소프트웨어 또는 어플리케이션 분야에 관한 것이다. 더 상세하게, 본 발명은 테이블 및 Microsoft® PivotTables®의 셀 및 헤더 내의 데이터 및 데이터의 일부를 참조하기 위한 네이밍(naming) 규정에 관 한 것이다.
스프레드시트 소프트웨어 또는 어플리케이션은 비교적 잘 알려지고 유용한 도구이다. 일반적인 스프레드시트 어플리케이션은 로우 및 컬럼으로 정렬된 데이터를 캡처하고 디스플레이하고 조작함으로써 물리적 스프레드시트를 시뮬레이트한다. 컬럼 및 로우의 교점에는 셀이 있다. 스프레드시트 내의 셀은 숫자, 스트링, 에러 값 또는 블랭크 값(blank value)을 포함할 수 있다. 또한, 셀은 다른 셀 내의 데이터에 대해 연산하고 그 결과를 디스플레이할 수 있는 공식도 포함할 수 있다. 이 공식은 사용자가 데이터를 활용하도록 돕는 계산 및 비지니스 논리를 사용자가 생성할 수 있게 한다.
공식은 스프레드시트 내의 영역으로부터 데이터를 임포트(import)한다. 데이터를 연산으로 임포트하기 위해, 스프레드시트는 흔히, 공식이 연산할 데이터 세트를 지정한다. 불행하게도, 현재의 스프레드시트 어플리케이션은 공식에서 사용하기 위해 데이터 블록을 지정할 때, 몇몇 중요한 결점을 갖는다.
현재의 스프레드시트에서, 데이터 지정은 몇몇 상이한 방법들로 행해질 수 있다. 우선, 사용자는 셀 "범위"에 대한 "참조"를 이용할 수 있다. 참조는 스프레드시트 내의 데이터 위치(셀 좌표에 의해 지정됨)를 사용하여 데이터 블럭을 지정하는 데이터 세트에 대한 포인터이다. 셀 범위는 시트 내의 그 좌표에 의해 지정된 연속 블럭의 하나 이상의 셀이다. 예를 들어, Microsoft® Excel 스프레드시트 어플리케이션에서, 사용자는 로우 번호 및 컬럼 문자로 셀을 지정할 수 있다. 사용자는 범위를 나타내기 위해 콜론과 같은 연산자를 사용하여 복수의 셀을 지정 할 수 있다. 로우 번호 및 컬럼 문자는, 연산자와 함께 또는 연산자 없이, 데이터에 대한 위치 좌표로서 기능을 한다. 로우 번호, 컬럼 문자 및 연산자의 조합을 사용하여, 사용자는 스프레드시트 내에서 데이터 블록을 지정할 수 있다. 현재의 스프레드시트에서의 일반적인 공식으로는 "=AVERAGE(C6:C18)"이 있으며, 이것은 셀 C6에서 셀 C18까지의 셀 범위 내에 있는 데이터의 평균을 계산한다.
다음으로, 사용자는 네이밍 특징을 이용하여, "네임"을 갖거나 "네이밍된 범위" 내에 있는 데이터를 참조할 수 있다. Microsoft® Excel 스프레드시트 어플리케이션과 같은 몇몇 스프레드시트 어플리케이션에서, 네이밍 특징은 사용자가 특정 셀 범위 또는 공식에 대한 네임을 생성하게 한다. 본질적으로, 사용자는 특정 좌표를 갖는 셀 범위를 선택한다. 사용자는 스프레드시트 어플리케이션에게 그 셀 범위를 "네이밍"하도록 명령한다. 스프레드시트 어플리케이션은 그 네임을 특정 좌표를 갖는 셀 범위에 링크한다. 사용자가 셀 범위에 대해 네임을 생성하면, 사용자는 공식 내에서 그 네임을 사용하여, 특정 좌표를 갖는 데이터를 참조할 수 있다. 예를 들어, 사용자는 셀 범위 C6 내지 C18에 대해 "Heights"라고 불리는 네임을 생성하고, 그 네임을 사용하여 "=AVERAGE(Heights)"와 같은 공식 내의 셀 범위를 지정할 수 있다.
다음으로, 사용자는 NLF(Natural Language Formula)를 이용할 수 있다. NLF는 스프레드시트 내의 데이터 근처의 셀 내에 위치하는 사용자 생성 라벨로 데이터를 참조하는 수단이다. 사용자는 컬럼 또는 로우 헤더와 같은 데이터 라벨을 스프레드시트 내에 배치시킬 수 있다. 그 후, 사용자는 공식 내에서 그 라벨을 사용할 수 있다. 스프레드시트 어플리케이션은 어느 셀이 스프레드시트에서 그 라벨에 의해 설명되는지를 결정하고, 그 설명된 셀을 셀 범위로 결정하여 공식에서 사용한다. 따라서, 사용자가 셀 C5:C18에서 "26", "30", "22", "27" 등의 "Height" 값을 가지면, 사용자는 공식 내에서 "Height"를 참조할 수 있다. 스프레드시트 어플리케이션은 요구된 셀 범위가 셀 C6 내지 C18이 되도록 결정할 수 있다.
마지막으로, 사용자는 참조 "함수"를 이용할 수 있다. 참조 함수는 참조는 아니지만, 데이터 또는 데이터의 지정된 부분에 대한 참조를 리턴하는 프로세스이다. 참조를 리턴하는 프로세스의 연산은 사용자가 함수를 입력할 때 입력할 수 있는 아규먼트의 세트에 따라 조정 또는 변경된다. 아규먼트는 스프레드시트 어플리케이션이 어느 셀을 리턴할지를 결정하게 한다.
참조를 리턴하는 함수들 중 2가지 예로는 Microsoft® Excel 스프레드시트 어플리케이션에서 제공되는 "OFFSET" 함수 및 "GETPIVOTDATA" 함수가 있다. OFFSET 함수는 셀 또는 셀 범위로부터의 지정된 개수의 로우 및 컬럼인 범위에 대한 참조를 리턴한다. OFFSET 함수로부터 리턴된 참조는 단일 셀일 수도 있고, 소정 범위의 셀들일 수도 있다. OFFSET 함수는 사용자가 리턴될 로우의 개수 및 컬럼의 개수를 지정하는 아규먼트를 입력하게 한다.
한편, "GETPIVOTDATA" 함수는 사용자가 PivotTable® 테이블 내의 데이터의 단일 셀을 참조하는 것을 더 용이하게 한다. GETPIVOTDATA 함수로부터 리턴된 데이터는 PivotTable® 테이블이 기초하는 데이터가 리프레시(refresh)될 때(새로운 데이터 값을 통합하기 위해 갱신될 때) 변경되지 않는다. GETPIVOTDATA 함수는 PivotTable® 테이블의 메타데이터를 사용함으로써 단일 셀 내의 데이터를 찾는다. 메타데이터는 데이터 좌표와는 반대로, 데이터에 대응하는 "아이템" 및 "필드"의 "네임"이다. "아이템"은 테이블 내의 로우 헤더 또는 컬럼 헤더와 유사한 PivotTable 테이블 내의 컴퓨터 생성 라벨이다. "필드"는 하나 이상의 아이템을 통합 및/또는 설명할 수 있는 컴퓨터 생성 라벨이다. 필드는 데이터의 몇몇 로우 또는 컬럼을 커버(cover)하는 테이블 내의 헤더와 유사하다. GETPIVOTDATA 함수의 예로서, 사용자는 공식: "=GETPIVOTDATA("Height",Sheet1!$A$3, "Person","John")"를 타이핑함으로써(여기서 "John"은 "Person"라고 네이밍된 필드 내의 아이템임), PivotTable® 테이블에서 존의 키에 관련된 데이터를 요구할 수 있다. GETPIVOTDATA 함수 공식은 PivotTable® 테이블 내의 데이터가 리턴된 참조를 파괴하지 않고서 상이한 셀들로 이동하게 하는데, 이것은 리턴된 참조가 셀의 위치가 아닌 셀의 메타데이터에 기초하기 때문이다.
스프레드시트 어플리케이션에서 데이터를 지정하는 상술된 방법 모두에는 큰 결점이 존재한다. 상술된 방법 모두는 추가된 데이터를 포함하도록 지정을 조정할 수 없는데, 이것은 방법들 각각이 추가된 데이터를 지정에 포함시키려는 사용자의 의도를 해석할 수 없기 때문이다. 사용자의 데이터를 포함하는 셀 범위가 새로운 데이터의 추가로 인해 변경될 때, 데이터를 지정하기 위한 상술된 방법을 사용하는 공식은 셀 범위 변경을 반영하도록 수동으로 변경되어야 한다. 지정이 갱신되지 않으면, 공식이 필요한 데이터 셀을 더이상 포함하지 않기 때문에 에러가 발생한 다.
예를 들어, 사용자는 현재 컬럼 C에 있는 데이터의 평균을 구하기를 원한다면 공식 "=AVERAGE(C6:C18)"를 입력할 수 있으며, 여기서, 컬럼 C 내의 모든 데이터는 셀 C6 내지 C18에 위치한다. 사용자는 그 공식이 컬럼 C 내의 데이터의 평균을 리턴하기를 기대할 것이다. 이제, 사용자가 수동으로 또는 몇몇 연산에 의해 셀 C19 내지 C22 내의 컬럼 C에 데이터를 추가한다면, 사용자는 여전히, 입력된 공식이 컬럼 C 내의 모든 데이터의 평균을 리턴하기를 기대할 수 있다. 불행하게도, 공식은 사용자가 기대하는 대로 연산하지 않는데, 그 이유는 공식 내의 셀 범위가 여전히 셀 C6 내지 C18 내의 데이터만을 평균내어서 셀 C19 내지 C22 내의 데이터를 제외하기 때문이다. 스프레스시트 어플리케이션은 사용자의 기대가 항상 새로운 데이터를 참조에 포함시키는 것인지의 여부를 결정할 수 없기 때문에, 이러한 상황은 사용자가 수동으로 공식 내의 셀 범위의 좌표를 변경하기를 요구한다. 따라서, 사용자는 "=AVERAGE(C6:C22)"가 되도록 공식을 수동으로 편집해야 한다. 이러한 편집은 사용자가 자주 변경되는 데이터를 갖는 수많은 공식을 가질 때 난해하거나 불가능하다. (좌표, 네이밍된 범위, NLF, 및 참조를 리턴하는 함수에 의한 셀에 대한 참조를 포함하여) 현재 사용가능한 모든 유형의 참조는 셀 범위를 갱신할 수 없다.
또한, 상술된 네이밍 특징에 대한 추가적 결점은 사용자가 각각의 "네이밍된 범위"를 수동으로 생성 및 유지해야 한다는 것이다. 예를 들어, 사용자는 우선 셀 C6 내지 C18에서 heights 리스트를 생성하고, 데이터를 지정하는 "Heights"라고 불 리는 네이밍된 범위를 생성해야 한다. 불행하게도, 사용자가 데이터를 갱신 할 때, 예를 들어, 사용자가 셀 C19 내지 C22에 데이터를 추가하면, 사용자는 셀 C6 내지 C22의 모든 셀을 포함하도록 네이밍된 범위를 수동으로 갱신해야 한다.
또한, NLF는 네이밍된 범위가 갖는 문제들 중 몇몇에 도움이 되지만, 다른 문제를 도입한다. NLF는 종종 모호하다. 스프레드시트 내에서 2개의 라벨이 동일한 네임을 갖는 경우, 또는 한 라벨이 한 컬럼 및 한 로우 내의 데이터를 설명할 수 있는 경우, NLF는 사용자가 기대하는 것과는 다른 셀 범위를 지정할 수 있다. 예를 들어, NLF 참조는 두 번째 라벨로는 다른 셀 범위를 가리킬 수도 있고, 사용자가 기대하는 데이터의 컬럼이 아닌 데이터의 로우를 가리킬 수도 있다.
또한, 사용자에 의한 라벨 입력과 스프레드시트 어플리케이션에 의해 선택된 셀 범위 간의 연계는 NLF(라벨 또는 데이터가 아님)가 생성 또는 변경될 때 참조된다. 따라서, 몇몇 NLF에서 사용된 라벨은 하나의 셀 범위를 가리킬 수 있는 반면, 다른 NLF에서 사용되는 동일한 라벨은 완전히 다른 셀 범위를 가리킬 수 있다. 예를 들어, 사용자가 공식 "=AVERAGE(Heights)"를 입력하면(여기서, 라벨 "Heights"는 셀 C5 내에 있고, 데이터는 셀 C6 내지 C18 내에 위치하며, 셀 C19에는 데이터가 없음), 사용자는 이 공식이 단어 "Heights"로 시작하는 컬럼 내의 데이터의 평균을 리턴하기를 기대할 것이다. 이제, 사용자가 수동으로 또는 몇몇의 연산에 의해, 셀 C19 내지 C22 내의 컬럼 C에 데이터를 추가한다면, 사용자는 여전히, "Heights"가 "Heights"로 시작하는 컬럼 내의 모든 데이터를 참조하기를 기대할 수 있다. 불행하게도, 공식은 사용자가 기대하는 대로 기능을 하지 않는데, 그 이유 는 공식 내의 셀 범위가 여전히, 셀 C6 내지 C18 내의 데이터만을 평균내어서 셀 C19 내지 C22 내의 데이터를 제외하기 때문이다. 그러나, 사용자는 셀 C19 내지 C22에 데이터를 추가한 후에, 또 다른 셀에서 정확히 동일한 공식을 입력한다면, 셀 C6 내지 C22 내의 데이터를 평균낼 것이다. 따라서, 사용자는 정확히 동일하게 보이는 NLF들을 갖는 2개의 공식을 가질 수 있지만, 그 하나는 정확한 결과["=AVERAGE(C6:C22)"와 동등함]를 리턴하는 반면, 다른 하나는 부정확한 결과["=AVERAGE(C6:C18)"와 동등함]에 귀착할 것이다. 따라서, NLF를 이용하는 사용자는 공식이 참조하는 셀이 정확히 어느 것인지를 명백하게 알지 못하는 문제점을 갖는다.
또한, OFFSET 및 GETPIVOTDATA와 같은 참조를 리턴하는 함수는 몇몇 다른 제한을 갖는다. 참조를 리턴하는 함수는 스프레드시트 내의 데이터의 변경에 조정되지 않는다. 예를 들어, 참조를 리턴하는 함수는 아이템이 다시 네이밍되거나 아이템이 이동될 때 조정되지 않는다. 예를 들어, "=GETPIVOTDATA("Height", Sheet1!$A$3, "Person", "John")" 방식으로 존의 키에 대한 참조를 리턴하는 GETPOVOTTABLE 함수는 당신이 그 사람의 네임을 "John"에서 "Fred"로 변경하는 경우, 갱신되지 않을 것이다.
마찬가지로, OFFSET 함수는 아규먼트에서 지정된 셀을 찾고, 다수의 로우 및 컬럼을 지정된 셀에서 요구된 셀로 이동시킴으로써, 요구된 셀에 대한 참조를 리턴할 수 있다. 지정된 셀과 요구된 셀 사이에서 로우 또는 컬럼이 삽입 또는 삭제되는 경우, 또는 지정된 셀 또는 요구된 셀이 이동하는 경우, OFFSET 함수는 부정확 한 참조를 리턴할 것이다. OFFSET 함수는 요구된 셀을 찾기 위해, 스프레드시트에서 이동된 로우 및 컬럼의 개수를 조정할 수 없다.
GETPIVOTDATA 함수는 또한, 단일 셀만에 대한 참조를 리턴할 수 있다. 사용자가 복수의 셀에 대해 참조하기 위해, 사용자는 다수의 GETPIVOTDATA 함수를 입력해야 하는데, 이것은 비대할 수 있다. 예를 들어, 사용자는 PivotTable® 테이블로부터의 결과의 컬럼 C 내의 데이터를 평균내기를 요구할 수 있다. 컬럼 C 내의 데이터는 셀 C6 내지 C18에 상주할 수 있다. 데이터가 PivotTable® 테이블 리프레시 동안 이동하는 경우 조정되는 GETPIVOTDATA 함수 참조를 사용하기 위해, 사용자는 C6 내지 C18의 모든 셀에 대해 하나의 GETPIVOTDATA 함수를 입력해야 한다. 사용자는 예를 들어, 다음과 같은 아큐먼트 스트링을 생성해야 한다.
"=AVERAGE(GETPIVOTDATA("Height", Sheet1!$A$3, "Person", "John"),
GETPIVOTDATA("Height", Sheet1!$A$3, "Person", "Pam"),
GETPIVOTDATA("Height", Sheet1!$A$3, "Person", "Bill")
GETPIVOTDATA("Height", Sheet1!$A$3, "Person", "Fred")"
참조를 리턴하는 함수를 사용하는 공식은 참조된 데이터의 양이 증가함에 따라 매우 길고 조밀해진다. 참조를 리턴하는 함수로 이 공식을 생성 및 편집하는 것은 공식의 길이 때문에 따분하고 시간 소모적이다.
본 발명은 데이터에 대한 변경으로 갱신되는 자동으로 생성된 의미있는 참조를 사용하여 데이터를 참조하기 위한 시스템 및 방법의 실시예에 관한 것이다. 본 발명의 스프레드시트는 사용자가 스프레드시트 내의 테이블을 명시적으로 지정하는 능력을 추가하였다. 스프레드시트 내에서 테이블을 지정하는 것은 ______자로 출원된 _______________ 명칭의 특허 출원 제__________호에서 더 상세하게 설명되며, 그것은 여기에서 참조에 의해 완전히 통합된다. 테이블 또는 PivotTable® 테이블을 지정하는 능력은 추측되고 예상되지 않는 것과는 반대로, 라벨(메타데이터)과 데이터 간의 명시적이고 명확한 맵핑을 위한 기반을 제공한다. 본 발명은 명확한 문맥 및 참조의 기반으로서의 맵핑을 사용한다. 본 발명의 실시예에서, 참조는 사용자가 셀을 설명하는 사용자 생성 문맥을 사용하여 스프레드시트에서 하나의 셀 또는 셀 어레이를 참조하게 한다. 예를 들어, 사용자는 참조로서 사용자 생성 컬럼 헤더 네임을 입력함으로써 데이터의 전체 컬럼을 참조할 수 있다. 본 발명은 또한, 참조를 사용하는 공식 및 계산을 제공할 수 있다. 또한, 참조는 참조된 데이터의 변경에 적응할 수 있다.
본 발명은 사용자가 테이블, 테이블 내의 데이터 컬럼, 테이블의 헤더, 테이블로부터의 총계, PivotTable® 및 PivotTable® 데이터의 일부를 데이터의 헤더에 의해 참조하게 하는 스프레드시트 프로그램 내의 새로운 유형의 구조된 네임에 관한 것이다. 본 발명의 실시예는 하나 이상의 의미 지정(sementic designation)을 수신하는 것을 포함하는 데이터 세트를 참조하기 위한 방법을 포함하는데, 여기서, 하나 이상의 의미 지정은 데이터 구조 내의 하나 이상의 데이터 아이템을 설명하며, 자동으로 구조적 참조를 생성하고 의미 지정을 그 구조적 참조에 연계시킨다. 본 발명의 다른 실시예는 데이터 구조의 하나 이상의 구성요소를 설명하는 하나 이 상의 의미 지정을 사용자로부터 수신하는 것, 데이터 구조의 구성요소에 대한 구조적 참조를 생성하는 것, 및 하나 이상의 의미 지정의 집합으로서 그 구조적 참조를 디스플레이하는 것을 포함하는 스프레드시트 내의 데이터에 대한 참조를 디스플레이 장치 상에 디스플레이 하기 위한 사용자 인터페이스와의 상호작용에 관한 것이다.
몇몇 실시예에서, 의미 지정은 리스트, 테이블, 필드, 멤버, 컬럼, 로우, 하나 이상의 셀 또는 디멘션(dimension)을 설명한다. 다른 실시예에서, 의미 지정은 리스트 네임, 테이블 네임, 로우 네임, 컬럼 네임, 셀 네임, 로우 위치, 셀 위치, 컬럼 위치 또는 데이터 상세사항 중 하나 이상을 포함한다. 일 실시예에서, 의미 지정은 하나 이상의 메타데이터 아이템을 의미한다.
일 실시예에서, 구조적 참조는 하나 이상의 데이터 아이템의 위치를 의미한다. 또 다른 실시예에서, 위치는 컬럼, 로우 또는 하나 이상의 셀을 의미한다. 다른 실시예에서, 데이터 구조는 의미 지정에 의해 식별된 테이블의 구조적 구성요소이다. 또 다른 실시예에서, 구조적 구성요소의 유형은 리스트, 테이블, 필드, 멤버, 컬럼, 로우, 하나 이상의 셀 또는 디멘션 중 하나 이상을 포함한다. 몇몇 실시예에서, 구조적 참조는 무한 개의 셀이다. 몇몇 실시예에서, 구조적 참조는 사용자에게 구조적 참조를 설정하는 데 사용된 하나 이상의 의미 지정의 집합으로서 제공된다.
몇몇 실시예에서, 본 발명의 방법은 또한, 하나 이상의 구조적 참조에 포함된 데이터에 대한 변경을 수신하는 단계, 및 하나 이상의 기존 데이터의 아이템에 대한 참조를 유지하기 위해 하나 이상의 구조적 참조를 자동으로 조정하는 단계를 포함한다. 또 다른 실시예에서, 본 발명의 방법은 하나 이상의 구조적 참조를 자동으로 조정하여, 하나 이상의 구조적 참조를 설정하는 데 사용된 하나 이상의 의미 지정에 의해 설명된 데이터 구조의 부분인 추가된 데이터를 포함하는 단계를 더 포함한다.
몇몇 실시예에서, 구조적 참조는 어플리케이션 공식에 포함된다. 또 다른 실시예에서, 사용자에게 제공된 어플리케이션 공식은 구조적 참조를 구축하는 데 사용된 하나 이상의 의미 지정을 갖는다.
몇몇 실시예에서, 사용자 인터페이스는 구조적 참조를 이용하는 연산을 수신하고, 그 연산을 구조적 참조를 참조하는 하나 이상의 의미 지정의 집합과 함께 디스플레이하는데, 여기서, 하나 이상의 의미 지정은 연산 내의 아규먼트의 집합을 형성한다. 또 다른 실시예에서, 사용자 인터페이스는 구조적 참조에 의해 참조된 하나 이상의 데이터 아이템에 대한 하나 이상의 변경을 수신할 수 있다.
구조적 참조는 명백하다. 사용자는 참조를 포함하는 공식 및 그 참조가 참조하는 스프레드시트로부터, 정확히 어느 셀이 참조되는지를 파악할 수 있다. 또한 구조적 참조는 모순이 없다. 동일한 의미 지정을 포함하는 2개의 공식은 항상, 의미 지정이 워크북 내의 동일한 구조 또는 그 구조의 일부이어야 한다고 평가할 것이다. 또한, 구조적 참조는 참조이지 함수가 아니다. 따라서, 구조적 참조는 다른 참조가 사용될 수 있고, 다른 참조로서 연산될 수 있고, 다른 참조와 같이 참조된 셀을 강조할 수 있고, 다른 참조와 같이 조정할 수 있으면 어디에서나 사용될 수 있다.
본 발명은 컴퓨터 프로세스, 컴퓨팅 시스템, 또는 컴퓨터 프로그램 제품과 같은 제조품으로서 구현될 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 시스템에 의해 판독가능하고, 컴퓨터 프로세스를 실행하기 위한 명령어들의 컴퓨터 프로그램을 인코딩하는 컴퓨터 저장 매체일 수 있다. 컴퓨터 프로그램 제품은 또한, 컴퓨팅 시스템에 의해 판독가능하고, 컴퓨터 프로세스를 실행하기 위한 명령어들의 컴퓨터 프로그램을 인코딩하는 반송파 상의 전파된 신호일 수 있다.
본 발명의 더 완전한 이해 및 그 향상은 이하에 간략하게 요약된 첨부 도면, 본 발명의 현재 바람직한 실시예에 대한 다음의 상세한 설명, 및 첨부된 청구범위를 참조함으로써 획득될 수 있다.
본 발명은 본 발명의 실시예가 도시되어 있는 첨부 도면을 참조하여 다음에 더 자세히 설명될 것이다. 그러나, 본 발명은 다수의 상이한 형태들로 구현될 수 있으며, 여기에 설명된 실시예로 제한되는 것으로서 이해해서는 안된다. 오히려, 이러한 실시예들은 본 명세서가 완전하고 완성적이도록, 및 당업자들에게 본 발명의 범위를 완전히 전달하도록 상세히 제공되고 설명된다.
일반적으로, 본 발명의 실시예는 셀 좌표(즉, "C6" 또는 "D3:D12") 또는 색인 대신에 문맥을 기초하여 데이터를 참조하지만 함수와는 달리, 여전히 참조인 스프레드시트 프로그램 내의 구조화된 네임 구문에 관한 것이다. 본 발명의 실시예는 데이터 아이템을 참조하기 위한 새로운 구조적 참조, 구조적 참조를 생성하기 위한 방법, 및 구조적 참조를 구현하기 위한 방법을 포함한다.
본 발명은 하나 이상의 컴퓨터 또는 다른 장치에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령어의 일반적 문맥으로 설명될 수 있다. 일반적으로 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 타입을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포함한다. 일반적으로 프로그램 모듈의 기능은 여러 실시예에서 요구되는 대로, 결합 또는 분산될 수 있다.
본 발명의 양상을 갖는 스프레드시트 어플리케이션(100)의 실시예가 도 1a 및 도 1b에 도시되어 있다. 예시적인 스프레드시트(100)는 네임 "Table1"(104)을 갖는 테이블(102)을 포함한다. 테이블(102)은 4개의 컬럼(106)과 7개의 로우(108)를 가지고 있다. 사용자는 예시적인 스프레드시트(100)의 데이터 구조에 대한 구조적 참조를 생성할 수 있다. 구조화된 또는 구조적 참조는 셀 범위에 기초하기 보다, 컬럼, 로우, 셀 세트 등과 같은 스프레드시트 데이터의 구조에 기초하는 스프레드시트 내의 하나 이상의 데이터 아이템에 대한 참조이다. 구조적 참조는 컬럼 네임, 로우 네임, 데이터 세트 네임 등과 같은 구조의 메타데이터를 사용하여, 참조의 구조를 결정할 수 있다. 몇몇 실시예에서, 메타데이터는 테이블 네임, 컬럼 헤더 네임, 로우 헤더 네임 등과 같은 사용자 생성 네임일 수 있다.
데이터 구조는 구조적 참조에 의해 설명된 스프레드시트 내의 데이터 세트를 의미한다. 데이터 구조는 컬럼, 로우, 테이블, 리스트, 별도의 스프레드시트, 별도의 워크북, 멤버, PivotTables®, 또는 로우 또는 컬럼의 세트 등에 의해 정의된 데이터의 일부를 포함할 수 있다. 본 발명의 실시예에서, 데이터 구조는 상술된 데이터 구조들 중 하나를 차지하는 셀 또는 셀의 어레이를 포함한다. 데이터 구조 내의 셀의 어레이는 무한할 수 있다. 즉, 셀의 어레이는 어레이의 시작과 끝을 북엔드(bookend)하는 2개의 셀에 대한 참조를 가질 필요가 없다.
본 발명의 실시예에서, 사용자는 스프레드시트 어플리케이션이 데이터 구조를 식별하도록 돕는 의미 지정(semantic designation)을 기술할 수 있다. 스프레드시트 어플리케이션은 데이터 구조에 대한 구조적 참조를 생성할 수 있다. 본 발명의 실시예에서, 의미 지정은 사용자 생성 컬럼 헤더 네임과 같은 데이터 구조에 대한 메타데이터 네임인 사용자에 의해 입력된 언어 기술자(language descriptor) 의미한다. 데이터 구조는 이하에서 더 완전히 설명된다. 문맥 정보는 스프레드시트 어플리케이션이 구조적 참조가 적용되는 데이터 구조를 결정하는 데 사용할 수 있는 정보를 의미한다. 본 발명의 실시예에서, 사용자 입력 의미 지정은 스프레드시트 어플리케이션이 문맥 정보의 세트를 생성하게 한다. 문맥 정보는 하나 이상의 데이터 아이템을 설명하는 하나 이상의 의미 지정일 수 있다. 본 발명의 실시예에서, 문맥 정보는 컬럼 헤더 네임 또는 사용자 정의 테이블 네임과 같은 사용자 생성 것이다. 다른 실시예에서, 스프레드시트 어플리케이션이 "pivottable1" 또는 "pivottable23"으로서 PivotTable®을 지정할 때와 같은 문맥 정보가 제공될 수 있다. 따라서, 의미 지정은 사용자에 의해 스프레드시트 어플리케이션에 제공된 언어 기술자이고, 문맥 정보는 스프레드시트 내의 데이터 구조를 특징짓는, 네임으로서 의미 지정을 갖는 스프레드시트의 일부이다. 이후에, 의미 지정 및 문맥 정보는 거의 호환가능하게 사용되어, 데이터 구조를 식별하는 데 사용되는 사용자에 의해 제공되거나 스프레드시트 어플리케이션에 의해 사용된 언어 기술자를 설명할 것 이다.
본 발명은 명백한 메타데이터를 사용한다. 본 발명의 실시예에서, 명백한 의미 지정이 결정될 수 있는 메타데이터만이 구조적 참조를 생성하는 데 사용된다. 또한, 참조가 참조하는 데이터의 특성 및 확장은, 참조가 참조하는 워크북 및 의미 지정의 텍스트 내의 구조에 기초하여 명백하게 결정될 수 있다.
예를 들어, 도 1a를 참조하면, 사용자는 컬럼(112) 내의 데이터를 사용하기를 원할 수 있다. 사용자는 의미 지정 "Height"를 기술할 수 있다. 스프레드시트 어플리케이션은 스프레드시트에서 "Height"를 찾을 수 있다. 스프레드시트 어플리케이션은 "Height"가 컬럼(112)에 대한 컬럼 헤더 네임(110)임을 인식할 수 있다. 따라서, 컬럼 헤더 네임으로서의 "Height"는 컬럼(112) 내의 데이터를 설명하기 때문에, "Height"는 스프레드시트 내의 문맥 정보의 일부이다. 컬럼(112)은 데이터 구조이다. 따라서, 사용자가 공식에서 의미 지정 "Height"를 기술하면, 스프레드시트 어플리케이션은 사용자가 컬럼(112) 내의 데이터를 사용하기를 원한다고 결정한다. 스프레드시트 어플리케이션은 공식이 계산에서 컬럼(112)으로부터의 데이터를 사용하도록, 데이터 구조인 컬럼(112)에 대한 구조적 참조를 생성할 수 있다.
본 발명의 실시예에서, 사용자는 구조적 참조를 생성할 수 있다. 예를 들어, 도 1a를 참조하면, 의미 지정 "Table1[Height]"를 사용하는 것은 강조된 컬럼(112)에서 보는 바와 같이, 컬럼(112) 내의 데이터에 대한 구조적 참조를 생성한다. 테이블 네임(104)인 의미 지정 "Table1"을 사용하는 것은 도 1a에 도시된 전체 테이블(102)의 데이터 구조에 대한 구조적 참조를 생성할 수 있다. 로우 헤더 네임(114)인 "Table1[Fred]"로의 의미 지정은, 로우 헤더 네임(114)으로 "Fred"를 갖는 강조된 로우(116)의 데이터 구조에 대한 구조적 참조를 생성할 수 있다. 사용자가 단일 데이터 셀을 참조하기를 원하면, 셀의 로우 헤더 네임 및 컬럼 헤더 네임을 가리키는 의미 지정을 사용할 수 있다. 제공된 예는 "[Fred]"와 같은 각괄호에 놓인 참조를 나타낸다. 각괄호를 사용하는 것은 스프레드시트 어플리케이션이 관련된 구조적 참조를 갖는 의미 지정으로서 그 입력을 식별하는 것을 돕는다. 각괄호는 스프레드시트에서 사용되기 위한 예시적인 구문일 뿐이다. 당업자는 의미 지정 및 관련된 구조적 참조를 식별하는 데 사용될 수 있는 다른 유형의 구문을 인식할 것이다.
사용자는 공식에서 구조적 참조를 사용할 수 있다. 예를 들어, 사용자는 도 1a에 도시되어 있는 바와 같이, 스프레드시트에 공식(120)을 입력할 수 있다. 공식(120)은 평균을 계산한다. 입력된 공식(120)은 2개의 의미 지정을 사용한다. 우선, 공식(120)은 테이블(102)을 의미하는 의미 지정 "Table1", 및 컬럼(112)을 의미하는 "Height"를 사용한다. 스프레드시트는 의미 지정에 관련된 문맥 정보를 찾아 구조적 참조를 데이터 구조에 맵핑할 것이다. 하나의 구조적 참조는 테이블(102)에 맵핑될 수 있다. 다른 구조적 참조는 컬럼(112)에 맵핑될 수 있다. 따라서, 공식(120)은 "Table1"(104)로 라벨붙여진 테이블(102)의 컬럼 헤더 네임 "Height"(110)를 갖는 컬럼(112) 내의 모든 데이터의 평균을 계산할 것이다. 평균의 계산(120)으로부터의 결과(126)는 도 1b에 도시되어 있다. 이 예시적인 실시예가 설명하는 것과 같이, 사용자는 스프레드시트 내의 데이터를 참조하기 위해 셀 범위를 제공할 필요가 없다. 오히려, 사용자는 스프레드시트에 의미 지정을 이용하여, 스프레드시트 내의 데이터를 참조할 수 있다.
사용자는 공식에서 구조적 참조를 이용할 수 있다. 예를 들어, 사용자는 도 1a에 도시되어 있는 바와 같이, 스프레드시트에 공식(120)를 입력할 수 있다. 공식(120)는 평균을 계산한다. 입력된 공식(120)는 2개의 의미 지정을 사용한다. 우선, 공식(120)는 테이블(102)을 의미하는 의미 지정 "Table1", 및 컬럼(112)을 의미하는 "Height"를 사용한다. 스프레드시트는 의미 지정에 관련된 문맥 정보를 찾아 구조적 참조를 데이터 구조에 맵핑할 것이다. 하나의 구조적 참조는 테이블(102)에 맵핑될 수 있다. 다른 구조적 참조는 컬럼(112)에 맵핑될 수 있다. 따라서, 공식(120)는 "Table1"(104)로 라벨붙여진 테이블(102)의 컬럼 헤더 네임 "Height"(110)를 갖는 컬럼(112) 내의 모든 데이터의 평균을 계산할 것이다. 평균의 계산(120)으로부터의 결과(126)는 도 1b에 도시되어 있다. 이 예시적인 실시예가 설명하는 것과 같이, 사용자는 스프레드시트 내의 데이터를 참조하기 위해 셀 범위를 제공할 필요가 없다. 오히려, 사용자는 스프레드시트에 의미 지정을 이용하여, 스프레드시트 내의 데이터를 참조할 수 있다.
또한, 본 발명의 실시예는 구조의 데이터, 헤더, 총계 또는 부분총계를 개별적으로 포함하는 구조의 일부를 참조할 수도 있고, 데이터의 다른 부분과 함께 구조의 일부를 참조할 수도 있다. 따라서, 일 실시예에서, 사용자는 특수한 의미 지정을 사용함으로써 주어진 컬럼에 대한 총계만을 참조할 수 있다. 예를 들어, "total" 구조를 참조하는 특수 의미 지정은 "=Table1[Height,[#Total]]"일 수 있 다. 여기서, 총계를 리턴하기 위한 의미 지정은 그 지정이 컬럼 네임이 아니라 구조의 일부임을 스프레드시트 어플리케이션에게 나타내는 기호(#)의 사용을 통해 컬럼 네임으로부터 구별된다.
본 발명이 구현될 수 있는 적합한 오퍼레이팅 환경의 실시예가 도 2에 도시된다. 오퍼레이팅 환경은 적합한 오퍼레이팅 환경의 일례일 뿐이며, 본 발명의 사용 또는 기능의 범주에 관한 임의의 제한을 제시하려는 것은 아니다. 본 발명과 함께 사용하기에 적합할 수 있는 다른 공지의 컴퓨팅 시스템, 환경 및/또는 구성은 개인용 컴퓨터, 서버 컴퓨터, 헨드-헬드 또느 랩탑 장치, 멀티프로세서 시스템, 마이크로소프트-기반 시스템, 프로그램가능한 전자 제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기 시스템 또는 장치들 중 임의의 것을 포함하는 분산 컴퓨팅 환경 등을 포함하지만, 이것으로 제한되는 것은 아니다.
도 2를 참조하여, 본 발명의 실시예를 구현하기 위한 예시적인 컴퓨팅 환경은 컴퓨팅 장치(200)와 같은 컴퓨팅 장치를 포함한다. 그 가장 기본적인 구성에서, 컴퓨팅 장치(200)는 일반적으로, 적어도 하나의 프로세싱 유닛(202) 및 메모리(204)를 포함한다. 컴퓨팅 장치(200)의 정확한 구성 및 유형에 따라, 메모리(204)는 (RAM과 같은) 휘발성, (ROM, 플래시 메모리 등과 같은) 비휘발성, 또는 이 둘의 임의의 조합일 수 있다. 컴퓨팅 장치(200)의 이 가장 기본적인 구성은 점선(206)에 의해 도 2에서 도시된다. 또한, 장치(200)는 추가적인 특징/기능도 가질 수 있다. 예를 들어, 장치(200)는 자기 또는 광 디스크 또는 테이프(이것으로 제한되는 것은 아님)를 포함하는 추가적인 저장장치(분리형 및/또는 비분리형)도 포함할 수 있다. 그러한 추가 저장장치는 도 2에서 분리형 저장장치(208) 및 비분리형 저장장치(210)에 의해 도시된다. 그러한 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 포함한다. 메모리(204), 분리형 저장장치(208) 및 비분리형 저장장치(210)는 모두 컴퓨터 저장 매체의 예이다. 컴퓨터 저장 매체로는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 다른 광 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치, 다른 자기 저장 장치, 또는 요구된 정보를 저장하는 데 사용될 수 있고 장치(200) 및 프로세스(202)에 의해 액세스될 수 있는 임의의 다른 매체가 있지만, 이것으로 제한되지 않는다. 임의의 그러한 컴퓨터 저장 매체는 장치(200)의 일부일 수 있다.
장치(200)는 장치가 다른 장치들과 통신하게 하는 통신 접속(들)(212)도 포함할 수 있다. 통신 접속(들)(212)은 통신 매체의 예이다. 통신 매체는 일반적으로, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터를 반송파 또는 다른 전송 메커니즘과 같은 변조된 데이터 신호에 구현하며, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 그 특징들 중 하나 이상이 신호 내의 정보를 인코딩하는 방식으로 설정 또는 변경된 신호를 의미한다. 예를 들어, 통신 매체는 유선 네트워크 또는 직접 유선 접속과 같은 유선 매체, 및 음향, RF, 적외선 및 기타 무선 매체와 같은 무선 매체를 포함하지만, 이것으로 제한되지 않는다.
장치(200)는 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치 등과 같은 입력 장치(들)(214)도 가질 수 있다. 디스플레이, 스피커, 프린터 등과 같은 출력 장치(들)(216)도 포함될 수 있다. 이러한 장치는 개별적으로 또는 결합하여 사용자 인터페이스(102)를 형성할 수 있다. 모든 이러한 장치는 본 기술분야에 잘 알려져 있으며, 여기서 길게 논의할 필요는 없다.
컴퓨팅 장치(200)는 일반적으로, 적어도 몇몇 형태의 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 프로세싱 유닛(202)에 의해 액세스될 수 있는 임의의 사용가능한 매체일 수 있다. 예를 들어, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보를 저장하기 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 포함한다. 상술된 것들의 임의의 조합도 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
본 발명의 양상을 갖는 시스템(300)의 실시예에 대한 기능도가 도 3에 도시된다. 시스템(300)은 본 발명의 일 실시예에 따른 구조적 참조를 생성할 수 있다. 시스템(300)은 스프레드시트 또는 데이터베이스 어플리케이션과 같은 소프트웨어 어플리케이션 또는 프로그램의 일부로 구현될 수 있다. 예시적인 실시예에서, 시스템(300)의 일부는 Microsoft® Excel 스프레드시트 어플리케이션과 같은 스프레드시트 어플리케이션에서 발견된다. 시스템 어플리케이션(300)은 몇몇 모듈들을 갖는다. 일 실시예에서, 시스템(300)은 사용자 인터페이스(302), 데이터 참조 모 듈(304), 공식 모듈(306), 및 일부 스프레드시트에 저장된 데이터(308)를 갖는다. 일부 실시예에서, 다양한 모듈들은 상호작용하여, 사용자가 제공하는 의미 지정(332)으로부터 구조적 참조(310)를 생성한다. 의미 지정은 데이터(308) 내의 데이터 구조(316)를 식별하기 위해 사용될 수 있는 문맥 정보(314)의 세트와 연계될 수 있다. 데이터 구조(316)가 식별되면, 데이터 참조 모듈(304)은 데이터 구조(316)에 대한 구조적 참조(310)를 생성할 수 있다.
몇몇 실시예에서, 구조적 참조(310)가 공식 모듈(306) 내에서 사용될 수 있다. 공식 모듈(306)은 사용자로부터 수신한 공식(318)에 따라 데이터(308)를 조작하는 것을 도울 수 있다. 공식(318)은 구조적 참조(310)를 사용하여, 공식(318)에서 사용되는 데이터를 획득할 수 있다. 공식 모듈(306)은 구조적 참조를 갖는 공식(320)을 출력할 수 있다.
본 발명의 실시예에서, 구조적 참조는 동적으로 갱신 및 변경될 수 있다. 그러므로, 구조적 참조는 "동적 데이터"를 참조할 수 있다. 동적 데이터는 변경될 수 있지만 여전히 구조적 참조에 의해 참조되는 데이터 구조 내의 데이터 세트이다. 구조적 참조는 스프레드시트 데이터 또는 데이터 구조 내의 변경을 수용 또는 조정할 수 있다. 종종, 사용자는 스프레드시트 내의 데이터를 변경, 추가 또는 삭제한다. 추가적으로, 사용자는 종종 스프레드시트 내의 데이터를 나타내는 방식을 조작한다. 구조적 참조가 데이터의 위치 정보(셀 범위와 같은) 보다는 문맥 정보(의미 참조와 같은)에 따라서 데이터를 가리키기 때문에, 구조적 참조는 스프레드시트 데이터 내의 변경을 수용한다. 그러므로, 데이터 또는 데이터 구조가 변경되었 을 때, 데이터가 스프레드시트 내의 새로운 위치를 점유하더라도, 구조적 참조(130)는 동일한 문맥 정보를 갖지만 새로운 데이터 구조를 갖는 데이터에 리매핑(remap)할 수 있다.
본 발명의 실시예에서, 시스템(300)은 데이터(308)에 공식(320)을 적용할 수 있다. 공식(320)에 의해 조작된 또는 계산된 데이터(322)의 세트가 생성된다. 시스템은 구조적 참조를 이용하여 계산된 데이터(322)를 생성하여,데이터(308)가 동적으로 갱신될 수 있게 한다. 그러므로, 데이터(308)가 변경되면, 공식은 구조적 참조에 따라 계속해서 계산된 데이터(322)를 생성할 것이다.
구조적 참조를 생성하기 위한 방법(400)에 대한 실시예가 도 4의 순서도에 도시된다. 본 발명의 실시예에서, 방법(400)은 문맥 정보의 하나 이상의 아이템을 제공하는 제공 연산(402)에서 시작한다. 이 경우의 문맥 정보는 도 3에 도시된 문맥 정보(314)와 유사할 수 있다. 문맥 정보는 데이터 구조[데이터 구조(316)와 같은]에 의해 데이터를 참조할 수 있다. 일부 실시예에서, 사용자는 사용자 인터페이스[참조번호(302)와 같은]를 통해 하나 이상의 의미 지정[지정(312)과 같은]을 제공할 수 있다. 일부 실시예에서, 상술된 것과 같은 의미 정보는 데이터를 설명하는 언어 기술자를 사용하여 데이터 모두 또는 그 일부를 가리키는 하나 이상의 의미 지정으로부터 구축될 수 있다. 다른 실시예에서, 사용자는 반선택(semi-selection) 또는 후술된 다른 프로세스들을 통해 문맥 정보를 제공할 수 있다. 다른 실시예에서, 다른 어플리케이션들도 이러한 문맥 정보를 제공할 수 있는데, 예를 들어, 마이크로코드 함수가 수행되어 보고서를 생성할 수 있다. 이러한 경우 에, 스프레드시트 어플리케이션은 자기 자신의 문맥 정보를 생성할 수 있다.
의미 지정에 입력을 제공하여 문맥 정보를 생성하기 위해, 사용자는 몇몇 상이한 방법들을 사용할 수 있다. 일 실시예에서, 사용자는 키보드 인터페이스를 통해 스프레드시트 어플리케이션에 의미 지정을 직접 타이핑함으로써 의미 지정을 입력할 수 있다. 다른 실시예에서, 사용자는 마우스 또는 다른 유형의 그래픽 사용자 인터페이스로 로우, 컬럼, 테이블 또는 다른 구조를 선택할 수 있다. 데이터의 세트를 그래픽적으로 선택할 때, 어플리케이션은 헤더 네임 또는 데이터의 선택된 일부를 설명하는 다른 문맥 정보를 결정함으로써 어느 문맥 정보를 사용할지 결정하고, 선택된 데이터에 대한 의미 지정을 디스플레이할 수 있다. 이 방법은 반선택을 의미할 수 있다. 다른 실시예에서, 사용자는 그래픽 사용자 인터페이스 또는 다른 수단을 사용하여 기존 공식 또는 셀로부터 구조적 참조를 그래픽적으로 복사하고, 새로운 공식 또는 함수에 그 참조를 붙여넣을 수 있다. 구조적 참조를 복사하기 위해, 사용자는 의미 지정을 복사 및 붙여넣기할 수 있다. 당업자는 사용자가 본 발명의 실시예들에 포함된 문맥 정보를 제공할 수 있는 다른 방법을 인식할 것이다.
다음으로, 결정 연산(404)은 문맥 정보에 관련된 데이터 구조를 결정한다. 일부 실시예에서, 데이터 구조를 결정하는 것은 사용자가 문맥 정보를 제공하는 데 이용했던 방법에 영향을 받는다. 사용자가 또다른 공식 또는 셀로부터 의미 지정을 복사했으면, 상술한 바와 같이, 구조적 참조도 새로운 공식 또는 셀에 복사된다. 그러나, 일부 실시예에서, 사용자는 의미 지정을 타이핑해 넣음으로써 문맥 정보만 제공할 수 있다. 이러한 실시예에서, 어플리케이션은 어떤 셀, 컬럼, 테이블, 리스트, 로우 또는 다른 구조가 그 문맥 정보에 의해 설명되는지를 결정해야 한다. 본 발명의 실시예에서, 의미 지정은 "MyPivotTable"이라고 네이밍된 PivotTable® 함수에 대한 메타데이터 제목일 수 있는 "MyPivotTable"과 같이, 항상 데이터 구조의 네임으로 시작한다.
본 발명의 실시예에서, 스프레드시트 어플리케이션은 참조를 파싱(parse)한다. 그 후, 스프레드시트 어플리케이션은 파싱되고 있는 참조가 구조적 참조인지 결정할 수 있다. 참조가 구조적 참조이면, 스프레드시트 어플리케이션은 어떤 데이터 구조가 사용자가 제공한 네임을 갖는지를 결정할 수 있다. 예를 들어, 어플리케이션은 의미 지정과 동일한 또는 그에 유사한 네임을 찾기 위해 테이블 또는 리스트를 검색한다. 예를 들어, 도 1에서와 같이, 사용자는 공식에 네임 "Height"를 제공할 수 있다. 도 1에서, 테이블(102)의 검색은 용어 "Height"를 컬럼 헤더(110)에서 찾을 것이다. 이 예에서, "Height"는 컬럼 C(112) 내의 데이터에 대한 헤더(110)이다.
그 후, 스프레드시트 어플리케이션은 사용자가 어떤 유형의 데이터 구조를 네이밍했는지를 결정할 수 있다. 예를 들어, 데이터 구조는 PivotTable® 테이블, 테이블 또는 리스트일 수 있다. 다른 실시예에서, 데이터는 상술된 바와 같이 데이터 구조 내에 임베딩될 수 있다. 스프레드시트 어플리케이션은 그 구조(PivotTable 테이블 또는 테이블)를 사용하여, 문맥 정보가 데이터와 비교하여 스프레드시트 내에 있음을 결정한다. 문맥 정보가 데이터 보다 위에 있으면, 문맥 정보는 컬럼의 데이터 구조를 설명할 수 있다. 데이터의 좌측에 셀이 있으면, 문맥 정보는 로우의 데이터 구조를 설명할 수 있다. 이 프로세스는 어느 셀이 알맞은 라벨을 포함하는지 및 주어진 라벨에 의해 어느 범위의 데이터가 참조되는지를 평가하기 위한 명백한 문맥을 제공한다. 구조가 또한 갱신되어, 라벨들 및 데이터 범위들은 링크된 채로 남아있다. 상기 예에서, "Height"는 도 1의 테이블(102) 내의 컬럼(112)(데이터 구조)을 설명하는데, 이는 "Height"가 그 컬럼에 대한 컬럼 헤더이기 때문이다. 당업자는 테이블에 대한 데이터 구조를 식별하기 위해 문맥 정보가 어떻게 사용될 수 있는지를 이해할 것이다.
또다른 실시예에서, PivotTable® 테이블에 대해서, 스프레드시트 어플리케이션은 PivotTable® 테이블의 네임, 및 필드 내의 아이템들 또는 아이템들의 범위들 사이의 교차를 사용하여, 구조적 참조의 정도를 결정한다. 본 발명의 일 실시예에서, 이러한 결정은, 컬럼으로 분리된 필드 내의 아이템들 또는 아이템들의 범위들의 네임을 포함하는 각괄호가 뒤따르는 PivotTable® 테이블의 네임을 의미론적으로 지정함으로써 행해진다.
PivotTable® 테이블의 예는 도 6의 테이블과 같이 나타내질 수 있다. 필드 "Proposed Milestone"(614)으로부터의 아이템 "M2"(602)에 대한 컬럼(610) 내의 데이터에의 참조는 "=MyTable[[Proposed Milestone].[M2]]"에 의해 주어진다. 추가적으로, 이 데이터 범위와 필드 "Proposed PM"(618) 내의 아이템 "Joseph Chirilov"(616)에 대한 로우와의 교차에의 참조는 "=MyTable[[Proposed Milestone].[M2],[Proposed PM].[Joseph Chirilov]]"에 의해 주어질 것이다. 아이 템들의 범위를 포함하는 참조의 예는 "Proposed PM" 필드(618) 내의 아이템들 "Allan Folting"(602) 내지 "Chad Rothschiller"(606)와 "Milestone" 필드(614) 내의 "M2" 아이템(602)에 관련된 셀들에의 참조이다. 셀들의 이러한 세트에 대한 구조적 참조는 "=MyTable[[Proposed Milestone].[M2],[Proposed PM].[Allan Folting]:[Chad Rothschiller]]"일 수 있다. 이러한 참조는 항상 "Proposed PM" 필드(618) 내의 아이템들이 나타나는 순서에 상관없이, "Proposed Milestone" 필드(614) 내의 "M2" 아이템(602)에 의해 지정된 데이터 셀들과 "Proposed PM" 필드(618) 내의 "Allan Folting"(602) 내지 "Chad Rothschiller"(606)의 아이템들의 교차를 생성할 것이다. 참조를 위해 사용되는 구문은 예시적인 실시예 및 예들에 도시된 구문에 제한되지 않는다. 당업자는 다른 구문이 참조를 위해 사용될 수 있음을 인식할 것이다.
또다른 실시예에서, OLAP(Online Analytical Processing) 데이터베이스 내의 데이터에 링크된 PivotTable® 테이블에 대해서, PivotTable® 테이블의 일부에 대한 지정은 디멘션들 내의 멤버들 또는 멤버들의 범위들의 교차를 사용한다. 디멘션은 데이터의 전체 세트를 설명하는 기술자 또는 캡션이다. 디멘션은 데이터의 세트를 더 카테고리화하고 설명하는 하나 이상의 멤버들을 가질 수 있다. 이 멤버들은 멤버가 하나 이상의 "자식" 멤버들에 대한 조상이 될 수 있는 레벨의 세트로 조직화될 수 있다. 본 발명의 실시예에서, OLAP 데이터베이스에서 사용되는 조상이란 용어는 계층구조의 임의의 레벨에의 지정된 멤버들의 n번째 부모인 멤버들에 적용된다. 멤버 및 디멘션은 본 기술 분야에 잘 알려진 것이므로 더이상 설명하지 않겠다. 의미 지정 및 관련된 구조적 참조는 상술된 필드 내의 아이템들의 지정과 유사하지만, 참조가 상술한 바와 같이 하나의 아이템과 하나의 필드의 조합을 간단하게 사용하는 것과 반대로, 디멘션의 하나 이상의 레벨들 내의 하나 이상의 멤버들과 디멘션의 조합을 사용한다. 일 실시예에서, OLAP PivotTable® 테이블 내의 데이터에 대한 구조적 참조는 디멘션 내의 데이터를 설명하는 모든 멤버를 포함하는 단일 공식 표현을 포함할 것이다. 예를 들어, 다음은 "MyPivotTable"이라고 네이밍된 OLAP PivotTable® 테이블이다:
Count of OrderID
ShipCountry ShipCity Total
Argentina Buenos Aires 34
Brazil Campinas 19
Resende 19
Rio de Janeiro 83
Sao Paulo 82
Mexico
Figure 112005035101638-PAT00001
72
Venezuela Barquisimeto 34
Caracas 4
I.de Margarita 35
Figure 112005035101638-PAT00002
45
"83"을 포함하는 셀에 대한 의미 지정은 다음과 같을 것이다:
"=MyPivotTable[[ShipCountry].[Brazil].[Rio de Janeiro]]".
본 발명의 실시예는 색인을 사용하여 중복 멤버 캡션들을 명확하게 함으로써 OLAP PivotTable® 테이블들 내의 모호한 경우를 처리한다. 그러므로, 동일한 네임, 및 모든 다른 면에서 동일한 의미 지정(PivotTable® 테이블 상의 가시화가능한 동일한 조상 및 동일한 디멘션과 레벨)을 갖는 두개의 멤버들이 동시에 테이블 에 나타나면, 그러한 멤버들은, 한 멤버를 동일한 지정을 공유하는 다른 멤버들로부터 구별하기 위해 멤버 네임에 첨부되는 정수에 의해, 참조의 목적으로 명확하게 구별된다. 예를 들어, 한 멤버가 "Vancouver 1"이면, 제2 멤버는 "Vancouver 2"일 수 있다.
다음으로, 생성 연산(406)은 구조적 참조를 생성한다. 구조적 참조는 상술된 데이터 구조에 기초할 수 있다. 일부 실시예에서, 스프레드시트 어플리케이션은 데이터 구조의 메타데이터에 (즉, 구조된 참조 구문에서 사용가능한 헤더 및 지정한 아이템들에) 매핑한다. 메타데이터는 리스트 또는 PivotTable® 테이블 내의 컬럼과 같은 임베딩된 데이터 구조를 포함할 수 있다. 그러므로, 메타데이터는 테이블 및 컬럼에 대한 문맥 정보를 가질 수 있다. 구조적 참조는 데이터 구조에 연관될 수 있다. 스프레드시트 어플리케이션은 "파스 시간"에 구조의 한 부분에 대한 참조를 결정한 후, 특징에 대한 "평가 시간"에 구조의 그부분을 셀 범위로 결정한다. 예를 들어, 의미 지정 "MyList[Sales]"가 실제로 "MyList의 Sales 컬럼"인 구조적 참조를 생성할 것이지만, 구조적 참조가 공식 또는 특징의 평가 동안 사용될 때는, 이 구조적 참조는 "셀들 C2 내지 C48"와 같은 것으로 결정될 것이다. 그러므로, 스프레드시트 어플리케이션은 파스 시간에는 의미 지정을 데이터 구조에 대한 구조적 참조로 해석하고, 평가 시간에는 그 데이터 구조를 사용자가 원하는 데이터를 갖는 셀들의 실제 범위로 해석할 수 있다. 사용자는 디스플레이 장치 상에 나타내진 구조적 참조는 볼 수 없다. 그러나, 다른 실시예에서는, 구조적 참조가 참조하는 위치의 텍스트적인 또는 그래픽적인 표현이 사용자 인터페이스 내에서 사용자에게 제공될 수 있다. 그러므로, 사용자는 디스플레이 장치의 일부 영역 또는 창에서, 구조적 참조에 포함된 셀들을 포함하는 표시를 수신할 수 있다. 예를 들어, 셀들은 스프레드시트 어플리케이션 내에서 강조될 수 있다. 다른 실시예에서, 스프레드시트 어플리케이션은 셀들 주위를 굵게하거나, 셀들에 음영표시를 하거나, 또는 다른 시각적인 효과를 사용하여, 디스플레이 장치 상에 디스플레이된 셀들의 세트의 표현을 변경할 수 있다.
다음으로, 제공 연산(408)은 구조적 참조를 제공한다. 본 발명의 실시예에서, 구조적 참조는 사용자가 그 구조적 참조를 이용하여 수행하길 원하는임의의 연산에 대하여 스프레드시트 내에 임베딩된다. 그러나, 사용자는 스프레드시트 내의 의미 지정만을 관찰할 수 있다. 일부 실시예에서, 구조적 참조는 데이터의 섹션을 파싱하는 데 사용될 수 있거나, 공식, 계산 또는 다른 데이터 조작에 사용될 수 있다. 일 실시예에서, 의미 지정은 구조적 참조를 생성하는 문맥 정보를 제공하는 아규먼트들의 세트로서 공식의 구문에 통합될 수 있다.
또다른 실시예에서, 어플리케이션은 디스플레이 장치에 구조적 참조를 제공할 수 있다. 사용자가 수동으로 의미 지정을 입력하면, 그 후 스프레드시트 어플리케이션은 그 기반 구조적 참조에 의해 참조되는 데이터 구조를 강조할 수 있다. 다른 실시예에서, 사용자가 일부 공식 또는 함수에서 사용하기 위해 데이터의 섹션을 선택하면, 스프레드시트 어플리케이션은 선택된 데이터를 설명하는 의미 지정을 생성하고 그 의미 지정을 사용자에게 제공할 수 있다. 당업자는 스프레드시트 어플리케이션이 사용자에게 구조적 참조를 제공할 수 있는 다른 방식을 인식할 것이 다.
구조적 참조가 참조하는 데이터를 동적으로 갱신하는 방법(500)이 도 5에 도시된다. 수신 연산(502)은 구조적 참조가 참조하는 데이터에의 변경을 수신한다. 이 변경은 데이터를 더 추가하는 것과 같이 데이터에 행해질 수 있거나 데이터의 로우를 삽입하는 것과 같이 데이터 구조에 행해질 수 있다. 첨부되는 데이터는 참조된 데이터의 기존 데이터 구조를 반드시 변경하지는 않는데, 즉, 이미 데이터 구조 내에 있는 데이터는 이동되지 않는다. 첨부되는 데이터는 단순히 데이터를 기존 데이터 구조에 추가시킨다. 본 발명의 실시예에서, 데이터 구조에의 변경은 기존 데이터 구조에 로우, 컬럼 또는 셀들을 삽입, 삭제 또는 이동하는 것을 포함할 수 있다. 데이터 구조 변경은 구조적 참조로 참조된 데이터의 위치를 사실상 이동시킬 수 있다. 일부 실시예에서, 변경은 PivotTable® 테이블의 리프레시와 같은 스프레드시트 어플리케이션 내의 일부 자동적인 함수 때문에 또는 사용자 개입을 통해 수동적으로 일어난다.
다음으로, 결정 연산(504)은 데이터 구조가 변경되었는지를 결정한다. 일부 실시예에서, 스프레드시트 어플리케이션은 컬럼, 로우 또는 셀이 필드로 삽입되어, 구조적 참조가 참조하는 데이터를 이동 또는 시프트(shift)시켰는 지를 결정한다. 이 결정은 구조 변경의 위치를 기존 구조적 참조로 참조된 데이터의 위치와 비교하는 것을 포함할 수 있다. 그 위치들이 중첩하면, 데이터 구조는 변경된 것이다. 당업자는 스프레드시트 어플리케이션이 구조가 변경되었는지를 결정할 수 있는 다른 방식을 인식할 것이다. 데이터 구조가 변경되었으면, 찾기 연산(514)은 문맥 정보를 찾을 것이며, 이는 다음에 더 설명될 것이다.
데이터의 추가에서와 같이, 데이터 구조에 대한 변경은 발생하지 않았다면, 결정 연산(506)은 그 변경이 임의의 기존 구조적 참조에 미쳤을 수 있는 영향을 결정한다. 예를 들어, 데이터가 테이블에 추가되면, 어플리케이션은 기존 구조적 참조가 그 데이터를 커버해야하는지를 결정할 수 있다.
다음으로, 변경 연산(508)은 새로운 구조적 참조를 변경한다. 본 발명의 실시예에서, 스프레드시트 어플리케이션은 구조적 참조의 솔루션(solution)을 변경한다. 예를 들어, 기존 구조적 참조는 셀들 C2 내지 C6 내의 데이터를 획득하길 결정할 수 있다. 사용자는 셀들 C7 내지 C9에 추가된 새로운 데이터가 기존 구조적 참조에 포함되길 원할 수 있다. 기존 구조적 참조가 참조하는 데이터 구조가 반드시 변경되는 것은 아니지만, 구조적 참조를 위해 사용되는 의미 지정은 새롭게 추가된 데이터를 포함할 수 있다. 스프레드시트 어플리케이션은 새로운 구조적 참조를 생성하기 보다는 구조적 참조의 솔루션을 변경하여, 셀들 C2 내지 C9 내의 데이터를 획득한다. 예를 들어, 셀들이 도 1 내의 컬럼(112)의 끝에 추가되면, 기존 구조적 참조의 솔루션은 의미 지정 "Height"를 사용하는 임의의 공식으로 그 새로운 셀들을 커버할 필요가 있을 것이다.
다음으로, 제공 연산(510)은 구조적 참조를 제공한다. 일 실시예에서, 구조적 참조를 제공하는 것은 그 구조적 참조를 사용하는 임의의 셀들을 오염(dirtying)시킬 수 있다. 셀들을 오염시키는 것은 플래그, 또는 다른 수단들을 세팅(setting)함으로써, 재실행시에 계산 또는 참조로 필요로 하는 셀들을 식별 하는 것을 포함할 수 있다. 오염된 셀들은 그러한 셀들이 재실행할 때의 연산들을 갖는다. 이 방식으로, 구조적 참조가 갱신되면, 그 참조를 사용하는 모든 연산들도 갱신된다. 그러므로, 구조적 참조가 데이터 변경을 조정한 후 그러한 구조적 참조를 사용하는 임의의 연산을 갱신하기 때문에, 스프레드시트 어플리케이션은 동적 데이터에 대한 구조적 참조를 제공한다.
데이터의 변경이 데이터 구조를 변경시키면, 찾기 연산(514)은 변경된 데이터 구조 내의 문맥 정보를 찾는다. 본 발명의 실시예에서, 구조적 참조를 생성하는 데 사용되는 문맥 정보가 저장된다. 문맥 정보가 리트리브(retrieve)된다. 일 실시예에서, 스프레드시트 어플리케이션은 하나 이상의 의미 지정을 포함할 수 있는 문맥 정보를 위해 스프레드 시트 또는 테이블을 검색한다. 예를 들어, 스프레드시트 어플리케이션은 의미 지정과 동일한 컬럼 헤더 네임을 갖는 컬럼 헤더를 검색하여 찾을 수 있다.
다음으로, 결정 연산(516)은 문맥 정보에 적용되는 새로운 데이터 구조를 결정한다. 일 실시예에서, 문맥 정보를 찾았을 때, 스프레드시트 어플리케이션은 현재 문맥 정보에 연계된 데이터 구조를 결정할 수 있다. 일부 실시예에서, 새로운 데이터 구조는, 컬럼과 같이 동일한 유형의 데이터 구조일 수 있지만, 다른 위치에 위치할 수 있다. 다른 실시예에서, 데이터 구조 유형은 변경될 수 있다. 예를 들어, 컬럼 내의 데이터는 데이터 변경 이후에 로우에 디스플레이될 수 있다.
다음으로, 생성 연산(518)은 새로운 구조적 참조를 생성한다. 일 실시예에서, 스프레드시트 어플리케이션은 구조적 참조를 새로운 데이터 구조에 리매핑한다. 다른 실시예에서, 기존 구조적 참조는 삭제되고 새로운 구조적 참조가 생성된다.
그 후, 제공 연산(520)은 새로운 구조적 참조를 제공한다. 일부 실시예에서, 상술된 바와 같이, 새로운 구조적 참조를 제공하는 것은 이전 구조적 참조를 사용하는 셀들을 오염시킬 수 있다. 새로운 구조적 참조는 임의의 공식 내의 이전 구조적 참조 또는 오염된 셀들 내의 참조를 대신한다. 그 후, 오염된 셀들 내의 연산들은 새로운 구조적 참조에 의해 획득된 데이터를 사용하여 재실행된다. 그러므로, 구조적 참조를 사용하는 임의의 계산 또는 연산에 참조된 임의의 데이터가 변경되면, 그 계산 또는 연산은 동적으로 갱신된다.
구조적 참조에 대한 문맥 정보 및 구조적 참조를 생성하고 동적으로 갱신하기 위한 방법에 대한 예시적인 실시예가 도 6 내지 도 11에 도시된다. 예시적인 실시예에서, 사용자는 테이블(600)을 생성한다. 테이블(600)은 로우 및 컬럼 내의 데이터 어레이를 갖는다. 예시적인 테이블(600)은 테이블(600) 내의 데이터를 설명하는 문맥 정보를 갖는다. 또다시, 문맥 정보는 테이블(600) 내의 데이터를 설명할 수 있는, 테이블(600) 내의 사용자 생성 또는 자동으로 생성된 네임들의 세트이다. 문맥 정보는 테이블 네임, 컬럼 헤더 네임, 로우 헤더 네임 또는 다른 이러한 네임들을 포함할 수 있다.
우선, 테이블(600)은 네임 "MyTable"을 갖는다. 사용자 생성 네임 "MyTable"은 문맥 정보의 제1 조각을 제공하는 테이블 네임(601)이다. 사용자는 의미 지정 "MyTable"을 사용하여, 테이블(600) 내의 데이터를 참조할 수 있다. 스 프레드시트 어플리케이션은 테이블(600) 내의 데이터를 설명하는 문맥 정보로서 이 의미 지정을 인식할 수 있다. 그 후, 스프레드시트 어플리케이션은 그 문맥 정보에 기초하여 테이블(600)에 대한 구조적 참조를 생성할 수 있다. 구조적 참조를 사용할 때, 스프레드시트 어플리케이션은 테이블(600) 내의 데이터에 대한 구조적 참조를 결정할 수 있다.
테이블(600)은 로우 헤더 네임 및 컬럼 헤더 네임과 같은 다른 문맥 정보도 갖는다. 세개의 예시적인 로우 헤더 네임들이 셀들(602, 604 및 606)에 제시된다. 예시적인 컬럼 헤더 네임 "M2"는 셀(608)에 제시된다. 사용자는 의미 지정 "M2"를 사용하여 컬럼(610) 내의 데이터를 참조할 수 있었다. 스프레드시트 어플리케이션은 컬럼(610) 내의 데이터에 대한 구조적 참조를 생성할 수 있었다. 구조적 참조를 사용할 때, 스프레드시트 어플리케이션은 컬럼(610) 내의 데이터에 대한 구조적 참조를 지정할 수 있었다. 상자(612)는 스프레드시트 어플리케이션이 구조적 참조를 결정한 후, 어느 데이터가 사용될 수 있는지를 도시한다.
테이블(600) 내의 데이터의 컬럼에 대한 예시적인 구조적 참조가 도 7에 도시된다. "M2"는 예시적인 의미 지정이다. "M2"는 또한 컬럼 헤더(706)에 대한 컬럼 정보(컬럼 헤더 네임)이다. 컬럼 헤더는 데이터 구조[컬럼(708)]를 식별한다. 현재, 컬럼(708)의 데이터는 셀 C5 내지 C17의 셀들의 어레이와 셀 C18의 "Grand Total"을 점유한다. 데이터 구조로서 컬럼(708)을 참조하는 구조적 참조를 생성할 수 있다. 구조적 참조는 문맥 정보 "M2"와 함께 저장될 수 있다. 구조적 참조를 사용할 때, 스프레드시트 어플리케이션은 데이터 구조가 컬럼 헤더 네임 "M2"(706) 를 갖는 셀들 C5 내지 C17의 데이터를 포함한다고 결정할 수 있다. 데이터가 변경되면, 스프레드시트 어플리케이션은 저장된 문맥 정보를 사용하여, 구조적 참조에의 변경을 결정할 수 있다.
구조적 참조를 갱신하기 위한 프로세스의 실시예에 대한 예가 도 8 및 도 9에 도시된다. 여기서, 세개의 새로운 로우(802) 정보가 테이블(800)에 추가된다. 이 정보는 세개의 새로운 로우(802) 위의 기존 데이터(804) 중 임의의 것에 대한 위치 또는 데이터 구조도 변경하지 않았다. 이제, 어플리케이션은 임의의 기존 구조적 참조가 변경되었는지를 결정해야 한다. 상술된 바와 같이, 사용자는 도 9에 도시된 바와 같이, 헤더 "M2"(706) 아래의 모든 데이터에 대한 구조적 참조를 구축할 수 있다. 컬럼(708)에 대한 구조적 참조는 추가적인 데이터에 의해 영향을 받을 수 있다. 그 후 스프레드시트 어플리케이션은 컬럼 헤더 "M2"(706) 아래의 데이터에 대한 구조적 참조를 생성한 문맥 정보를 리트리브할 수 있다. 의미 지정 "M2"에 대한 데이터 구조는 Grand Total 셀(806)까지의 컬럼 헤더(706) 아래의 모든 데이터를 포함한다. 그러므로, 도 9의 엷은 음영으로 표시된 영역(902)에 도시된 바와 같이 새로 추가된 로우(802)들 내의 데이터가 포함된다. 그러므로, 스프레드시트 어플리케이션은 구조적 참조를 결정하는 방법을 변경하여, 의미 지정 "M2"가 나타내는 데이터 구조(904) 내의 새로운 및 기존 데이터 모두를 커버한다.
변경이 구조적 참조에 의해 참조되는 데이터 구조에 영향을 주는 상황의 예가 도 10 및 도 11에 도시된다. 상술된 바와 같이, 문맥 정보는 "M2"(706)에 대한 의미 지정을 갖는다. 본래의 구조적 참조는 도 10의 강조된 셀들의 세트와 같이 도시된 컬럼(708)(데이터 구조)을 참조했다. 이제, "M1A"라 불리는 컬럼(1002)이 테이블(1000)로 삽입되었다. "M2"라 불리는 컬럼이 우측으로 이동했기 때문에, 컬럼 삽입은 데이터 구조를 변경했다. 그러므로, 구조적 참조(708)는 이제 셀들의 잘못된 세트를 가리킨다.
추가적으로, 세개의 로우들(1006)이 테이블(1000)의 중간에 삽입되었다. 새로운 로우들(1006)은 구조적 참조(708)가 커버하는(상자(1008)로 도시됨) 컬럼으로 새로운 데이터를 도입했다. 그러므로, 본래의 구조적 참조(708)는 현재 상자(1008) 내의 새로운 데이터는 커버하지만, 마지막 세개의 로우들(1010) 내의 (상자(1012)로 도시됨) 일부 본래의 데이터는 커버하지 못한다. 어플리케이션이 본래의 구조적 참조를 계속 사용하면, 본래의 구조적 참조가 잘못된 데이터를 제공할 수 있기 때문에, 컬럼 및 로우 추가는 본래의 구조적 참조를 "붕괴"시킨다. 그러므로, 스프레드시트 어플리케이션은 구조적 참조를 갱신해야 한다.
우선, 스프레드시트 어플리케이션은 문맥 정보를 다시 위치시킬 수 있다. 스프레드시트 어플리케이션은 이전에 저장된, 사용자 입력 의미 지정 "M2"에 대한 변경된 테이블(1000)을 검색함으로써, 문맥 정보를 위치시킬 수 있다. 이 예에서, 스프레드시트 어플리케이션은 (도 11에 나타낸 바와 같은) 컬럼 헤더(1102) 내의 "M2"를 찾을 것이다. 문맥 정보 "M2"의 위치는 본래의 구조적 참조(708)에서 우측으로 한 컬럼 간 곳이다. 문맥 정보를 찾은 후, 스프레드시트 어플리케이션은 문맥 정보가 설명하는 새로운 데이터 구조를 결정할 수 있다. 문맥 정보 "M2"는 컬럼(1106)의 모든 데이터(1104)를 의미한다. 그러므로, 새로운 데이터 구조[ 컬럼(1106)]는 도 11의 음영으로 표시된 영역(1104)에 도시된 바와 같다. 새로운 데이터 구조는 상자(1110) 내의 데이터의 새로운 셀들 및 상자(1112) 내의 본래의 데이터를 포함한다. 새로운 데이터 구조를 결정한 후, 스프레드시트 어플리케이션은 컬럼(1106)의 메타데이터를 참조하는 새로운 구조적 참조를 생성한다. 그러므로, 새로운 구조적 참조를 생성하는 프로세스는 참조를 조정하여 데이터 내의 변경을 보완한다. 즉, 새로운 구조적 참조는 참조를 컬럼(1106)으로 시프트하고, 상자(1110) 내의 데이터를 추가하고, 상자(1112) 내의 데이터에의 참조를 유지하도록 조정되었다. 이 프로세스는 자동적이므로, 사용자는 이러한 구조적 참조에 대한 어떤 수동적인 변경을 행할 필요가 없다.
본 발명의 실시예에서, 사용자는 공식 또는 계산에 상기 구조적 참조를 이용할 수 있다. 조정된 구조적 참조를 갖는 임의의 셀들은 오염될 수 있다. 오염된 셀들을 점유하는 공식 및 계산들은 조정된 구조적 참조로 획득된 데이터를 사용하여 재실행될 수 있다. 그러므로, 사용자의 기존 계산 및 공식들도 자동으로 갱신된다.
본 발명은 사용자가 공식 또는 계산에 구조적 참조를 이용할 수도록 한다.

Claims (35)

  1. 데이터의 세트를 참조하는 방법으로서,
    데이터 구조 내의 하나 이상의 데이터 아이템들을 설명하는 하나 이상의 의미 지정(semantic designation)을 수신하는 단계;
    상기 데이터 구조에 대한 구조적 참조를 자동으로 생성하는 단계; 및
    상기 의미 지정을 상기 구조적 참조와 연계시키는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 의미 지정은 리스트, 테이블, 필드, 멤버, 컬럼, 로우, 하나 이상의 셀들 또는 디멘션(dimension) 중 하나를 설명하는 방법.
  3. 제1항에 있어서, 상기 의미 지정은 리스트 네임(list name), 테이블 네임, 로우 네임, 컬럼 네임, 셀 네임, 로우 위치, 셀 위치, 컬럼 위치 또는 데이터 세부사항(detail) 중 하나 이상을 포함하는 방법.
  4. 제1항에 있어서, 상기 의미 지정은 하나 이상의 메타데이터 아이템을 설명하는 방법.
  5. 제1항에 있어서, 상기 구조적 참조는 상기 하나 이상의 데이터 아이템의 데 이터 구조의 위치를 참조하는 방법.
  6. 제5항에 있어서, 상기 데이터 구조의 위치는 컬럼, 로우 또는 하나 이상의 셀들의 위치인 방법.
  7. 제1항에 있어서, 상기 데이터 구조는 상기 의미 지정에 의해 식별되는 테이블의 구조적 구성요소인 방법.
  8. 제7항에 있어서, 상기 구조적 구성요소의 유형은 리스트, 테이블, 필드, 멤버, 컬럼, 로우, 하나 이상의 셀들 또는 디멘션 중 하나 이상을 포함하는 방법.
  9. 제1항에 있어서, 상기 구조적 참조는 무한 개의 셀인 방법.
  10. 제1항에 있어서,
    하나 이상의 구조적 참조에 포함된 데이터에의 변경을 수신하는 단계; 및
    하나 이상의 기존 데이터 아이템들에 대한 참조를 유지하기 위해, 상기 하나 이상의 구조적 참조를 자동으로 조정하는 단계
    를 더 포함하는 방법.
  11. 제10항에 있어서, 상기 하나 이상의 구조적 참조를 구축하는 데 사용되는 상 기 하나 이상의 의미 지정이 설명하는 상기 데이터 구조의 부분인 추가된 데이터를 포함시키기 위해, 상기 하나 이상의 구조적 참조를 자동으로 조정하는 단계를 포함하는 방법.
  12. 제1항에 있어서, 상기 구조적 참조는 상기 구조적 참조를 구축하는 데 사용되는 상기 하나 이상의 의미 지정의 집합으로서 사용자에게 제공되는 방법.
  13. 제1항에 있어서, 상기 구조적 참조는 어플리케이션 공식(fornula)에 포함되는 방법.
  14. 제13항에 있어서, 하나 이상의 아규먼트(argument)가 상기 구조적 참조를 구축하는 데 사용되는 상기 하나 이상의 의미 지정의 집합을 포함하는 어플리케이션 공식이 사용자에게 제공되는 방법.
  15. 제1항에 있어서, 상기 하나 이상의 의미 지정이 모호하면, 상기 구조적 참조는 생성되지 않는 방법.
  16. 제15항에 있어서, 상기 의미 지정이 두개 이상의 데이터 구조들을 참조하면, 상기 의미 지정은 모호한 방법.
  17. 데이터 구조 내의 하나 이상의 데이터 아이템들을 설명하는 하나 이상의 의미 지정을 수신하는 단계;
    상기 데이터 구조에 대한 구조적 참조를 자동으로 생성하는 단계; 및
    상기 의미 지정을 상기 구조적 참조와 연계시키는 단계
    를 포함하는 단계들을 수행하기 위한 컴퓨터 실행가능 명령어를 갖는 컴퓨터 판독가능 매체.
  18. 제17항에 있어서, 상기 의미 지정은 리스트, 테이블, 필드, 멤버, 컬럼, 로우, 하나 이상의 셀들 또는 디멘션 중 하나를 설명하는 컴퓨터 판독가능 매체.
  19. 제17항에 있어서, 상기 의미 지정은 리스트 네임, 테이블 네임, 로우 네임, 컬럼 네임, 셀 네임, 로우 위치, 셀 위치, 컬럼 위치 또는 데이터 세부사항 중 하나 이상을 포함하는 컴퓨터 판독가능 매체.
  20. 제17항에 있어서, 상기 의미 지정은 하나 이상의 메타데이터 아이템을 설명하는 컴퓨터 판독가능 매체.
  21. 제17항에 있어서, 상기 구조적 참조는 상기 하나 이상의 데이터 아이템의 데이터 구조의 위치를 참조하는 컴퓨터 판독가능 매체.
  22. 제21항에 있어서, 상기 데이터 구조의 위치는 컬럼, 로우 또는 하나 이상의 셀들의 위치인 컴퓨터 판독가능 매체.
  23. 제17항에 있어서, 상기 데이터 구조는 상기 의미 지정에 의해 식별되는 테이블의 구조적 구성요소인 컴퓨터 판독가능 매체.
  24. 제23항에 있어서, 상기 구조적 구성요소의 유형은 리스트, 테이블, 필드, 멤버, 컬럼, 로우, 하나 이상의 셀들 또는 디멘션 중 하나 이상을 포함하는 컴퓨터 판독가능 매체.
  25. 제17항에 있어서, 상기 구조적 참조는 무한 개의 셀인 컴퓨터 판독가능 매체.
  26. 제17항에 있어서, 상기 단계들은,
    하나 이상의 구조적 참조들에 포함된 데이터에의 변경을 수신하는 단계; 및
    하나 이상의 기존 데이터 아이템들에 대한 참조를 유지하기 위해, 상기 하나 이상의 구조적 참조를 자동으로 조정하는 단계
    를 더 포함하는 컴퓨터 판독가능 매체.
  27. 제26항에 있어서, 상기 하나 이상의 구조적 참조를 구축하는 데 사용되는 상 기 하나 이상의 의미 지정이 설명하는 상기 데이터 구조의 부분인 추가된 데이터를 포함시키기 위해, 상기 하나 이상의 구조적 참조를 자동으로 조정하는 단계를 포함하는 컴퓨터 판독가능 매체.
  28. 제17항에 있어서, 상기 구조적 참조는 상기 구조적 참조를 구축하는 데 사용되는 상기 하나 이상의 의미 지정의 집합으로서 사용자에게 제공되는 컴퓨터 판독가능 매체.
  29. 제17항에 있어서, 상기 구조적 참조는 어플리케이션 공식에 포함되는 컴퓨터 판독가능 매체.
  30. 제29항에 있어서, 하나 이상의 아규먼트가 상기 구조적 참조를 구축하는 데 사용되는 상기 하나 이상의 의미 지정의 집합을 포함하는 어플리케이션 공식이 사용자에게 제공되는 컴퓨터 판독가능 매체.
  31. 제17항에 있어서, 상기 하나 이상의 의미 지정이 모호하면, 상기 구조적 참조는 생성되지 않는 컴퓨터 판독가능 매체.
  32. 제31항에 있어서, 상기 의미 지정이 두개 이상의 데이터 구조들을 참조하면, 상기 의미 지정은 모호한 컴퓨터 판독가능 매체.
  33. 컴퓨터 시스템에서 스프레드시트 내의 데이터에 대한 참조를 디스플레이 장치 상에 디스플레이하기 위한 방법으로서,
    데이터 구조의 하나 이상의 구성요소들을 설명하는 하나 이상의 의미 지정을 사용자로부터 수신하는 단계;
    상기 데이터 구조의 상기 구성요소들에 대한 구조적 참조를 생성하는 단계; 및
    상기 하나 이상의 의미 지정에 대한 집합으로서 상기 구조적 참조를 디스플레이하는 단계
    를 포함하는 방법.
  34. 제29항에 있어서,
    상기 구조적 참조를 이용하는 연산을 수신하는 단계; 및
    상기 연산을, 상기 구조적 참조를 참조하는 상기 하나 이상의 의미 지정의 집합과 함께 디스플레이하는 단계 - 상기 하나 이상의 의미 지정은 상기 연산 내의 아규먼트들의 집합을 형성함 -;
    를 더 포함하는 방법.
  35. 제33항에 있어서,
    구조적 참조가 참조하는 하나 이상의 데이터 아이템들에 대한 하나 이상의 변경을 수신하는 단계;
    상기 데이터에 대한 변경을 반영하도록, 상기 구조적 참조를 변경하는 단계; 및
    상기 변경된 구조적 참조를, 상기 하나 이상의 의미 지정의 집합과 함께 디스플레이하는 단계
    를 더 포함하는 방법.
KR1020050057124A 2004-09-30 2005-06-29 스프레드시트 공식 내의 동적 데이터를 참조하기 위한 방법및 구현 Expired - Lifetime KR101130458B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/956,940 US7415481B2 (en) 2004-09-30 2004-09-30 Method and implementation for referencing of dynamic data within spreadsheet formulas
US10/956,940 2004-09-30

Publications (2)

Publication Number Publication Date
KR20060048710A true KR20060048710A (ko) 2006-05-18
KR101130458B1 KR101130458B1 (ko) 2012-07-02

Family

ID=35563775

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050057124A Expired - Lifetime KR101130458B1 (ko) 2004-09-30 2005-06-29 스프레드시트 공식 내의 동적 데이터를 참조하기 위한 방법및 구현

Country Status (5)

Country Link
US (1) US7415481B2 (ko)
EP (1) EP1643375A3 (ko)
JP (1) JP4936685B2 (ko)
KR (1) KR101130458B1 (ko)
CN (1) CN1755679B (ko)

Families Citing this family (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060074980A1 (en) * 2004-09-29 2006-04-06 Sarkar Pte. Ltd. System for semantically disambiguating text information
US7693860B2 (en) * 2005-03-18 2010-04-06 Microsoft Corporation Method and system to associate cell and item metadata
US7747939B2 (en) * 2005-05-31 2010-06-29 Microsoft Corporation Generating free form reports within a data array
US8234293B2 (en) * 2005-09-08 2012-07-31 Microsoft Corporation Autocompleting with queries to a database
US7792847B2 (en) * 2005-09-09 2010-09-07 Microsoft Corporation Converting structured reports to formulas
US7805433B2 (en) * 2005-10-14 2010-09-28 Microsoft Corporation Multidimensional cube functions
US8046673B2 (en) * 2005-11-07 2011-10-25 Business Objects Software Ltd. Apparatus and method for facilitating trusted business intelligence through data context
US20070168323A1 (en) * 2006-01-03 2007-07-19 Microsoft Corporation Query aggregation
US8526049B2 (en) * 2006-03-31 2013-09-03 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for display list management
CN100437556C (zh) * 2006-06-09 2008-11-26 无锡永中科技有限公司 电子表格中行头与列头表示信息的方法
CN101127034B (zh) * 2006-08-18 2012-05-23 国际商业机器公司 数据组织、查询、呈现、存档、恢复、删除、提炼方法及装置和系统
US7899837B2 (en) 2006-09-29 2011-03-01 Business Objects Software Ltd. Apparatus and method for generating queries and reports
US8126887B2 (en) * 2006-09-29 2012-02-28 Business Objects Software Ltd. Apparatus and method for searching reports
US8204895B2 (en) * 2006-09-29 2012-06-19 Business Objects Software Ltd. Apparatus and method for receiving a report
CN100582312C (zh) * 2006-12-06 2010-01-20 北方工业大学 一种利用计算机远程监测铝电解槽槽壳温度的方法
US20080180413A1 (en) * 2007-01-29 2008-07-31 Farn Brian G Method, system, and program product for controlling grid lines in a user interface
US20090044090A1 (en) * 2007-08-06 2009-02-12 Apple Inc. Referring to cells using header cell values
US8112701B2 (en) * 2007-08-06 2012-02-07 Apple Inc. Reference adding behavior in formula editing mode
US9342496B2 (en) * 2007-08-06 2016-05-17 Apple Inc. Auto-completion of names
US7966555B2 (en) * 2007-08-06 2011-06-21 Apple Inc. Context sensitive delimiter insertion when adding references
US10235429B2 (en) * 2007-08-20 2019-03-19 Stephen W. Meehan System and method for organizing data in a dynamic user-customizable interface for search and display
US9501453B2 (en) * 2007-12-23 2016-11-22 Salesforce.Com Inc. Method and system for a flexible-data column user interface
US8862619B1 (en) * 2008-01-07 2014-10-14 Amdocs Software Systems Limited System, method, and computer program product for filtering a data stream utilizing a plurality of contexts
US7962490B1 (en) * 2008-01-07 2011-06-14 Amdocs Software Systems Limited System, method, and computer program product for analyzing and decomposing a plurality of rules into a plurality of contexts
US20090228776A1 (en) * 2008-03-05 2009-09-10 Microsoft Corporation Dynamic formulas for spreadsheet cells
US8108431B1 (en) * 2008-03-24 2012-01-31 Autotelika, Incorporated Two-dimensional data storage system
US8612438B2 (en) 2008-06-13 2013-12-17 Microsoft Corporation Techniques for dynamic cross-filtering
US9715487B2 (en) * 2008-09-30 2017-07-25 Apple Inc. Multi-level naming of grouped data
US20100161552A1 (en) * 2008-12-24 2010-06-24 Dan Murarasu Method and system for referencing measures between tables of analytical report documents
US8312366B2 (en) 2009-02-11 2012-11-13 Microsoft Corporation Displaying multiple row and column header areas in a summary table
US8713423B2 (en) * 2009-03-28 2014-04-29 International Business Machines Corporation Automated dynamic differential data processing
US8707156B2 (en) * 2009-04-02 2014-04-22 Business Objects, S.A. Render engine for spreadsheet
US8676808B2 (en) 2009-07-09 2014-03-18 Dillon Software Services, Llc Data store interface that facilitates distribution of application functionality across a multi-tier client-server architecture
US20110072340A1 (en) * 2009-09-21 2011-03-24 Miller Darren H Modeling system and method
US9275031B2 (en) 2009-10-09 2016-03-01 Microsoft Technology Licensing, Llc Data analysis expressions
WO2011126494A1 (en) * 2010-04-10 2011-10-13 Hewlett-Packard Development Company, L.P. Injection of data into a software application
US8527866B2 (en) 2010-04-30 2013-09-03 Microsoft Corporation Multi-threaded sort of data items in spreadsheet tables
US9747270B2 (en) 2011-01-07 2017-08-29 Microsoft Technology Licensing, Llc Natural input for spreadsheet actions
CA2718360A1 (en) * 2010-10-25 2011-01-05 Ibm Canada Limited - Ibm Canada Limitee Communicating secondary selection feedback
WO2012074338A2 (ko) * 2010-12-02 2012-06-07 에스케이텔레콤 주식회사 자연어 및 수학식 처리 방법과 그를 위한 장치
US8543849B2 (en) 2010-12-06 2013-09-24 Microsoft Corporation Fast computer startup
US8788798B2 (en) 2010-12-06 2014-07-22 Microsoft Corporation Fast computer startup
US9098483B2 (en) * 2010-12-07 2015-08-04 Business Objects Software Limited Systems and methods to provide dynamic local members associated with an add-in for a spreadsheet application
US9898454B2 (en) 2010-12-14 2018-02-20 Microsoft Technology Licensing, Llc Using text messages to interact with spreadsheets
US9811516B2 (en) 2010-12-14 2017-11-07 Microsoft Technology Licensing, Llc Location aware spreadsheet actions
US9129234B2 (en) 2011-01-24 2015-09-08 Microsoft Technology Licensing, Llc Representation of people in a spreadsheet
US8832588B1 (en) * 2011-06-30 2014-09-09 Microstrategy Incorporated Context-inclusive magnifying area
CN102508839B (zh) * 2011-09-22 2013-09-11 用友软件股份有限公司 数据处理装置和方法
US9092412B2 (en) 2011-09-30 2015-07-28 Cirro, Inc. Spreadsheet based data store interface
US8538934B2 (en) * 2011-10-28 2013-09-17 Microsoft Corporation Contextual gravitation of datasets and data services
US9053083B2 (en) 2011-11-04 2015-06-09 Microsoft Technology Licensing, Llc Interaction between web gadgets and spreadsheets
US8922579B2 (en) 2012-03-05 2014-12-30 Microsoft Corporation Deterministic visual indication of user data context
US20140046923A1 (en) 2012-08-10 2014-02-13 Microsoft Corporation Generating queries based upon data points in a spreadsheet application
CN102981706B (zh) * 2012-11-13 2016-01-13 珠海金山办公软件有限公司 公式引用切换方法和装置、移动设备
GB2508826A (en) * 2012-12-11 2014-06-18 Ariadne Insight Ltd A framework for enabling user-defined functions in a spreadsheet application
KR101416749B1 (ko) * 2012-12-13 2014-07-08 주식회사 케이티 Tv 재생 장치 및 방법
US10210151B2 (en) 2012-12-17 2019-02-19 Thomson Reuters (Grc) Llc Dynamic function builder
WO2014093831A2 (en) * 2012-12-14 2014-06-19 Thomson Reuters (Markets) Llc Dynamic function builder
US9330090B2 (en) * 2013-01-29 2016-05-03 Microsoft Technology Licensing, Llc. Translating natural language descriptions to programs in a domain-specific language for spreadsheets
US9460073B2 (en) * 2013-02-27 2016-10-04 Google Inc. Systems and methods for mutations and operational transforms in a collaborative spreadsheet environment
US20140358618A1 (en) * 2013-05-16 2014-12-04 Appcomputing, Inc Method and System for Addition of New Fiscal Year Through Single Click
US9489368B2 (en) 2013-06-14 2016-11-08 Microsoft Technology Licensing, Llc Suggesting a set of operations applicable to a selected range of data in a spreadsheet
US10664652B2 (en) * 2013-06-15 2020-05-26 Microsoft Technology Licensing, Llc Seamless grid and canvas integration in a spreadsheet application
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
CN103677852A (zh) * 2013-12-30 2014-03-26 山东舜德数据管理软件工程有限公司 一种可扩充的类自然语言公式编辑器的设计方法
US9552348B2 (en) * 2014-06-27 2017-01-24 Koustubh MOHARIR System and method for operating a computer application with spreadsheet functionality
US11170165B1 (en) 2015-03-15 2021-11-09 Sigma Sciences Limited Data processing in spreadsheet worksheets
US9959098B1 (en) * 2015-03-15 2018-05-01 Sigma Sciences Limited Data processing systems and methods
US10599764B2 (en) 2015-11-02 2020-03-24 Microsoft Technology Licensing, Llc Operations on images associated with cells in spreadsheets
WO2017136431A1 (en) * 2016-02-01 2017-08-10 Microsoft Technology Licensing, Llc Parameterizing and working with math equations in a spreadsheet application
US10466867B2 (en) 2016-04-27 2019-11-05 Coda Project, Inc. Formulas
US10120851B2 (en) * 2016-06-30 2018-11-06 Microsoft Technology Licensing, Llc Automatic semantic data enrichment in a spreadsheet
US10671800B2 (en) * 2016-09-15 2020-06-02 Oracle International Corporation Providing way to store process data object state as snapshots at different points of process
US10877735B1 (en) 2017-09-25 2020-12-29 Amazon Technologies, Inc. Automated generation of software applications using analysis of submitted content items
US10839148B2 (en) 2017-10-27 2020-11-17 Microsoft Technology Licensing, Llc Coordination of storyline content composed in multiple productivity applications
US11327928B2 (en) 2017-10-27 2022-05-10 Microsoft Technology Licensing, Llc Dynamic display of file sections based on user identities
US10740550B1 (en) * 2017-11-20 2020-08-11 Amazon Technologies, Inc. Network-accessible data management service with web-of-sheets data model
US10705805B1 (en) 2017-12-12 2020-07-07 Amazon Technologies, Inc. Application authoring using web-of-sheets data model
US10884571B2 (en) * 2018-01-11 2021-01-05 Microsoft Technology Licensing, Llc Dependency-based presence for co-authored documents
US11586603B1 (en) 2018-05-23 2023-02-21 Amazon Technologies, Inc. Index sheets for robust spreadsheet-based applications
US10936804B2 (en) 2018-07-27 2021-03-02 Microsoft Technology Licensing, Llc Spreadsheet cell calculation view providing multiple-representation editing
US11514258B2 (en) 2018-09-20 2022-11-29 International Business Machines Corporation Table header detection using global machine learning features from orthogonal rows and columns
US10831798B2 (en) 2018-09-20 2020-11-10 International Business Machines Corporation System for extracting header labels for header cells in tables having complex header structures
US11443106B2 (en) 2018-09-20 2022-09-13 International Business Machines Corporation Intelligent normalization and de-normalization of tables for multiple processing scenarios
US10776573B2 (en) 2018-09-20 2020-09-15 International Business Machines Corporation System for associating data cells with headers in tables having complex header structures
US12223262B1 (en) 2019-03-27 2025-02-11 Amazon Technologies, Inc. Expressions management service for data sheet-based applications
WO2020220283A1 (en) * 2019-04-30 2020-11-05 Microsoft Technology Licensing, Llc Document auto-completion
CN110738037B (zh) * 2019-10-15 2021-02-05 深圳逻辑汇科技有限公司 用于自动生成电子表格的方法、装置、设备及存储介质
SG10202005091RA (en) * 2020-05-29 2021-12-30 Chang Liu User-facing spreadsheet programming language
US11423218B2 (en) * 2020-12-10 2022-08-23 Microsoft Technology Licensing, Llc Abstraction of formulas into reusable functions
EP4275141A4 (en) 2021-02-23 2024-12-18 Coda Project, Inc. System, method, and apparatus for publication and external interfacing for a unified document surface
US12248457B1 (en) 2023-08-23 2025-03-11 International Business Machines Corporation Detecting temporal anomalous data using dependency modeling

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2656923B2 (ja) * 1987-04-21 1997-09-24 富士通株式会社 表計算処理装置
JPH06243130A (ja) * 1993-02-18 1994-09-02 Fuji Xerox Co Ltd 表情報処理装置
JPH076162A (ja) * 1993-02-18 1995-01-10 Fuji Xerox Co Ltd 表生成装置
US5557787A (en) * 1993-02-18 1996-09-17 Fuji Xerox Co., Ltd. Table generating apparatus employing heading, layout, and table script data
US5603021A (en) * 1994-09-02 1997-02-11 Borland International, Inc. Methods for composing formulas in an electronic spreadsheet system
US6460059B1 (en) * 1998-08-04 2002-10-01 International Business Machines Corporation Visual aid to simplify achieving correct cell interrelations in spreadsheets
GB2343763B (en) * 1998-09-04 2003-05-21 Shell Services Internat Ltd Data processing system
US6640234B1 (en) 1998-12-31 2003-10-28 Microsoft Corporation Extension of formulas and formatting in an electronic spreadsheet
US6631497B1 (en) * 1999-07-19 2003-10-07 International Business Machines Corporation Binding data from data source to cells in a spreadsheet
US7099898B1 (en) * 1999-08-12 2006-08-29 International Business Machines Corporation Data access system
US6510420B1 (en) * 1999-09-30 2003-01-21 International Business Machines Corporation Framework for dynamic hierarchical grouping and calculation based on multidimensional member characteristics
CA2311866A1 (en) * 2000-01-06 2001-07-06 International Business Machines Corporation Method and system in an electronic spreadsheet for adding or removing elements from a cell named range according to different modes
US7117435B1 (en) * 2000-06-21 2006-10-03 Microsoft Corporation Spreadsheet fields in text
US7191184B2 (en) * 2001-05-02 2007-03-13 National Instruments Corporation Optimized storage for measurement data
JP2003228686A (ja) * 2002-02-04 2003-08-15 Seiko Epson Corp 表形式データファイルの参照処理システムと表形式データファイルの参照処理方法と表形式データファイルの参照処理プログラム
WO2003098500A1 (en) 2002-05-16 2003-11-27 Decision Curve Limited Method and apparatus for automatically producing spreadsheet-based models
US7058631B1 (en) * 2002-06-04 2006-06-06 Unisys Corporation Methods and system for accessing logical relationship data in a database from a data-access system utilizing bookmarks
US7089261B2 (en) * 2002-07-25 2006-08-08 International Business Machines Corporation Programmable use of data extracted from common presentation files
US8656271B2 (en) * 2006-07-31 2014-02-18 Sap Ag Adapting a spreadsheet for use with a complex object

Also Published As

Publication number Publication date
CN1755679A (zh) 2006-04-05
US20060069696A1 (en) 2006-03-30
US7415481B2 (en) 2008-08-19
JP4936685B2 (ja) 2012-05-23
JP2006107444A (ja) 2006-04-20
KR101130458B1 (ko) 2012-07-02
EP1643375A3 (en) 2008-03-05
CN1755679B (zh) 2013-08-14
EP1643375A2 (en) 2006-04-05

Similar Documents

Publication Publication Date Title
KR101130458B1 (ko) 스프레드시트 공식 내의 동적 데이터를 참조하기 위한 방법및 구현
US8869020B2 (en) Method and system for generating relational spreadsheets
US9619468B2 (en) Generation of synthetic context frameworks for dimensionally constrained hierarchical synthetic context-based objects
US7523390B2 (en) Spreadsheet fields in text
CA2669479C (en) Generating end-user presentations from structured data
US10452768B2 (en) Managing source annotation metadata
US7549115B2 (en) System and method for integrated spreadsheets and word processing tables
US10133721B2 (en) Collapsing data cells in one or more reports in a spreadsheet
US6859805B1 (en) Method and apparatus for generating page-level security in a computer generated report
US7185275B2 (en) Method and computer system for enabling a user to construct a web-site navigation
US20100083173A1 (en) Method and system for applying metadata to data sets of file objects
US7685136B2 (en) Method, system and program product for managing document summary information
US7516399B2 (en) Structured-document path-language expression methods and systems
CN110738037A (zh) 用于自动生成电子表格的方法、装置、设备及存储介质
JP2004240954A (ja) 階層データを提示する方法
US20150199346A1 (en) Hierarchical database report generation with automated query generation for placeholders
KR20090028758A (ko) 정보 재사용 방법, 정보 제공 방법, 편집 가능한 문서, 및 문서 편집 시스템
US8108766B2 (en) XPath-based display of a paginated XML document
US20040111666A1 (en) Software replicator functions for generating reports
KR101213798B1 (ko) 복합 데이터 액세스
CA2651284A1 (en) Coordinate system identification
US8112385B2 (en) Ready to render business intelligence result sets
WO2010147453A1 (en) System and method for designing a gui for an application program
Chen et al. The VORTEX document preparation environment
GB2456909A (en) Coordinate system identification

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20050629

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20100622

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20050629

Comment text: Patent Application

PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20110722

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20120106

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20120319

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20120319

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
FPAY Annual fee payment

Payment date: 20150217

Year of fee payment: 4

PR1001 Payment of annual fee

Payment date: 20150217

Start annual number: 4

End annual number: 4

LAPS Lapse due to unpaid annual fee