JP4936685B2 - スプレッドシートの数式内の動的データを参照する方法 - Google Patents

スプレッドシートの数式内の動的データを参照する方法 Download PDF

Info

Publication number
JP4936685B2
JP4936685B2 JP2005183580A JP2005183580A JP4936685B2 JP 4936685 B2 JP4936685 B2 JP 4936685B2 JP 2005183580 A JP2005183580 A JP 2005183580A JP 2005183580 A JP2005183580 A JP 2005183580A JP 4936685 B2 JP4936685 B2 JP 4936685B2
Authority
JP
Japan
Prior art keywords
data
semantic
structural
structural reference
data structure
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.)
Expired - Fee Related
Application number
JP2005183580A
Other languages
English (en)
Other versions
JP2006107444A (ja
Inventor
ジェー.ベッカー アンドリュー
ディー.エリス チャールズ
エム.チリロフ ジョセフ
ピー ニエミスト ジュハ
ジェー.アンドロスキ マシュー
シー.コリエ ロバート
ジー.ホーキング ロバート
ペイトン−ジョーンズ シモン
チョン ウェイド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2006107444A publication Critical patent/JP2006107444A/ja
Application granted granted Critical
Publication of JP4936685B2 publication Critical patent/JP4936685B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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)

Description

本発明は、一般にはスプレッドシートソフトウェアまたはアプリケーションの分野に関する。より詳細には、本発明は、セルおよびテーブルのヘッダおよびMicrosoft(登録商標)PivotTable(登録商標)内のデータまたはデータの部分を参照するための命名規則に関する。
スプレッドシート(表処理や表計算)ソフトウェアまたはアプリケーションは比較的よく知られ、有用なツールである。典型的なスプレッドシートアプリケーションは、行および列として配置されたデータを取り込み、表示し、操作することによって物理的スプレッドシートをシミュレートする。列と行の交点がセルである。スプレッドシート内のセルは、数値、文字列、エラー値、またはブランク値を含むことができる。さらに、セルは、他のセル内のデータに対して作用してその結果を表示することのできる数式も含むことができる。こうした数式は、ユーザがデータを利用する助けになる計算およびビジネス論理をユーザが作成することを可能にする。
数式は、スプレッドシート内のエリアからデータをインポートする。データを演算にインポートするために、スプレッドシートは一般に、数式が作用する1組のデータを指定する。遺憾ながら、現在のスプレッドシートアプリケーションは、数式中で使用するデータのブロックを指定する場合にいくつかの重大な欠点を有する。
現在のスプレッドシートでは、データの指定はいくつかの異なる仕方で行うことができる。まず、ユーザは、セル「範囲」に対する参照を利用することができる。参照は、データのブロックを指定するために、スプレッドシート内のデータの、セル座標によって指定される位置を使用する1組のデータに対するポインタである。セル範囲は、シート内のセルの座標によって指定される連続的ブロック中の1つまたは複数のセルである。例えば、Microsoft(登録商標)Excelスプレッドシートアプリケーションでは、ユーザは、行番号および列文字でセルを指定することができる。ユーザは、範囲を指定するコロンなどの演算子を使用して複数のセルを指定することができる。行番号および列文字は、演算子と共に、または演算子なしに、データに関する位置座標として機能する。行番号、列文字、および演算子の組合せを使用して、ユーザは、スプレッドシート内のデータのブロックを指定することができる。現在のスプレッドシートでの典型的な数式は「=AVERAGE(C6 C18)」であり、これは、セルC6からセルC18までのセル範囲内のデータの平均を計算する。
次に、ユーザは、命名機能を利用して、「名前」を有するデータまたは「名前付き範囲」内のデータを参照することができる。Microsoft(登録商標)のExcel(登録商標)スプレッドシートアプリケーションなどのいくつかのスプレッドシートアプリケーションでの命名機能は、ユーザが特定のセル範囲または数式についての名前を作成することを可能にする。本質的に、ユーザは、一定の座標を有するセル範囲を選ぶ。ユーザは、そのセル範囲に「命名」するようにスプレッドシートアプリケーションに命令する。次いでスプレッドシートアプリケーションは、その一定の座標を有するセル範囲にその名前をリンクする。ユーザがセル範囲についての名前を作成すると、ユーザは、その一定の座標を有するデータを参照するために数式内でその名前を使用することができる。例えば、ユーザは、セル範囲C6からC18について「Heights」と呼ばれる名前を作成することができ、「=AVERAGE(Heights)」などの数式内でそのセル範囲を指定するのにその名前を使用することができる。
次に、ユーザは、自然言語の数式(NLF(Natural Language Formula)を利用することができる。NLFは、スプレッドシート内のデータ付近のセル内に位置するユーザ作成のラベルでそのデータを参照する手段である。ユーザは、列ヘッダまたは行ヘッダなどスプレッドシート内にデータラベルを配置することができる。次いでユーザは、数式内でラベルを使用することができる。スプレッドシートアプリケーションは、スプレッドシート内のどのセルがそのラベルによって記述されるかを判定し、数式内で使用するために、記述されるセルをセル範囲に分解する。したがって、ユーザがセルC5 C18で値「Height」、「26」、「30」、「22」、「27」などを有する場合、ユーザは、数式内で「Height」を参照することができる。スプレッドシートアプリケーションは、必要なセル範囲をセルC6からC18と分解することができる。
最後に、ユーザは参照「関数」を利用することができる。参照関数は参照ではないが、データまたは指定の1つのデータに対する参照を返すプロセスである。参照を返すプロセスのオペレーションは、ユーザがその関数を入力する場合に入力することのできる1組の引数に従って調節または変更される。引数により、スプレッドシートアプリケーションがどのセルを返すかを判定することが可能となる。
参照を返す関数の2つの例は、Microsoft(登録商標)Excelスプレッドシートアプリケーションで提供される「OFFSET」関数および「GETPIVOTDATA」関数である。OFFSET関数は、セルまたはセルの範囲から指定の行数および列数にある範囲に対する参照を返す。OFFSET関数から返される参照は、単一のセルまたはセルの範囲でよい。OFFSET関数は、ユーザが、返すべき行数および列数を指定する引数を入力することを可能にする。
一方、「GETPIVOTDATA」関数は、PivotTable(登録商標)テーブル内のデータの単一セルをユーザが参照するのを容易にするためのものである。GETPIVOTDATA関数から返されるデータは、PivotTable(登録商標)テーブルがそれに基づくデータがリフレッシュされた場合(新しいデータ値を組み込むために更新された場合)に変化しない。GETPIVOTDATA関数は、PivotTable(登録商標)テーブルのメタデータを使用することによって単一セル内のデータを見つける。メタデータは、データの座標ではなく、データに対応する「項目」および「フィールド」の「名前」である。「項目」は、テーブル内の行ヘッダまたは列ヘッダと類似の、PivotTableテーブル内のコンピュータ生成のラベルである。「フィールド」は、1つまたは複数の項目を組み込むことができ、および/または記述することができるコンピュータ生成のラベルである。フィールドは、データのいくつかの行または列をカバーするテーブル内のヘッダと類似する。GETPIVOTDATA関数の一例を挙げると、ユーザは、数式「=GETPIVOTDATA(“Height”,Sheet1!$A$3,“Person”,“John”)」をタイプインすることにより、PivotTable(登録商標)テーブル内のJohnの身長に関するデータを要求することができる。ただし「John」は、「Person」という名前のフィールド内の項目である。GETPIVOTDATA関数式は、返される参照を破壊することなくPivotTable(登録商標)テーブル内のデータを異なるセルに移動することを可能にする。返される参照は、セルの位置ではなくセルのメタデータに基づくからである。
スプレッドシートアプリケーションでデータを指定する上記の方法のすべてには重大な欠点が存在する。上記の方法のすべては、追加されるデータを含むように指定を調整することができない。それぞれの方法は、追加するデータを指定に含めるというユーザの意図を解釈することができないからである。ユーザのデータを含むセル範囲が新しいデータの追加のために変化した場合、データを指定する上記の方法を使用する数式を手動で変更してセル範囲の変化を反映しなければならない。指定が更新されない場合、数式が必要なデータのセルをもはや含まないので誤りが導入される。
例えば、ユーザが現在は列Cにあるデータの平均を得ることを望む場合、列C内のすべてのデータがセルC6からC18に位置するとして、ユーザは数式「AVERAGE(C6 C18)」を入力することができる。ユーザは、この数式が列C内のデータの平均を返すことを期待する。ここで、ユーザが手動または何らかのオペレーションによって列CのセルC19からC22内にデータを追加した場合、ユーザはそれでもなお、入力した数式が列C内のすべてのデータの平均を返すことを期待する。遺憾ながら、数式中のセル範囲は依然としてセルC6からC18内のデータだけを平均し、すなわちセルC19からC22内のデータを除外するので、この数式はユーザの期待通りには動作しない。スプレッドシートアプリケーションはユーザの期待が常に参照内に新しいデータを含めることであるかどうかを判定することができないので、こうした状況により、ユーザは、数式中のセル範囲の座標を手動で変更することを求められる。したがって、ユーザは、「=AVERAGE(C6 C22)」と読み替えるように数式を手動で編集しなければならない。頻繁に変化するデータを伴う多数の数式をユーザが有する場合、この編集は困難または不可能である。現在利用可能なすべてのタイプの参照(セルの座標によるセルへの参照、名前付き範囲、NLF、および参照を返す関数を含む)は、セル範囲を更新できないという難点がある。
さらに、上述の命名機能のさらなる欠点は、ユーザが各「名前付き範囲」を手動で作成し維持しなければならないことである。例えば、ユーザは、まずセルC6からC18内に身長のリストを作成し、次いでデータを指定する「Heights」と呼ばれる名前付き範囲を作成しなければならない。遺憾ながら、ユーザがデータを更新する場合、例えばユーザがセルC19からC22にデータを追加する場合、ユーザは、C6からC22までのすべてのセルを含むように名前付き範囲を手動で更新しなければならない。
さらに、NLFは、名前付き範囲に伴う問題の一部の助けになるが、他の問題を導入する。NLFはしばしばあいまいである。スプレッドシート内の2つのラベルが同一名を有する場合、またはラベルが列および行中のデータを記述することができる場合、NLFは、ユーザが期待するセル範囲とは異なるセル範囲を指定することがある。例えば、NLF参照は、第2のラベルを有する他のセル範囲を指すことがあり、またはユーザが期待するデータの列ではなく、データの行を指すことがある。
さらに、ユーザが入力するラベルとスプレッドシートアプリケーションによって選択されたセル範囲との間の関連付けが、NLF(ラベルまたはデータではない)が作成または変更されるときに推論される。したがって、あるNLFで使用されるラベルがあるセル範囲を指すことがあり、一方、他のNLFで使用される同一のラベルが全く異なるセル範囲を指すことがある。例えば、ラベル「Heights」がセルC5内にあり、データがセルC6からC18に位置したとして(セルC19にはデータがない)、ユーザが数式「=AVERAGE(Heights)」を入力した場合、ユーザは、数式が「Heights」という語で始まる列内のデータの平均を返すと期待する。ここで、ユーザが手動または何らかのオペレーションによってデータを列CのセルC19からC22内に追加した場合、ユーザはそれでもなお、「Heights」が「Heights」で始まる列内のすべてのデータを指すことを期待する。遺憾ながら、数式中のセル範囲は依然としてセルC6からC18内のデータを平均するだけであり、すなわちセルC19からC22内のデータは除外するので、この数式はユーザの期待通りには機能しない。しかし、ユーザがセルC19からC22内にデータを追加した後に別のセルに全く同じ数式を入力した場合、ユーザは、セルC6からC22内のデータを平均することになる。したがって、ユーザは、全く同じに見えるが、一方は正しい結果(「=AVERAGE(C6 C22)」と同等)を返し、他方は正しくない結果(「=AVERAGE(C6 C18)」と同等)を返す、NLFに伴う2つの数式を有することができる。したがって、NLFを利用するユーザは、数式が参照するのは厳密にどのセルかを明確に知らないという問題を抱える。
さらに、OFFSETやGETPIVOTDATAなどの参照を返す関数はいくつかの他の制限を有する。参照を返す関数は、スプレッドシート中のデータの変化を調整しない。例えば、参照を返す関数は、項目がリネームされた場合または項目が移動された場合に調整しない。例えば、「=GETPIVOTDATA(“Height”,Sheet1!$A$3,“Person”,“John”)」のように、Johnの身長についての参照を返すGETPIVOTTABLE関数は、人名を「John」から「Fred」に変更した場合に更新されない。
同様に、OFFSET関数は、引数で指定されたセルを見つけ、指定のセルから所望のセルに行番号および列番号を移動することにより、所望のセルに対する参照を返すことができる。行または列が指定のセルと所望のセルの間に挿入または削除された場合、あるいは指定のセルまたは所望のセルが移動した場合、OFFSET関数は、正しくない参照を返すことになる。OFFSET関数は、スプレッドシート内で移動した行番号および列番号を調整して所望のセルを見つけることができない。
GETPIVOTDATA関数はまた、単一のセルに対する参照を返すことしかできない。複数のセルを参照するユーザの場合、ユーザは、多数のGETPIVOTDATA関数を入力しなければならず、それは複雑となる可能性がある。例えば、ユーザは、PivotTable(登録商標)テーブルの結果の列C内のデータを平均したいと望むことがある。列C内のデータは、セルC6からC18にあることがある。PivotTable(登録商標)テーブルリフレッシュ中にデータが移動する場合に調整されるGETPIVOTDATA関数参照を使用するために、ユーザは、C6からC18までのセルごとに1つの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(登録商標)、およびデータのヘッダによるPivotTables(登録商標)データの部分をユーザが参照することを可能にする、スプレッドシートプログラム内の新しいタイプの構造化された名前に関する。本発明の諸実施形態は、データ構造内のデータの1つまたは複数の項目を記述する1つまたは複数の意味指定(semantic designation)を受け取ること、構造的参照(structural reference)を自動的に作成すること、および意味指定を構造的参照と関連付けることを構成する1組のデータを参照する方法を含む。本発明の他の実施形態は、スプレッドシート内のデータに対する参照をディスプレイ装置上に表示するためのユーザインターフェースとの対話に関し、その対話は、データ構造の1つまたは複数の要素を記述するユーザから1つまたは複数の意味指定を受け取ること、データ構造の要素に対する構造的参照を作成すること、構造的参照を1つまたは複数の意味指定の集合として表示することを含む。
ある実施形態では、意味指定は、リスト、テーブル、フィールド、メンバ、列、行、1つまたは複数のセル、または次元を記述する。他の実施形態では、意味指定は、リスト名、テーブル名、行の名前、列の名前、セル名、行位置、セル位置、列位置、またはデータ詳細のうちの1つまたは複数を含む。一実施形態では、意味指定は、メタデータの1つまたは複数の項目を指す。
一実施形態では、構造的参照は、データの1つまたは複数の項目の位置を指す。別の実施形態では、位置は、列、行、または1つまたは複数のセルを指す。他の実施形態では、データ構造は、意味指定によって識別されるテーブルの構造要素である。別の実施形態では、構造要素のタイプは、リスト、テーブル、フィールド、メンバ、列、行、1つまたは複数のセル、または次元のうちの1つまたは複数を含む。ある実施形態では、構造的参照は、無制限の数のセルである。ある実施形態では、構造的参照が、構造的参照を確立するのに使用される1つまたは複数の意味指定の集合としてユーザに提供される。
ある実施形態では、この方法は、1つまたは複数の構造的参照に含まれるデータに対する変更を受け取ること、およびその1つまたは複数の構造的参照を自動的に調整して、既存のデータの1つまたは複数の項目に対する参照を維持することをさらに含む。別の実施形態では、この方法は、1つまたは複数の構造的参照を確立するのに使用される1つまたは複数の意味指定によって記述されるデータ構造の一部である追加データを含めるように、1つまたは複数の構造的参照を自動的に調整することをさらに含む。
ある実施形態では、構造的参照がアプリケーションの数式に含められる。別の実施形態では、ユーザに提供されるアプリケーションの数式は、構造的参照を確立するのに使用される1つまたは複数の意味指定を有する。
ある実施形態では、ユーザインターフェースは、構造的参照を使用するオペレーションを受け取り、構造的参照を指す1つまたは複数の意味指定の集合と共にオペレーションを表示することができる。その1つまたは複数の意味指定は、オペレーション内の引数の集合を形成する。別の実施形態では、ユーザインターフェースは、構造的参照によって参照されるデータの1つまたは複数の項目に対する1つまたは複数の変更を受け取ることができる。
この構造的参照はあいまいではない。ユーザは、参照および参照が指すスプレッドシートを含む数式から、厳密にどのセルが参照されているかを解釈することができる。構造的参照はまた、一貫している。同一の意味指定を含む2つの数式は常に、その意味指定をワークブック内の同一の構造または構造の同一の部分であると評価する。さらに、構造的参照は参照であって関数ではない。したがって、他の参照を使用することができるときはいつでも構造的参照を使用することができ、他の参照と同様に作用することができ、他の参照と同様に、参照されるセルを強調表示することができ、他の参照と同様に調整することができる。
本発明をコンピュータプロセス、コンピューティングシステム、またはコンピュータプログラム製品などの製品として実施することができる。コンピュータプログラム製品は、コンピュータシステムで可読であり、コンピュータプロセスを実行する命令のコンピュータプログラムを符号化するコンピュータ記憶媒体でよい。コンピュータプログラム製品はまた、コンピューティングシステムで可読であり、コンピュータプロセスを実行する命令のコンピュータプログラムを符号化する、搬送波上の伝播信号でもよい。
以下で簡潔に要約される添付の図面と、本発明の現在のところ好ましい実施形態の以下の詳細な説明と、添付の特許請求の範囲とを参照することにより、本発明およびその改善のより完全な理解を得ることができる。
次に、本発明の諸実施形態が示されている添付の図面を参照しながら、以下で本発明をより完全に説明する。しかし、本発明は、多数の異なる形態で具体化することができ、本明細書で説明する実施形態に限定されると解釈すべきではない。むしろ、本開示が完全なものとなり、本発明の範囲を当業者に完全に伝えるように、こうした実施形態を詳細に提供し、議論する。
一般には、本発明の諸実施形態は、セル座標(すなわち「C6」または「D3 D12」)または索引の代わりにコンテキストに基づいてデータを参照するが、関数ではなく依然として参照であるスプレッドシートプログラム内の構造化された名前構文に関する。本発明の諸実施形態は、データの項目を参照する新しい構造的参照、構造的参照を作成する方法、および構造的参照を実施する方法を含む。
本発明は、1つまたは複数のコンピュータまたはその他の装置によって実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的状況で説明することができる。一般に、プログラムモジュールは、特定のタスクを実施し、または特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。通常、プログラムモジュールの機能は、様々な実施形態で望み通りに組み合わせることができ、または分散させることができる。
本発明の諸態様を有するスプレッドシートアプリケーション100の一実施形態を図1Aおよび図1Bに示す。例示的スプレッドシート100は、「Table1」104という名前のテーブル102を含む。テーブル102は、4つの列106および7つの行108を有する。ユーザは、例示的スプレッドシート100のデータ構造に対する構造的参照を作成することができる。構造化された参照または構造的参照は、セル範囲に基づくのではなく、列、行、セルの組などのスプレッドシートデータの構造に基づくスプレッドシート中の1つまたは複数のデータ項目に対する参照である。構造的参照は、列の名前、行の名前、データセット名などの構造のメタデータを使用して参照の構造を決定することができる。ある実施形態では、メタデータは、テーブル名、列ヘッダ名、行ヘッダ名などのユーザ作成の名前でよい。
データ構造は、構造的参照によって記述されるスプレッドシート内の1組のデータを指す。データ構造は、列、行、テーブル、リスト、別々のスプレッドシート、別々のワークブック、メンバ、PivotTables(登録商標)、あるいは行または列の組によって定義されるデータの部分などを含むことができる。本発明の諸実施形態では、データ構造は、上述のデータ構造のうちの1つを占有するセルまたはセルの配列を含む。データ構造内のセルの配列は無境界でよい。言い換えれば、セルの配列は、配列の始めと終わりをブックエンドする2つのセルに対する参照を有する必要がない。
本発明の諸実施形態では、ユーザは、スプレッドシートアプリケーションがデータ構造を識別する助けとなる意味指定を引用することができる。スプレッドシートアプリケーションは、データ構造に対する構造的参照を作成することができる。本発明の諸実施形態では、意味指定は、ユーザ作成の列ヘッダ名のような、データ構造についてのメタデータ名である、ユーザが入力する言語記述子を指す。データ構造を以下でより完全に説明する。コンテキスト情報は、構造的参照が適用されるデータ構造を求めるのにスプレッドシートアプリケーションが使用することのできる情報を指す。本発明の諸実施形態では、ユーザ入力の意味指定は、スプレッドシートアプリケーションが1組のコンテキスト情報を生成することを可能にする。コンテキスト情報は、データの1つまたは複数の項目を記述する1つまたは複数の意味指定でよい。本発明の諸実施形態では、コンテキスト情報は、列ヘッダ名やユーザ定義のテーブル名など、ユーザによって作成される。他の実施形態では、スプレッドシートアプリケーションがPivotTable(登録商標)を「pivottable1」または「pivottable23」と指定する場合などにコンテキスト情報を提供することができる。したがって、意味指定は、ユーザがスプレッドシートアプリケーションに与える言語記述子であり、コンテキスト情報は、スプレッドシート内のデータ構造を特徴付ける意味指定を名前として有する1つのスプレッドシートである。以後、ユーザによって与えられ、またはスプレッドシートアプリケーションによって使用される、データ構造を識別するのに使用される言語記述子を記述するために、意味指定およびコンテキスト情報をほぼ交換可能に使用する。
本発明は、あいまいでないメタデータを利用する。本発明の諸実施形態では、それに関するあいまいでない意味指定を決定することのできるメタデータだけが構造的参照を作成する際に使用される。さらに、参照が指すデータの性質および範囲を、参照が指すワークブック内の構造および意味指定のテキストに基づいて明確に決定することができる。
例えば、図1Aを参照すると、ユーザは列112内のデータを使用することを望むことがある。ユーザは、意味指定「Height」を引用することができる。スプレッドシートアプリケーションは、スプレッドシート内の「Height」を見つけることができる。スプレッドシートアプリケーションは、「Height」が列112に関する列ヘッダ名110であることを認識することができる。したがって、列ヘッダ名としての「Height」は、列112内のデータを記述するので、「Height」は、スプレッドシート内の1つのコンテキスト情報である。列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に示す。この例示的実施形態が示すように、ユーザは、スプレッドシート内のデータを参照するのにセル範囲を与える必要がない。むしろ、ユーザは、スプレッドシート内の意味指定を利用してスプレッドシート内のデータを参照することができる。
さらに、本発明の諸実施形態は、構造のデータ、ヘッダ、合計、小計を含む構造の各部分を個別に参照することができ、または構造の各部をデータの他の部分と共に参照することができる。したがって、一実施形態では、ユーザは特別な意味指定を使用することによって所与の列に関する合計だけを参照することができる。例えば、「合計」構造を参照するための特別の意味指定は、「Table1[Height,[#Total]]」のようなものでよい。ここで、合計を返す意味指定は、指定が構造の部分であって列の名前ではないことをスプレッドシートアプリケーションに示すシンボル(#)を使用することによって列の名前と区別される。
本発明を実施することができる適切な動作環境の実施形態を図2に示す。この動作環境は適切な動作環境の一例に過ぎず、本発明の使用法または機能の範囲に関して何らかの制限を示唆するものではない。本発明と共に使用するのに適した他の周知のコンピューティングシステム、環境、および/または構成には、限定はしないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラム可能消費者向け電子機器、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたは装置のいずれかを含む分散コンピューティング環境などが含まれる。
図2を参照すると、本発明の実施形態を実施する例示的コンピューティング環境は、コンピューティング装置200などのコンピューティング装置を含む。その最も基本的な構成では、コンピューティング装置200は通常、少なくとも1つの処理装置202およびメモリ204を含む。コンピューティング装置200の厳密な構成およびタイプに応じて、メモリ204は、揮発性(RAMなど)、不揮発性(ROM、フラッシュメモリなど)、またはその2つの何らかの組合せとすることができる。コンピューティング装置200の最も基本的な構成を図2の破線206で示す。さらに、装置200は追加の特徴/機能も有することができる。例えば、装置200は、限定はしないが磁気ディスクまたは光ディスクあるいはテープを含む(取外し可能および/または取外し不能な)追加の記憶装置も含むことができる。このような追加の記憶装置を、図2の取外し可能記憶装置208および取外し不能記憶装置210で示す。このようなコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、その他のデータなどの情報を記憶するための何らかの方法または技術で実装された、揮発性および不揮発性の、取外し可能および取外し不能な媒体を含む。メモリ204、取外し可能記憶装置208、および取外し不能記憶装置210は、すべてコンピュータ記憶媒体の例である。コンピュータ記憶媒体には、限定はしないが、RAM、ROM、EEPROM、フラッシュメモリ、またはその他のメモリ技術、CD−ROM、デジタルバーサタイルディスク(DVD)、またはその他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、またはその他の磁気記憶装置、あるいは、所望の情報を記憶するのに使用することができ、装置200およびプロセッサ202でアクセスすることができるその他のどんな媒体も含まれる。このようなどんなコンピュータ記憶媒体も装置200の一部とすることができる。
装置200は、他の装置と通信することを可能とする通信接続212も含むことができる。通信接続212は通信媒体の一例である。通信媒体は一般に、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを、搬送波またはその他の移送機構などの被変調データ信号で具体化し、その通信媒体には任意の情報送達媒体が含まれる。「被変調データ信号」という用語は、その特性集合のうちの1つまたは複数を有する信号、または情報をその中に符号化するように変化した信号を意味する。例えば、限定はしないが、通信媒体には、有線ネットワークやダイレクトワイヤード接続などの有線媒体、ならびに音響、RF、赤外線、その他の無線媒体などの無線媒体が含まれる。
装置200は、キーボード、マウス、ペン、音声入力装置、タッチ入力装置などの入力装置214も有することができる。ディスプレイ、スピーカ、プリンタなどの出力装置216も含むことができる。こうした装置は、個々に、または組み合わせてユーザインターフェース102を形成することができる。こうした装置はすべて当技術分野で周知であり、ここでさらに論じる必要はない。
コンピューティング装置200は通常、少なくとも何らかの形態のコンピュータ可読媒体を含む。コンピュータ可読媒体は、処理装置202でアクセスすることのできる入手可能などんな媒体でもよい。例えば、限定はしないが、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、その他のデータなどの情報を記憶するための何らかの方法または技術で実装された、揮発性および不揮発性の、取外し可能および取外し不能な媒体を含む。上記のどんな組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
本発明の諸態様を有するシステム300の一実施形態の機能図を図3に示す。システム300は、本発明の一実施形態による構造的参照を作成することができる。システム300は、スプレッドシートアプリケーションまたはデータベースアプリケーション、あるいはプログラムなどのソフトウェアアプリケーションの一部として具体化することができる。例示的実施形態では、システム300の各部分は、Microsoft(登録商標)Excelスプレッドシートアプリケーションなどのスプレッドシートアプリケーションで見出される。システムアプリケーション300はいくつかのモジュールを有する。一実施形態では、システム300は、ユーザインターフェース302、データ参照モジュール304、数式モジュール306、および何らかのスプレッドシートに格納されたデータ308を有する。ある実施形態では、様々なモジュールが、ユーザが与える意味指定312から構造的参照310を作成するように対話する。意味指定は、データ308内のデータ構造316を識別するのに使用することのできる1組のコンテキスト情報314と関連付けることができる。データ構造316を識別した後、データ参照モジュール304は、そのデータ構造316に対する構造的参照310を作成することができる。
ある実施形態では、構造的参照310を数式モジュール306で使用することができる。数式モジュール306は、ユーザから受け取る数式318に従ってデータ308を操作することを助けることができる。数式318は、構造的参照310を使用して、数式318で使用されるデータを得ることができる。数式モジュール306は、構造的参照を伴う数式320を出力することができる。
本発明の諸実施形態では、構造的参照を動的に更新および変更することができる。したがって、構造的参照は、「動的データ」を参照することができる。動的データは、変更することができるがそれでもなお構造的参照で参照することができるデータ構造内の1組のデータである。構造的参照は、スプレッドシートデータの変化またはデータ構造の変化に適応することができる。しばしば、ユーザは、スプレッドシート内のデータを変更、追加、または削除する。さらに、しばしばユーザは、スプレッドシートデータが提示される仕方を操作する。構造的参照は、スプレッドシートデータの変化に適応する。構造的参照は、データ位置情報(セル範囲など)ではなくコンテキスト情報(意味参照など)に従ってデータを指すからである。したがって、データまたはデータ構造が変化するとき、構造的参照130は、データがスプレッドシート内の新しい位置を占有する場合であっても、新しいデータ構造を有するが同一のコンテキスト情報を有するデータに再マッピングすることができる。
本発明の諸実施形態では、システム300は、数式320をデータ308に適用することができる。1組の操作後または計算後データ322が数式320を用いて作成される。システムは、データ308を動的に更新することができるように、構造的参照を有する計算後データ322を生成する。したがって、データ308が変化するとき、数式は、構造的参照に従って引き続き計算後データ322を生成することができる。
構造的参照を生成する方法400の一実施形態を図4の流れ図に示す。本発明の諸実施形態では、方法400は、提供オペレーション402がコンテキスト情報の1つまたは複数の項目を提供するときに開始する。この場合のコンテキスト情報は、図3に示すコンテキスト情報314と同様でよい。コンテキスト情報は、データ構造(データ構造316など)によってデータを参照することができる。ある実施形態では、ユーザは、ユーザインターフェース(302など)を介して1つまたは複数の意味指定(指定312など)を与えることができる。ある実施形態では、前述のように、コンテキスト情報を、データを記述する言語記述子を使用してデータのすべてまたは一部を指す1つまたは複数の意味指定から確立することができる。別の実施形態では、ユーザは、以下でさらに説明する半選択(semi−selection)またはその他のプロセスを介してコンテキスト情報を与えることができる。さらに別の実施形態では、他のアプリケーションがそのようなコンテキスト情報を与えることができ、例えばレポートを生成するためにマクロコード機能を実行することができる。そのような場合、スプレッドシートアプリケーションは、それ自体のコンテキスト情報を作成することができる。
意味指定の入力、すなわちコンテキスト情報の作成を実現するために、ユーザはいくつかの異なる方法を利用することができる。一実施形態では、ユーザは、キーボードインターフェースを介して意味指定をスプレッドシートアプリケーションにタイプすることによって意味指定を直接入力することができる。別の実施形態では、ユーザは、マウスまたはその他のタイプのグラフィカルユーザインターフェースを用いて行、列、テーブル、またはその他の構造を選択することができる。1組のデータをグラフィカルに選択する際に、アプリケーションは、データの選択部分を記述するヘッダ名またはその他のコンテキスト情報を判断することによってどのコンテキスト情報を使用するかを分解することができ、選択データに関する意味指定を表示することができる。この方法は、半選択と呼ばれることがある。さらに別の実施形態では、ユーザは、グラフィカルユーザインターフェースまたはその他の手段を使用して、既存の数式またはセルから構造的参照をグラフィカルにコピーし、参照を新しい数式または関数にペーストすることができる。構造的参照をコピーするために、ユーザは、意味指定をコピーおよびペーストすることができる。本発明の諸実施形態に含まれる、ユーザがコンテキスト情報を与えることのできるその他の方法を当業者は理解されよう。
次の判定オペレーション404は、コンテキスト情報に関係するデータ構造を判定する。ある実施形態では、データ構造を判定することは、コンテキスト情報を与えるのにユーザが利用する方法に依存する。ユーザが別の数式またはセルから意味指定をコピーした場合、前述のように構造的参照も新しい数式またはセルにコピーされる。しかし、ある実施形態では、ユーザは、意味指定をタイプすることでしかコンテキスト情報を与えることができない。こうした実施形態では、アプリケーションは、どんなセル、列、テーブル、リスト、行、またはその他の構造がコンテキスト情報によって記述されるかを判定しなければならない。本発明の諸実施形態では、意味指定は常に、「MyPivotTable」という名前のPivotTable(登録商標)関数に関するメタデータタイトルである「MyPivotTable」などのデータ構造の名前から始まる。
本発明の諸実施形態では、スプレッドシートアプリケーションが参照を解析する。次いで、スプレッドシートアプリケーションは、解析される参照が構造的参照であるかどうかを判定することができる。参照が構造的参照である場合、スプレッドシートアプリケーションは、どのデータ構造がユーザが与えた名前を有するかを判定することができる。例えば、アプリケーションは、意味指定と同一または類似の名前を求めてテーブルまたはリストを探索することができる。一例を挙げると、ユーザは、図1のように数式中で名前「Height」を与えることができる。図1のテーブル102の探索により、「Height」という語の位置が列ヘッダ110として突き止められる。この例では、「Height」は列C112内のデータに関するヘッダ110である。
次いで、スプレッドシートアプリケーションは、ユーザが命名したのはどのタイプのデータ構造かを判定することができる。例えば、データ構造は、PivotTable(登録商標)テーブル、テーブル、またはリストでよい。別の実施形態では、上述のようにデータ構造内にデータを埋め込むことができる。スプレッドシートアプリケーションは、構造(PivotTableテーブルまたはテーブル)を使用して、コンテキスト情報がデータに対してスプレッドシート内にあることを判定する。コンテキスト情報がデータの上にある場合、コンテキスト情報は列のデータ構造を記述することができる。セルがデータの左側にある場合、コンテキスト情報は、行のデータ構造を記述することができる。このプロセスは、どのセルが適切なラベルを含むか、およびどの範囲のデータが所与のラベルによって参照されるかを評価する、あいまいでないコンテキストを提供する。この構造はまた、ラベルとデータ範囲がリンクされたままとなるように更新される。上記の例では、「Height」は、図1のテーブル102中のデータ構造である列112を記述する。「Height」は、その列の列ヘッダであるからである。コンテキスト情報をどのように使用してテーブルに関するデータ構造を識別することができるかを当業者は理解されよう。
別の実施形態では、PivotTable(登録商標)テーブルについて、スプレッドシートアプリケーションは、PivotTable(登録商標)テーブルの名前、ならびにフィールド内の項目間または項目の範囲間の交点を使用して、構造的参照の範囲を決定する。本発明の一実施形態では、その決定は、PivotTable(登録商標)テーブルの名前と、その後に続く、列で分離されるフィールド内の項目または項目の範囲の名前を含む角括弧とを意味的に指定することによって行われる。
PivotTable(登録商標)テーブルの一例は図6の表のように見えることがある。「Proposed Milestone」614の項目「M2」に関する列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」フィールド614内の項目の出現順序に関わらず、常に、「Proposed Milestone」フィールド614内の「M2」項目602によって指定されるデータセルと、「Proposed PM」フィールド618内の「Allan Folting」602から「Chad Rothschiller」606までの項目との交点が得られる。参照に関して使用される構文は、例示的実施形態および例に示す構文に限定されない。参照に関して使用することのできるその他の構文を当業者は理解されよう。
別の実施形態では、オンライン解析処理(OLAP)データベース内のデータにリンクされたPivotTable(登録商標)テーブルについて、PivotTable(登録商標)テーブルの一部の指定が、各次元内のメンバまたはメンバの範囲の交点を使用する。次元は、1組のデータ全体を記述するキャプションまたは記述子である。次元は、その1組のデータをさらに分類または記述する1つまたは複数のメンバを有することができる。メンバは、1組のレベルとして編成することができ、メンバが1つまたは複数の「子」メンバに対する親となることができる。本発明の諸実施形態では、OLAPデータベースで使用される祖先という語は、階層内の任意のレベルの指定のメンバのn番目の親であるメンバに当てはまる。メンバおよび次元は当技術分野で周知であり、詳しくは説明しない。意味指定および関係する構造的参照は、参照が、前述のように1つの項目および1つのフィールドの組合せを単に使用するのではなく、次元と、次元の1つまたは複数のレベル内の1つまたは複数のメンバの組合せを使用することができることを除いて、上述のフィールド内の項目の指定と同様である。一実施形態では、OLAP PivotTable(登録商標)テーブル内のデータに対する構造的参照は、次元内のデータを記述するすべてのメンバを含む単一の数式を含む。例えば、以下の「MyPivotTable」という名称のOLAP PivotTable(登録商標)テーブルでは、
Figure 0004936685
「83」を含むセルに対する意味指定は以下のようになる。
「=MyPivotTable[[ShipCountry][Brazil][Rio de Janeiro]]」
本発明の実施形態は、索引を使用して重複したメンバキャプションを一義化することにより、OLAP PivotTable(登録商標)テーブル内にあいまいさがあるケースに対処する。したがって、同一名を有し、他のすべての点で同一の意味指定(PivotTable(登録商標)テーブル上で可視の同一の祖先および同一の次元およびレベル)を有する2つのメンバが同時にテーブル上に現れる場合、これらのメンバは、普通なら同一の指定を共有することになる他のメンバからメンバを区別するためにメンバ名に付加される整数により、参照目的で一義化される。例えば、あるメンバは「Vancouver 1」でよく、2番目のメンバは「Vancouver 2」でよい。
次に、作成オペレーション406が構造的参照を作成する。構造的参照は、上記で決定したデータ構造に基づくことができる。ある実施形態では、スプレッドシートアプリケーションは、データ構造のメタデータ(すなわち構造化参照構文で利用可能なヘッダおよび特別な項目)にマッピングされる。メタデータは、リストまたはPivotTable(登録商標)内の列などの埋込みデータ構造を含むことができる。したがって、メタデータは、テーブルおよび列についてのコンテキスト情報を有することができる。構造参照はデータ構造に結合される。スプレッドシートアプリケーションは、「解析時」に構造の一部に対する参照を分解し、次いで「評価時」に、機能のために構造のその部分をセル範囲に分解する。例えば、意味指定「MyList[Sales]」は、実質上は「MyListのSales列」である構造的参照を作成するが、この構造的参照は、構造的参照が数式または機能の評価中に使用される場合に「セルC2からC48」のように分解される。したがって、スプレッドシートアプリケーションは、解析時に意味指定をデータ構造に変換することができ、評価時に、データ構造を、ユーザが望むデータを有する実際のセル範囲に変換することができる。ユーザは、構造的参照がディスプレイ装置上に提示されるのを見ないことがある。しかし、他の実施形態では、ユーザは、ユーザインターフェースで、構造的参照によって参照される位置のテキスト表現またはグラフィカル表現を与えられる。したがって、ユーザは、ディスプレイ装置のあるエリアまたはウィンドウで、構造的参照に含まれるセルを含む表示を受けることができる。例えば、スプレッドシートアプリケーションでセルを強調表示することができる。他の実施形態では、スプレッドシートアプリケーションが、セルの周囲に枠を配置し、セルに陰影を付け、またはその他の何らかの視覚的効果を使用することにより、ディスプレイ装置上に表示される1組のセルの外観を変更することができる。
次に、提供オペレーション408が構造的参照を提供する。本発明の諸実施形態では、ユーザが構造的参照を用いて実施したいオペレーションが何であっても、構造的参照がスプレッドシートに埋め込まれる。しかし、ユーザは、スプレッドシートで意味指定だけを見る可能性がある。ある実施形態では、データのセクションを解析するのに構造的参照を使用することができ、あるいは数式、計算、またはその他のデータ操作で使用することができる。一実施形態では、構造的参照を生成するコンテキスト情報を与える1組の引数として意味指定を数式の構文に組み込むことができる。
別の実施形態では、アプリケーションが構造的参照をディスプレイ装置に提供することができる。ユーザが意味指定を手動で入力した場合、スプレッドシートアプリケーションは、基礎となる構造的参照によって参照されるデータ構造を強調表示することができる。別の実施形態では、ユーザがある数式または関数で使用するためにデータのセクションを選択した場合、スプレッドシートアプリケーションは、選んだデータを記述する意味指定を作成して、その意味指定をユーザに提供することができる。スプレッドシートアプリケーションが構造的参照をユーザに提供することのできる他の方法を当業者は理解されよう。
構造的参照によって参照されるデータを動的に更新する方法500を図5に示す。受領オペレーション502は、構造的参照によって参照されるデータに対する変更を受け取る。この変更は、さらなるデータを追加するなどのデータに対する変更でよく、またはデータの行を挿入するなどのデータ構造に対する変更でよい。例えば、列の終わりにデータを付加することができる。既存のデータ構造内に既にあるデータは移動しないので、データの付加は、参照されるデータの既存のデータ構造を必ずしも変更しない。データの付加は、単に既存のデータ構造にデータを追加する。本発明の諸実施形態では、データ構造に対する変更は、既存のデータ構造内の行、列、またはセルの挿入、削除、または移動を含むことができる。データ構造の変化は実際に、構造的参照で参照されるデータの位置を移動することができる。ある実施形態では、PivotTable(登録商標)のリフレッシュなどのスプレッドシートアプリケーション内の何らかの自動関数のために、あるいはユーザの介入によって手動で変更が行われる。
次に、判定オペレーション504が、データ構造が変化したかどうかを判定する。ある実施形態では、スプレッドシートアプリケーションが、構造的参照によって参照されるデータを移動またはシフトする列、行、またはセルがフィールドに挿入されたかどうかを判定する。この判定は、構造変化の位置を、既存の構造的参照で参照されるデータの位置と比較することを含むことができる。こうした位置が重なる場合、データ構造に対する変更が行われている。構造に対する変更が行われたかどうかをスプレッドシートアプリケーションが判定することのできる他の方法を当業者は理解されよう。データ構造に対する変更が行われた場合、探索オペレーション514がコンテキスト情報を突き止める。コンテキスト情報は以下で説明する。
データ構造に対する変更が行われなかった場合、データの追加と同じく、判定オペレーション506が、変更が及ぼす可能性のある、何らかの既存の構造的参照に対する影響があるかどうかを判定する。例えば、データがテーブルに追加された場合、アプリケーションは、そのデータを既存の構造的参照でカバーすべきかどうかを判定することができる。
次に、変更オペレーション508が新しい構造的参照を変更する。本発明の諸実施形態では、スプレッドシートアプリケーションが構造的参照の分解を変更する。例えば、既存の構造的参照を分解してセルC2からC6内のデータを得ることができる。ユーザは、セルC7からC9に追加した新しいデータを既存の構造的参照に含めることを望むことがある。既存の構造的参照によって参照されるデータ構造は必ずしも変化しないが、構造的参照に対して使用される意味指定は、新しく追加したデータを包含することができる。スプレッドシートアプリケーションは、新しい構造的参照を作成するのではなく、構造的参照の分解を変更してセルC2からC9内のデータを得る。例えば、セルが図1の列112の終わりに追加された場合、既存の構造的参照の分解は、意味指定「Height」を使用する任意の数式中でそうした新しいセルをカバーする必要がある。
次に、提供オペレーション510が構造的参照を提供する。一実施形態では、構造的参照を提供することは、構造的参照を使用する何らかのセルを汚染することを含む可能性がある。セルを汚染することは、コンピュータフラグをセットすることによって、またはその他の手段によってセルを識別することを含むことがあり、それにより、そうしたセル内の計算または参照を再実行させる必要がある。汚染セルは、そうしたセル内のオペレーションを再実行させる。このようにして、構造的参照が更新されるとき、その参照を使用するすべてのオペレーションも更新される。したがって、構造的参照は、データ変更に適応し、次いでそうした構造的参照を使用する任意のオペレーションを更新するので、スプレッドシートアプリケーションは、動的データに対する構造的参照を提供する。
データに対する変更がデータ構造に対する変更を引き起こした場合、発見オペレーション514が、変更されたデータ構造内のコンテキスト情報を見つける。本発明の諸実施形態では、構造的参照を作成するのに使用されるコンテキスト情報が格納される。このコンテキスト情報は取り出される。一実施形態では、スプレッドシートアプリケーションは、1つまたは複数の意味指定を含む可能性のあるコンテキスト情報を求めてスプレッドシートまたはテーブルを探索する。例えば、スプレッドシートアプリケーションは、意味指定と同一の列ヘッダ名を有する列ヘッダを探索し、見つけることができる。
次に、判定オペレーション516が、コンテキスト情報に適用される新しいデータ構造を判定する。一実施形態では、コンテキスト情報を見つける際に、スプレッドシートアプリケーションは、その時にコンテキスト情報に関連するデータ構造を判定することができる。ある実施形態では、新しいデータ構造は、列のような同じタイプのデータ構造でよいが、別の位置に位置することもできる。別の実施形態では、データ構造タイプが変化することができる。例えば、列内のデータをデータ変更後に行で表示することができる。
次に、作成オペレーション518が新しい構造的参照を作成する。一実施形態では、スプレッドシートアプリケーションは、新しいデータ構造に構造的参照を再マッピングする。別の実施形態では、既存の構造的参照を除去して、新しい構造的参照を生成することができる。
次いで、提供オペレーション520が新しい構造的参照を提供する。ある実施形態では、前述のように、新しい構造的参照を提供することは、以前の構造的参照を使用してセルを汚染することを含む可能性がある。新しい構造的参照は、汚染されたセル内の任意の数式または参照中の以前の構造的参照を置換する。次いで、汚染されたセル内のオペレーションが、新しい構造的参照で得られたデータを使用して再実行される。したがって、こうした計算またはオペレーションで参照される何らかのデータが変化した場合、構造的参照を使用する計算またはオペレーションが動的に更新される。
構造的参照に関するコンテキスト情報の例示的実施形態と、構造的参照を作成し、動的に更新する方法とを図6から図11に示す。この例示的実施形態では、ユーザがテーブル600を作成している。テーブル600は、行および列内のデータの配列を有する。例示的テーブル600は、テーブル600内のデータを記述するコンテキスト情報を有する。この場合も、コンテキスト情報は、テーブル600内のデータを記述することができるテーブル600内のユーザ作成の名前または自動的に作成された名前の組である。コンテキスト情報は、テーブル名、列ヘッダ名、行ヘッダ名、またはその他のそのような名前を含むことができる。
まず、テーブル600は、「MyTable」という名前を有する。ユーザ作成の名前「MyTable」は、第1の1つのコンテキスト情報を提供するテーブル名601である。ユーザは、意味指定「MyTable」を使用してテーブル600内のデータを参照することができる。スプレッドシートアプリケーションは、この意味指定を、テーブル600内のデータを記述するコンテキスト情報として認識することができる。次いで、スプレッドシートアプリケーションは、コンテキスト情報に基づいてテーブル600に対する構造的参照を作成することができる。構造的参照を使用する場合、スプレッドシートアプリケーションは、構造的参照をテーブル600内のデータに分解することができる。
テーブル600は、行ヘッダ名や列ヘッダ名などの他のコンテキスト情報も有する。3つの例示的行ヘッダ名がセル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に示す。ここでは、3つの新しい情報の行802がテーブル800に追加される。この情報は、3つの新しい行1002より上の既存のデータ1004のいずれの位置またはデータ構造も変更しない。このとき、アプリケーションは、この変更が何らかの既存の構造的参照に影響を及ぼす可能性があるかどうかを判定しなければならない。前述のように、ユーザは、図9に示すようにヘッダ「M2」906より下のすべてのデータに関する構造的参照を確立しておくことができる。列708に対する構造的参照は、追加データによって影響を受けている可能性がある。次いで、スプレッドシートアプリケーションは、列ヘッダ「M2」806より下のデータに関する構造的参照を作成したコンテキスト情報を取り出すことができる。意味指定「M2」806に関するデータ構造は、列ヘッダ806より下からGrand Totalセル1006までのすべてのデータを含むことができる。したがって、図11の淡く陰影を付けたエリア1102で示すように、新しく追加した行1002内のデータを含めるべきである。したがって、次にスプレッドシートアプリケーションは、意味指定「M2」806で輪郭が描かれたデータ構造1104内にある新しいデータと既存のデータのどちらもカバーするように、構造的参照を分解する方法を変更する。
変更が構造的参照によって参照されるデータ構造に影響を及ぼす状況の一例を図10および図11に示す。前述のように、コンテキスト情報は「M2」706に対する意味指定を有する。データ構造である元の構造的参照参照列708を図10で強調表示したセルの組として示す。ここで、「M1A」と呼ばれる列1002がテーブル1000に挿入されている。列挿入により、「M2」と呼ばれる列1004が右に移動したので、データ構造が変化した。したがって、このとき構造的参照708は、誤ったセルの組を指す。
さらに、3つの行1006がテーブル1000の中央に挿入された。新しい行1006により、構造的参照708によってカバーされる、ボックス1008で示す新しいデータが列に導入された。したがって、このとき元の構造的参照708は、ボックス1008内の新しいデータをカバーし、最後の3行1010内のボックス1012で示す一部の元のデータをカバーすることができない。アプリケーションが引き続き元の構造的参照を使用した場合、元の構造的参照は不正確なデータを与えるので、列および行は、元の構造的参照を「破壊」している。したがって、スプレッドシートアプリケーションは、構造的参照を更新しなければならない。
まず、スプレッドシートアプリケーションは、再びコンテキスト情報を突き止めることができる。スプレッドシートアプリケーションは、以前に格納されたユーザ入力意味指定「M2」を求めて変更したテーブル1000を探索することにより、コンテキスト情報を突き止めることができる。この例では、スプレッドシートアプリケーションは、図11からわかるように、列ヘッダ1102内の「M2」を見つける。コンテキスト情報「M2」の位置は、元の構造的参照1408の1つ右側の列である。コンテキスト情報を突き止めた後、スプレッドシートアプリケーションは、コンテキスト情報が記述する新しいデータ構造を求めることができる。コンテキスト情報「M2」は、列1106内のすべてのデータ1104を指す。したがって、新しいデータ構造である列1106は、図11の陰影を付けたエリア1104内に示されるようになる。新しいデータ構造は、ボックス1110内のデータの新しいセルと、ボックス1132内の元のデータを含む。新しいデータ構造を求めた後、スプレッドシートアプリケーションは、列1106のメタデータを参照する新しい構造的参照を作成する。したがって、新しい構造的参照を作成するプロセスは、参照を調節してデータの変化を補償した。言い換えれば、新しい構造的参照は、列1106に対する参照をシフトし、ボックス1110内のデータを追加し、ボックス1112内のデータに対する参照を維持する。このプロセスは自動で、こうした構造的参照に対する何らかの手動の変更を行う必要からユーザを解放した。
本発明の諸実施形態では、ユーザは、数式または計算で上記の構造的参照を利用することができる。調整した構造的参照を有する任意のセルを汚染することができる。調節した構造的参照で得られたデータを使用して、汚染セルを占有する数式計算を再実行することができる。したがって、ユーザの既存の計算および数式も自動的に更新される。
構造的参照と構造的参照を使用する数式との間の機能的関係を示す本発明の実施形態の機能図である。 構造的参照と構造的参照を使用する数式との間の機能的関係を示す本発明の実施形態の機能図である。 本発明による構造的参照を提供するように動作可能なコンピュータ環境およびコンピューティング装置を示す機能図である。 構造的参照を本発明によるスプレッドシート内の1組のデータと関連付ける際の本発明の一実施形態を表す流れ図である。 本発明によるスプレッドシート内の構造的参照を動的に更新する本発明の一実施形態を表す流れ図である。 構造化された数式を本発明によるスプレッドシート内の1組のデータに適用する本発明の一実施形態の流れ図である。 本発明によるスプレッドシートを示す本発明の一実施形態の一例である。 本発明による構造的参照を有するスプレッドシートを示す本発明の一実施形態の一例である。 本発明による付加データを有するスプレッドシートを示す本発明の一実施形態の一例である。 本発明による動的に更新される構造的参照を示す本発明の一実施形態の一例である。 本発明によるデータの挿入による構造の変化を伴うスプレッドシートを示す本発明の一実施形態の一例である。 本発明による動的に更新される構造的参照を有するスプレッドシートを示す本発明の一実施形態の一例である。
符号の説明
202 処理装置
204 システムメモリ
208 取外し可能記憶装置
210 取外し不能記憶装置
212 通信接続
214 入力装置
216 出力装置

Claims (31)

  1. スプレッドシートアプリケーション内で1組のデータをコンピュータシステムが参照する方法であって、
    前記方法は、
    1つまたは複数の意味指定を受け取るステップであって、前記1つまたは複数の意味指定は、データ構造内のデータの1つまたは複数の項目を記述するステップと、
    前記データ構造に対する構造的参照を自動的に作成するステップであって、前記構造的参照は、無制限の数のセルである、ステップと、
    前記1つまたは複数の意味指定を前記構造的参照と関連付けるステップであって、前記関連付けるステップは、特定の構文を含むユーザ入力の意味指定から1組のコンテキスト情報を生成すること、および少なくとも1つの数式において前記構造的参照を使用することであって、前記スプレッドシートアプリケーションは前記構造的参照を前記データ構造に自動的にマッピングすること、のうち少なくとも1つを含む、ステップ
    スプレッドシート内のコンテキスト情報が前記データに近似する時を判定するステップと、
    コンテキスト情報が前記データに近似する時、どのセルが前記データを含み、およびどのセルがデータラベルを含むかを評価するコンテキストを提供し、前記構造的参照をアップデートするステップであって、前記データラベルおよび前記データがリンクされたままである、ステップと、
    前記データがデータベースに格納される時、前記データ内の曖昧さを判定するステップであって、前記曖昧さは、前記1つまたは複数の意味指定が重複キャプションを含むために生じる、ステップと、
    前記データ内の曖昧さが重複キャプションを含む前記1つまたは複数の意味指定に起因する時、修飾語句の使用によって前記1つまたは複数の意味指定の曖昧さをなくすことにより、修正された意味指定を作成するステップと、
    前記1つまたは複数の意味指定または前記修正された意味指定と、前記構造的参照との間の関連を格納するステップと
    を含むことを特徴とする方法。
  2. 前記意味指定は、リスト、テーブル、フィールド、メンバ、列、行、1つまたは複数のセル、または次元のうちの1つを記述することを特徴とする請求項1に記載の方法。
  3. 前記意味指定は、リスト名、テーブル名、行の名前、列の名前、セル名、行位置、セル位置、列位置、またはデータ詳細のうちの1つまたは複数を含むことを特徴とする請求項1に記載の方法。
  4. 前記意味指定は、メタデータの1つまたは複数の項目を記述することを特徴とする請求項1に記載の方法。
  5. 前記構造的参照は、データの前記1つまたは複数の項目の前記データ構造の位置を指すことを特徴とする請求項1に記載の方法。
  6. 前記データ構造の前記位置は、列、行、または1つまたは複数のセルの位置であることを特徴とする請求項5に記載の方法。
  7. 前記データ構造は、前記意味指定によって識別されるテーブルの構造要素であることを特徴とする請求項1に記載の方法。
  8. 構造要素のタイプは、リスト、テーブル、フィールド、メンバ、列、行、1つまたは複数のセル、または次元のうちの1つまたは複数を含むことを特徴とする請求項7に記載の方法。
  9. 1つまたは複数の構造的参照に含まれるデータに対する変更を受け取るステップと、
    1つまたは複数の構造的参照を自動的に調節して、既存のデータの1つまたは複数の項目に対する参照を維持するステップと
    をさらに含むことを特徴とする請求項1に記載の方法。
  10. 前記1つまたは複数の構造的参照を確立するのに使用される前記1つまたは複数の意味指定によって記述されるデータ構造の部分である追加データを含むように、前記1つまたは複数の構造的参照を自動的に調節するステップを含むことを特徴とする請求項に記載の方法。
  11. 前記構造的参照が、前記構造的参照を確立するのに使用される前記1つまたは複数の意味指定の集合としてユーザに提供されることを特徴とする請求項1に記載の方法。
  12. 前記構造的参照がアプリケーションの数式に含まれることを特徴とする請求項1に記載の方法。
  13. 前記アプリケーションの数式が、前記構造的参照を確立するのに使用される1つまたは複数の意味指定の集合を含む1つまたは複数の引数を入力するユーザに提供されることを特徴とする請求項12に記載の方法。
  14. 前記1つまたは複数意味指定が曖昧である場合、前記構造的参照が作成されないことを特徴とする請求項1に記載の方法。
  15. 前記意味指定が2つ以上のデータ構造を指す場合、前記意味指定は曖昧であることを特徴とする請求項14に記載の方法。
  16. スプレッドシートアプリケーション内で1組のデータを参照する方法をコンピュータに実行させるためのコンピュータ実行可能命令を記録したコンピュータ読み取り可能な記憶媒体であって、
    前記コンピュータ実行可能命令は
    前記スプレッドシートアプリケーションへの入力としてアプリケーションの数式を受け取るステップであって、前記アプリケーションの数式は、1つまたは複数の引数を含む、ステップと、
    1つまたは複数の意味指定を受け取るステップであって、前記1つまたは複数の意味指定は、第1のデータ構造内のデータの1つまたは複数の項目を記述し、前記アプリケーションの数式の1つまたは複数の引数は、前記1つまたは複数の意味指定を含む、ステップと、
    前記データ構造に対する構造的参照を自動的に作成するステップと、
    前記1つまたは複数の意味指定を前記構造的参照と関連付けるステップであって、前記関連付けるステップは、特定の構文を含むユーザ入力の意味指定から1組のコンテキスト情報を生成すること、および少なくとも1つの数式において前記構造的参照を使用することであって、前記スプレッドシートアプリケーションは前記構造的参照を前記データ構造に自動的にマッピングすること、のうち少なくとも1つを含む、ステップと、
    スプレッドシート内のコンテキスト情報が前記データに近似する時を判定するステップと、
    コンテキスト情報が前記データに近似する時、どのセルが前記データを含み、およびどのセルがデータラベルを含むかを評価するコンテキストを提供し、前記構造的参照をアップデートするステップであって、前記データラベルおよび前記データがリンクされたままである、ステップと、
    前記データがデータベースに格納される時、前記データ内の曖昧さを判定するステップであって、前記曖昧さは、前記1つまたは複数の意味指定が重複キャプションを含むために生じる、ステップと、
    前記データ内の曖昧さが重複キャプションを含む前記1つまたは複数の意味指定に起因する時、修飾語句の使用によって前記1つまたは複数の意味指定の曖昧さをなくすことにより、修正された意味指定を作成するステップと、
    前記1つまたは複数の意味指定または前記修正された意味指定と、前記構造的参照との間の関連を格納するステップと、
    前記1つまたは複数の意味指定によって参照される新たなデータ構造を判定するステップであって、前記新たなデータ構造は、前記データの1つまたは複数の項目と、前記データの1つまたは複数の項目に対する1つまたは複数の変更とを含む、ステップと、
    前記新たなデータ構造を判定するステップに応答して、前記1つまたは複数の意味指定に関連付けられる新たな構造的参照を作成するステップであって、前記新たな構造的参照は、前記新たな構造的参照によって参照される前記新たなデータ構造からデータの1つまたは複数の項目を検索する前記新たな構造的参照内に、前記データの1つまたは複数の項目と、前記データの1つまたは複数の項目に対する1つまたは複数の変更とを含む、ステップと、
    前記新たなデータ構造からの前記データの1つまたは複数の項目で前記アプリケーションの数式を実行し、結果を作成するステップと、
    前記結果を表示するステップと
    含むことを特徴とするコンピュータ読み取り可能な記憶媒体。
  17. 前記意味指定は、リスト、テーブル、フィールド、メンバ、列、行、1つまたは複数のセル、または次元のうちの1つを記述することを特徴とする請求項16に記載のコンピュータ読み取り可能な記憶媒体。
  18. 前記意味指定は、リスト名、テーブル名、行の名前、列の名前、セル名、行位置、セル位置、列位置、またはデータ詳細のうちの1つまたは複数を含むことを特徴とする請求項16に記載のコンピュータ読み取り可能な記憶媒体。
  19. 前記意味指定は、メタデータの1つまたは複数の項目を記述することを特徴とする請求項16に記載のコンピュータ読み取り可能な記憶媒体。
  20. 前記構造的参照は、データの前記1つまたは複数の項目の前記データ構造の位置を指すことを特徴とする請求項16に記載のコンピュータ読み取り可能な記憶媒体。
  21. 前記データ構造の前記位置は、列、行、または1つまたは複数のセルの位置であることを特徴とする請求項20に記載のコンピュータ読み取り可能な記憶媒体。
  22. 前記データ構造は、前記意味指定によって識別されるテーブルの構造要素であることを特徴とする請求項16に記載のコンピュータ読み取り可能な記憶媒体。
  23. 構造要素のタイプは、リスト、テーブル、フィールド、メンバ、列、行、1つまたは複数のセル、または次元のうちの1つまたは複数を含むことを特徴とする請求項22に記載のコンピュータ読み取り可能な記憶媒体。
  24. 前記構造的参照は、無制限の数のセルであることを特徴とする請求項16に記載のコンピュータ読み取り可能な記憶媒体。
  25. 1つまたは複数の構造的参照に含まれるデータに対する変更を受け取るステップと、
    1つまたは複数の構造的参照を自動的に調節して、既存のデータの1つまたは複数の項目に対する参照を維持するステップと
    をさらに含むことを特徴とする請求項16に記載のコンピュータ読み取り可能な記憶媒体。
  26. 前記1つまたは複数の構造的参照を確立するのに使用される前記1つまたは複数の意味指定によって記述されるデータ構造の部分である追加データを含むように、前記1つまたは複数の構造的参照を自動的に調節するステップを含むことを特徴とする請求項25に記載のコンピュータ読み取り可能な記憶媒体。
  27. 前記構造的参照が、前記構造的参照を確立するのに使用される前記1つまたは複数の意味指定の集合としてユーザに提供されることを特徴とする請求項16に記載のコンピュータ読み取り可能な記憶媒体。
  28. 前記1つまたは複数意味指定が曖昧である場合、前記構造的参照が作成されないことを特徴とする請求項16に記載のコンピュータ読み取り可能な記憶媒体。
  29. 前記意味指定が2つ以上のデータ構造を指す場合、前記意味指定は曖昧であることを特徴とする請求項28に記載のコンピュータ読み取り可能な記憶媒体。
  30. スプレッドシート内のデータに対する参照をディスプレイ装置上に表示するコンピュータシステムが実行する方法であって、
    前記方法は、
    データ構造の1つまたは複数の要素を記述する1つまたは複数の意味指定をユーザから受け取るステップと、
    前記1つまたは複数の意味指定に関連付けられる、前記データ構造の前記要素に対する構造的参照を作成するステップであって、前記作成するステップは、特定の構文を含むユーザ入力の意味指定から1組のコンテキスト情報を生成すること、および少なくとも1つの数式において前記構造的参照を使用することであって、前記スプレッドシートアプリケーションは前記構造的参照を前記データ構造に自動的にマッピングすること、のうち少なくとも1つを含む、ステップと、
    スプレッドシート内のコンテキスト情報が前記データに近似する時を判定するステップと、
    コンテキスト情報が前記データに近似する時、どのセルが前記データを含み、およびどのセルがデータラベルを含むかを評価するコンテキストを提供し、前記構造的参照をアップデートするステップであって、前記データラベルおよび前記データがリンクされたままである、ステップと、
    前記データがデータベースに格納される時、前記データ内の曖昧さを判定するステップであって、前記曖昧さは、前記1つまたは複数の意味指定が重複キャプションを含むために生じる、ステップと、
    前記データ内の曖昧さが重複キャプションを含む前記1つまたは複数の意味指定に起因する時、修飾語句の使用によって前記1つまたは複数の意味指定の曖昧さをなくすことにより、修正された意味指定を作成するステップと、
    前記1つまたは複数の意味指定または前記修正された意味指定の集合として前記構造的参照を前記ディスプレイ装置上に表示するステップと
    前記データ構造の1つまたは複数の要素に対する1つまたは複数の変更を受け取るステップと、
    新たな構造的参照を作成するステップと、
    前記1つまたは複数の意味指定の集合として前記新たな構造的参照を前記ディスプレイ装置上に表示するステップと
    を含むことを特徴とする方法。
  31. 前記構造的参照を使用するオペレーションを受け取るステップと、
    前記構造的参照を参照する前記1つまたは複数の意味指定の前記集合と共に前記オペレーションを表示するステップであって、前記1つまたは複数の意味指定は、前記オペレーション内の引数の集合を形成するステップと
    前記オペレーションの結果を表示するステップと、
    前記新たな構造的参照を作成したことに応答して、前記オペレーションの新たな結果を表示するステップと、
    前記新たな構造的参照を作成したことに応答して、前記新たな構造的参照を参照する前記1つまたは複数の意味指定の前記集合と共に前記オペレーションを表示するステップと
    をさらに含むことを特徴とする請求項30に記載の方法。
JP2005183580A 2004-09-30 2005-06-23 スプレッドシートの数式内の動的データを参照する方法 Expired - Fee Related JP4936685B2 (ja)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
JP2006107444A JP2006107444A (ja) 2006-04-20
JP4936685B2 true JP4936685B2 (ja) 2012-05-23

Family

ID=35563775

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005183580A Expired - Fee Related JP4936685B2 (ja) 2004-09-30 2005-06-23 スプレッドシートの数式内の動的データを参照する方法

Country Status (5)

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

Families Citing this family (89)

* 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 国际商业机器公司 数据组织、查询、呈现、存档、恢复、删除、提炼方法及装置和系统
US8204895B2 (en) * 2006-09-29 2012-06-19 Business Objects Software Ltd. Apparatus and method for receiving a report
US8126887B2 (en) * 2006-09-29 2012-02-28 Business Objects Software Ltd. Apparatus and method for searching reports
US7899837B2 (en) 2006-09-29 2011-03-01 Business Objects Software Ltd. Apparatus and method for generating queries and reports
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
US7966555B2 (en) * 2007-08-06 2011-06-21 Apple Inc. Context sensitive delimiter insertion when adding references
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
US20090044090A1 (en) * 2007-08-06 2009-02-12 Apple Inc. Referring to cells using header cell values
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
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
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
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
EP2759941A1 (en) 2010-04-10 2014-07-30 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
CN103299292B (zh) * 2010-12-02 2016-01-20 Sk电信有限公司 用于处理自然语言和数学公式的方法及其设备
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
US9811516B2 (en) * 2010-12-14 2017-11-07 Microsoft Technology Licensing, Llc Location aware spreadsheet actions
US9898454B2 (en) 2010-12-14 2018-02-20 Microsoft Technology Licensing, Llc Using text messages to interact with spreadsheets
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 用友软件股份有限公司 数据处理装置和方法
EP2761498A4 (en) 2011-09-30 2015-08-26 Cirro Inc TABLE CALCULATION SHEET BASED DATA STORAGE 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 재생 장치 및 방법
WO2014093831A2 (en) * 2012-12-14 2014-06-19 Thomson Reuters (Markets) Llc Dynamic function builder
US10210151B2 (en) 2012-12-17 2019-02-19 Thomson Reuters (Grc) 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
US9026897B2 (en) 2013-07-12 2015-05-05 Logic9S, Llc Integrated, configurable, sensitivity, analytical, temporal, visual electronic plan system
US9116931B2 (en) 2013-07-12 2015-08-25 Logic9S, Llc Integrated, configurable, 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
US10509858B1 (en) * 2015-03-15 2019-12-17 Sigma Sciences Limited Data processing in spreadsheet worksheets
US10997364B2 (en) 2015-11-02 2021-05-04 Microsoft Technology Licensing, Llc Operations on sound files 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
US10466868B2 (en) 2016-04-27 2019-11-05 Coda Project, Inc. Operations log
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
US11327928B2 (en) 2017-10-27 2022-05-10 Microsoft Technology Licensing, Llc Dynamic display of file sections based on user identities
US10839148B2 (en) 2017-10-27 2020-11-17 Microsoft Technology Licensing, Llc Coordination of storyline content composed in multiple productivity applications
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
US11443106B2 (en) 2018-09-20 2022-09-13 International Business Machines Corporation Intelligent normalization and de-normalization of tables for multiple processing scenarios
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
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
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
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

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 富士通株式会社 表計算処理装置
JPH076162A (ja) * 1993-02-18 1995-01-10 Fuji Xerox Co Ltd 表生成装置
JPH06243130A (ja) * 1993-02-18 1994-09-02 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 表形式データファイルの参照処理システムと表形式データファイルの参照処理方法と表形式データファイルの参照処理プログラム
AU2002313103A1 (en) 2002-05-16 2003-12-02 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
EP1643375A2 (en) 2006-04-05
CN1755679B (zh) 2013-08-14
CN1755679A (zh) 2006-04-05
US7415481B2 (en) 2008-08-19
KR20060048710A (ko) 2006-05-18
KR101130458B1 (ko) 2012-07-02
EP1643375A3 (en) 2008-03-05
US20060069696A1 (en) 2006-03-30
JP2006107444A (ja) 2006-04-20

Similar Documents

Publication Publication Date Title
JP4936685B2 (ja) スプレッドシートの数式内の動的データを参照する方法
US7702997B2 (en) Spreadsheet fields in text
US7549115B2 (en) System and method for integrated spreadsheets and word processing tables
US7350141B2 (en) User interface for integrated spreadsheets and word processing tables
US10452768B2 (en) Managing source annotation metadata
CA2669479C (en) Generating end-user presentations from structured data
Edhlund Nvivo 9 essentials
US20090303239A1 (en) Methods and systems for creating and editing a graph data structure
CN110738037A (zh) 用于自动生成电子表格的方法、装置、设备及存储介质
KR20080043792A (ko) 데이터베이스로의 질의를 통한 자동 완성
JP2006178946A (ja) ワークブックを表現するためのファイルフォーマット、方法およびコンピュータプログラム製品
CA2526593A1 (en) Management and use of data in a computer-generated document
WO2009152499A2 (en) Methods and systems for handling annotations and using calculation of addresses in tree-based structures
JP2006172446A (ja) 複合データアクセス
US20040111666A1 (en) Software replicator functions for generating reports
US20050086638A1 (en) Method and system for editing column oriented programming language statements
US20220207092A1 (en) Computer service for indexing threaded comments with pagination support
Clegg et al. Release 2.1 of SAS® Add-In for Microsoft Office–Bringing Microsoft® PowerPoint into the Mix
DeMarco PivotTables

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110301

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110531

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110603

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110701

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20111115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20111115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120127

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120214

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120221

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150302

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees