(57)【要約】【課題】  ユーザがテーブル、テーブル内のデータの列、テーブルのヘッダ、テーブルの合計、ＰｉｖｏｔＴａｂｌｅ（登録商標）、およびＰｉｖｏｔＴａｂｌｅ（登録商標）データの部分を参照することを可能にする。【解決手段】  データ構造内のデータの１つまたは複数の項目を記述する１組のコンテキスト情報を命名する１つまたは複数の意味指定を受け取り、構造的参照を自動的に作成する。また、コンテキスト情報を構造的参照と関連付ける。【選択図】  図１Ａ
2006107444.tif 000002
【特許請求の範囲】
【請求項１】
１組のデータを参照する方法であって、
１つまたは複数の意味指定を受け取るステップであって、前記１つまたは複数の意味指定は、データ構造内のデータの１つまたは複数の項目を記述するステップと、
前記データ構造に対する構造的参照を自動的に作成するステップと、
前記意味指定を前記構造的参照と関連付けるステップと
を含むことを特徴とする方法。
【請求項２】
前記意味指定は、リスト、テーブル、フィールド、メンバ、列、行、１つまたは複数のセル、または次元のうちの１つを記述することを特徴とする請求項１に記載の方法。
【請求項３】
前記意味指定は、リスト名、テーブル名、行の名前、列の名前、セル名、行位置、セル位置、列位置、またはデータ詳細のうちの１つまたは複数を含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記意味指定は、メタデータの１つまたは複数の項目を記述することを特徴とする請求項１に記載の方法。
【請求項５】
前記構造的参照は、データの前記１つまたは複数の項目の前記データ構造の位置を指すことを特徴とする請求項１に記載の方法。
【請求項６】
前記データ構造の前記位置は、列、行、または１つまたは複数のセルの位置であることを特徴とする請求項５に記載の方法。
【請求項７】
前記データ構造は、前記意味指定によって識別されるテーブルの構造要素であることを特徴とする請求項１に記載の方法。
【請求項８】
構造要素のタイプは、リスト、テーブル、フィールド、メンバ、列、行、１つまたは複数のセル、または次元のうちの１つまたは複数を含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記構造的参照は、無制限の数のセルであることを特徴とする請求項１に記載の方法。
【請求項１０】
１つまたは複数の構造的参照に含まれるデータに対する変更を受け取るステップと、
１つまたは複数の構造的参照を自動的に調節して、既存のデータの１つまたは複数の項目に対する参照を維持するステップと
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項１１】
前記１つまたは複数の構造的参照を確立するのに使用される前記１つまたは複数の意味指定によって記述されるデータ構造の部分である追加データを含むように、前記１つまたは複数の構造的参照を自動的に調節するステップを含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
前記構造的参照が、前記構造的参照を確立するのに使用される前記１つまたは複数の意味指定の集合としてユーザに提供されることを特徴とする請求項１に記載の方法。
【請求項１３】
前記構造的参照がアプリケーションの数式に含まれることを特徴とする請求項１に記載の方法。
【請求項１４】
前記アプリケーションの数式が、前記構造的参照を確立するのに使用される１つまたは複数の意味指定の集合を含む１つまたは複数の引数を入力するユーザに提供されることを特徴とする請求項１３に記載の方法。
【請求項１５】
前記意味指定のうち１つまたは複数があいまいである場合、前記構造的参照が作成されないことを特徴とする請求項１に記載の方法。
【請求項１６】
前記意味指定が２つ以上のデータ構造を指す場合、前記意味指定はあいまいであることを特徴とする請求項１５に記載の方法。
【請求項１７】
１つまたは複数の意味指定を受け取るステップであって、前記１つまたは複数の意味指定は、データ構造内のデータの１つまたは複数の項目を記述するステップと、
前記データ構造に対する構造的参照を自動的に作成するステップと、
前記意味指定を前記構造的参照と関連付けるステップと
を含む各ステップを実行するコンピュータ実行可能命令を有することを特徴とするコンピュータ可読媒体。
【請求項１８】
前記意味指定は、リスト、テーブル、フィールド、メンバ、列、行、１つまたは複数のセル、または次元のうちの１つを記述することを特徴とする請求項１５に記載のコンピュータ可読媒体。
【請求項１９】
前記意味指定は、リスト名、テーブル名、行の名前、列の名前、セル名、行位置、セル位置、列位置、またはデータ詳細のうちの１つまたは複数を含むことを特徴とする請求項１５に記載のコンピュータ可読媒体。
【請求項２０】
前記意味指定は、メタデータの１つまたは複数の項目を記述することを特徴とする請求項１５に記載のコンピュータ可読媒体。
【請求項２１】
前記構造的参照は、データの前記１つまたは複数の項目の前記データ構造の位置を指すことを特徴とする請求項１５に記載のコンピュータ可読媒体。
【請求項２２】
前記データ構造の前記位置は、列、行、または１つまたは複数のセルの位置であることを特徴とする請求項１９に記載のコンピュータ可読媒体。
【請求項２３】
前記データ構造は、前記意味指定によって識別されるテーブルの構造要素であることを特徴とする請求項１５に記載のコンピュータ可読媒体。
【請求項２４】
構造要素のタイプは、リスト、テーブル、フィールド、メンバ、列、行、１つまたは複数のセル、または次元のうちの１つまたは複数を含むことを特徴とする請求項２１に記載のコンピュータ可読媒体。
【請求項２５】
前記構造的参照は、無制限の数のセルであることを特徴とする請求項１５に記載のコンピュータ可読媒体。
【請求項２６】
１つまたは複数の構造的参照に含まれるデータに対する変更を受け取るステップと、
１つまたは複数の構造的参照を自動的に調節して、既存のデータの１つまたは複数の項目に対する参照を維持するステップと
をさらに含むことを特徴とする請求項１５に記載のコンピュータ可読媒体。
【請求項２７】
前記１つまたは複数の構造的参照を確立するのに使用される前記１つまたは複数の意味指定によって記述されるデータ構造の部分である追加データを含むように、前記１つまたは複数の構造的参照を自動的に調節するステップを含むことを特徴とする請求項２４に記載のコンピュータ可読媒体。
【請求項２８】
前記構造的参照が、前記構造的参照を確立するのに使用される前記１つまたは複数の意味指定の集合としてユーザに提供されることを特徴とする請求項１５に記載のコンピュータ可読媒体。
【請求項２９】
前記構造的参照がアプリケーションの数式に含まれることを特徴とする請求項１５に記載のコンピュータ可読媒体。
【請求項３０】
前記アプリケーションの数式が、前記構造的参照を確立するのに使用される１つまたは複数の意味指定の集合を含む１つまたは複数の引数を入力するユーザに提供されることを特徴とする請求項２７に記載のコンピュータ可読媒体。
【請求項３１】
前記意味指定のうち１つまたは複数があいまいである場合、前記構造的参照が作成されないことを特徴とする請求項１７に記載のコンピュータ可読媒体。
【請求項３２】
前記意味指定が２つ以上のデータ構造を指す場合、前記意味指定はあいまいであることを特徴とする請求項３１に記載のコンピュータ可読媒体。
【請求項３３】
スプレッドシート内のデータに対する参照をディスプレイ装置上に表示するコンピュータシステムでの方法であって、
前記データ構造の１つまたは複数の要素を記述する１つまたは複数の意味指定をユーザから受け取るステップと、
前記データ構造の前記要素に対する構造的参照を作成するステップと、
前記１つまたは複数の意味指定の集合として前記構造的参照を表示するステップと
を含むことを特徴とする方法。
【請求項３４】
前記構造的参照を使用するオペレーションを受け取るステップと、
前記構造的参照を参照する前記１つまたは複数の意味指定の前記集合と共に前記オペレーションを表示するステップであって、前記１つまたは複数の意味指定は、前記オペレーション内の引数の集合を形成するステップと
をさらに含むことを特徴とする請求項２９に記載の方法。
【請求項３５】
前記構造的参照によって参照されるデータの１つまたは複数の項目に対する１つまたは複数の変更を受け取るステップと、
前記構造的参照を変更して前記データに対する前記変更を反映するステップと、
前記１つまたは複数の意味指定の前記集合と共に変更後の構造的参照を表示するステップと
をさらに含むことを特徴とする請求項２９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にはスプレッドシートソフトウェアまたはアプリケーションの分野に関する。より詳細には、本発明は、セルおよびテーブルのヘッダおよびＭｉｃｒｏｓｏｆｔ（登録商標）ＰｉｖｏｔＴａｂｌｅ（登録商標）内のデータまたはデータの部分を参照するための命名規則に関する。
【背景技術】
【０００２】
スプレッドシート（表処理や表計算）ソフトウェアまたはアプリケーションは比較的よく知られ、有用なツールである。典型的なスプレッドシートアプリケーションは、行および列として配置されたデータを取り込み、表示し、操作することによって物理的スプレッドシートをシミュレートする。列と行の交点がセルである。スプレッドシート内のセルは、数値、文字列、エラー値、またはブランク値を含むことができる。さらに、セルは、他のセル内のデータに対して作用してその結果を表示することのできる数式も含むことができる。こうした数式は、ユーザがデータを利用する助けになる計算およびビジネス論理をユーザが作成することを可能にする。
【０００３】
数式は、スプレッドシート内のエリアからデータをインポートする。データを演算にインポートするために、スプレッドシートは一般に、数式が作用する１組のデータを指定する。遺憾ながら、現在のスプレッドシートアプリケーションは、数式中で使用するデータのブロックを指定する場合にいくつかの重大な欠点を有する。
【０００４】
現在のスプレッドシートでは、データの指定はいくつかの異なる仕方で行うことができる。まず、ユーザは、セル「範囲」に対する参照を利用することができる。参照は、データのブロックを指定するために、スプレッドシート内のデータの、セル座標によって指定される位置を使用する１組のデータに対するポインタである。セル範囲は、シート内のセルの座標によって指定される連続的ブロック中の１つまたは複数のセルである。例えば、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｅｘｃｅｌスプレッドシートアプリケーションでは、ユーザは、行番号および列文字でセルを指定することができる。ユーザは、範囲を指定するコロンなどの演算子を使用して複数のセルを指定することができる。行番号および列文字は、演算子と共に、または演算子なしに、データに関する位置座標として機能する。行番号、列文字、および演算子の組合せを使用して、ユーザは、スプレッドシート内のデータのブロックを指定することができる。現在のスプレッドシートでの典型的な数式は「＝ＡＶＥＲＡＧＥ（Ｃ６  Ｃ１８）」であり、これは、セルＣ６からセルＣ１８までのセル範囲内のデータの平均を計算する。
【０００５】
次に、ユーザは、命名機能を利用して、「名前」を有するデータまたは「名前付き範囲」内のデータを参照することができる。Ｍｉｃｒｏｓｏｆｔ（登録商標）のＥｘｃｅｌ（登録商標）スプレッドシートアプリケーションなどのいくつかのスプレッドシートアプリケーションでの命名機能は、ユーザが特定のセル範囲または数式についての名前を作成することを可能にする。本質的に、ユーザは、一定の座標を有するセル範囲を選ぶ。ユーザは、そのセル範囲に「命名」するようにスプレッドシートアプリケーションに命令する。次いでスプレッドシートアプリケーションは、その一定の座標を有するセル範囲にその名前をリンクする。ユーザがセル範囲についての名前を作成すると、ユーザは、その一定の座標を有するデータを参照するために数式内でその名前を使用することができる。例えば、ユーザは、セル範囲Ｃ６からＣ１８について「Ｈｅｉｇｈｔｓ」と呼ばれる名前を作成することができ、「＝ＡＶＥＲＡＧＥ（Ｈｅｉｇｈｔｓ）」などの数式内でそのセル範囲を指定するのにその名前を使用することができる。
【０００６】
次に、ユーザは、自然言語の数式（ＮＬＦ（Ｎａｔｕｒａｌ  Ｌａｎｇｕａｇｅ  Ｆｏｒｍｕｌａ）を利用することができる。ＮＬＦは、スプレッドシート内のデータ付近のセル内に位置するユーザ作成のラベルでそのデータを参照する手段である。ユーザは、列ヘッダまたは行ヘッダなどスプレッドシート内にデータラベルを配置することができる。次いでユーザは、数式内でラベルを使用することができる。スプレッドシートアプリケーションは、スプレッドシート内のどのセルがそのラベルによって記述されるかを判定し、数式内で使用するために、記述されるセルをセル範囲に分解する。したがって、ユーザがセルＣ５  Ｃ１８で値「Ｈｅｉｇｈｔ」、「２６」、「３０」、「２２」、「２７」などを有する場合、ユーザは、数式内で「Ｈｅｉｇｈｔ」を参照することができる。スプレッドシートアプリケーションは、必要なセル範囲をセルＣ６からＣ１８と分解することができる。
【０００７】
最後に、ユーザは参照「関数」を利用することができる。参照関数は参照ではないが、データまたは指定の１つのデータに対する参照を返すプロセスである。参照を返すプロセスのオペレーションは、ユーザがその関数を入力する場合に入力することのできる１組の引数に従って調節または変更される。引数により、スプレッドシートアプリケーションがどのセルを返すかを判定することが可能となる。
【０００８】
参照を返す関数の２つの例は、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｅｘｃｅｌスプレッドシートアプリケーションで提供される「ＯＦＦＳＥＴ」関数および「ＧＥＴＰＩＶＯＴＤＡＴＡ」関数である。ＯＦＦＳＥＴ関数は、セルまたはセルの範囲から指定の行数および列数にある範囲に対する参照を返す。ＯＦＦＳＥＴ関数から返される参照は、単一のセルまたはセルの範囲でよい。ＯＦＦＳＥＴ関数は、ユーザが、返すべき行数および列数を指定する引数を入力することを可能にする。
【０００９】
一方、「ＧＥＴＰＩＶＯＴＤＡＴＡ」関数は、ＰｉｖｏｔＴａｂｌｅ（登録商標）テーブル内のデータの単一セルをユーザが参照するのを容易にするためのものである。ＧＥＴＰＩＶＯＴＤＡＴＡ関数から返されるデータは、ＰｉｖｏｔＴａｂｌｅ（登録商標）テーブルがそれに基づくデータがリフレッシュされた場合（新しいデータ値を組み込むために更新された場合）に変化しない。ＧＥＴＰＩＶＯＴＤＡＴＡ関数は、ＰｉｖｏｔＴａｂｌｅ（登録商標）テーブルのメタデータを使用することによって単一セル内のデータを見つける。メタデータは、データの座標ではなく、データに対応する「項目」および「フィールド」の「名前」である。「項目」は、テーブル内の行ヘッダまたは列ヘッダと類似の、ＰｉｖｏｔＴａｂｌｅテーブル内のコンピュータ生成のラベルである。「フィールド」は、１つまたは複数の項目を組み込むことができ、および／または記述することができるコンピュータ生成のラベルである。フィールドは、データのいくつかの行または列をカバーするテーブル内のヘッダと類似する。ＧＥＴＰＩＶＯＴＤＡＴＡ関数の一例を挙げると、ユーザは、数式「＝ＧＥＴＰＩＶＯＴＤＡＴＡ（“Ｈｅｉｇｈｔ”，Ｓｈｅｅｔ１！＄Ａ＄３，“Ｐｅｒｓｏｎ”，“Ｊｏｈｎ”）」をタイプインすることにより、ＰｉｖｏｔＴａｂｌｅ（登録商標）テーブル内のＪｏｈｎの身長に関するデータを要求することができる。ただし「Ｊｏｈｎ」は、「Ｐｅｒｓｏｎ」という名前のフィールド内の項目である。ＧＥＴＰＩＶＯＴＤＡＴＡ関数式は、返される参照を破壊することなくＰｉｖｏｔＴａｂｌｅ（登録商標）テーブル内のデータを異なるセルに移動することを可能にする。返される参照は、セルの位置ではなくセルのメタデータに基づくからである。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
スプレッドシートアプリケーションでデータを指定する上記の方法のすべてには重大な欠点が存在する。上記の方法のすべては、追加されるデータを含むように指定を調整することができない。それぞれの方法は、追加するデータを指定に含めるというユーザの意図を解釈することができないからである。ユーザのデータを含むセル範囲が新しいデータの追加のために変化した場合、データを指定する上記の方法を使用する数式を手動で変更してセル範囲の変化を反映しなければならない。指定が更新されない場合、数式が必要なデータのセルをもはや含まないので誤りが導入される。
【００１１】
例えば、ユーザが現在は列Ｃにあるデータの平均を得ることを望む場合、列Ｃ内のすべてのデータがセルＣ６からＣ１８に位置するとして、ユーザは数式「ＡＶＥＲＡＧＥ（Ｃ６  Ｃ１８）」を入力することができる。ユーザは、この数式が列Ｃ内のデータの平均を返すことを期待する。ここで、ユーザが手動または何らかのオペレーションによって列ＣのセルＣ１９からＣ２２内にデータを追加した場合、ユーザはそれでもなお、入力した数式が列Ｃ内のすべてのデータの平均を返すことを期待する。遺憾ながら、数式中のセル範囲は依然としてセルＣ６からＣ１８内のデータだけを平均し、すなわちセルＣ１９からＣ２２内のデータを除外するので、この数式はユーザの期待通りには動作しない。スプレッドシートアプリケーションはユーザの期待が常に参照内に新しいデータを含めることであるかどうかを判定することができないので、こうした状況により、ユーザは、数式中のセル範囲の座標を手動で変更することを求められる。したがって、ユーザは、「＝ＡＶＥＲＡＧＥ（Ｃ６  Ｃ２２）」と読み替えるように数式を手動で編集しなければならない。頻繁に変化するデータを伴う多数の数式をユーザが有する場合、この編集は困難または不可能である。現在利用可能なすべてのタイプの参照（セルの座標によるセルへの参照、名前付き範囲、ＮＬＦ、および参照を返す関数を含む）は、セル範囲を更新できないという難点がある。
【００１２】
さらに、上述の命名機能のさらなる欠点は、ユーザが各「名前付き範囲」を手動で作成し維持しなければならないことである。例えば、ユーザは、まずセルＣ６からＣ１８内に身長のリストを作成し、次いでデータを指定する「Ｈｅｉｇｈｔｓ」と呼ばれる名前付き範囲を作成しなければならない。遺憾ながら、ユーザがデータを更新する場合、例えばユーザがセルＣ１９からＣ２２にデータを追加する場合、ユーザは、Ｃ６からＣ２２までのすべてのセルを含むように名前付き範囲を手動で更新しなければならない。
【００１３】
さらに、ＮＬＦは、名前付き範囲に伴う問題の一部の助けになるが、他の問題を導入する。ＮＬＦはしばしばあいまいである。スプレッドシート内の２つのラベルが同一名を有する場合、またはラベルが列および行中のデータを記述することができる場合、ＮＬＦは、ユーザが期待するセル範囲とは異なるセル範囲を指定することがある。例えば、ＮＬＦ参照は、第２のラベルを有する他のセル範囲を指すことがあり、またはユーザが期待するデータの列ではなく、データの行を指すことがある。
【００１４】
さらに、ユーザが入力するラベルとスプレッドシートアプリケーションによって選択されたセル範囲との間の関連付けが、ＮＬＦ（ラベルまたはデータではない）が作成または変更されるときに推論される。したがって、あるＮＬＦで使用されるラベルがあるセル範囲を指すことがあり、一方、他のＮＬＦで使用される同一のラベルが全く異なるセル範囲を指すことがある。例えば、ラベル「Ｈｅｉｇｈｔｓ」がセルＣ５内にあり、データがセルＣ６からＣ１８に位置したとして（セルＣ１９にはデータがない）、ユーザが数式「＝ＡＶＥＲＡＧＥ（Ｈｅｉｇｈｔｓ）」を入力した場合、ユーザは、数式が「Ｈｅｉｇｈｔｓ」という語で始まる列内のデータの平均を返すと期待する。ここで、ユーザが手動または何らかのオペレーションによってデータを列ＣのセルＣ１９からＣ２２内に追加した場合、ユーザはそれでもなお、「Ｈｅｉｇｈｔｓ」が「Ｈｅｉｇｈｔｓ」で始まる列内のすべてのデータを指すことを期待する。遺憾ながら、数式中のセル範囲は依然としてセルＣ６からＣ１８内のデータを平均するだけであり、すなわちセルＣ１９からＣ２２内のデータは除外するので、この数式はユーザの期待通りには機能しない。しかし、ユーザがセルＣ１９からＣ２２内にデータを追加した後に別のセルに全く同じ数式を入力した場合、ユーザは、セルＣ６からＣ２２内のデータを平均することになる。したがって、ユーザは、全く同じに見えるが、一方は正しい結果（「＝ＡＶＥＲＡＧＥ（Ｃ６  Ｃ２２）」と同等）を返し、他方は正しくない結果（「＝ＡＶＥＲＡＧＥ（Ｃ６  Ｃ１８）」と同等）を返す、ＮＬＦに伴う２つの数式を有することができる。したがって、ＮＬＦを利用するユーザは、数式が参照するのは厳密にどのセルかを明確に知らないという問題を抱える。
【００１５】
さらに、ＯＦＦＳＥＴやＧＥＴＰＩＶＯＴＤＡＴＡなどの参照を返す関数はいくつかの他の制限を有する。参照を返す関数は、スプレッドシート中のデータの変化を調整しない。例えば、参照を返す関数は、項目がリネームされた場合または項目が移動された場合に調整しない。例えば、「＝ＧＥＴＰＩＶＯＴＤＡＴＡ（“Ｈｅｉｇｈｔ”，Ｓｈｅｅｔ１！＄Ａ＄３，“Ｐｅｒｓｏｎ”，“Ｊｏｈｎ”）」のように、Ｊｏｈｎの身長についての参照を返すＧＥＴＰＩＶＯＴＴＡＢＬＥ関数は、人名を「Ｊｏｈｎ」から「Ｆｒｅｄ」に変更した場合に更新されない。
【００１６】
同様に、ＯＦＦＳＥＴ関数は、引数で指定されたセルを見つけ、指定のセルから所望のセルに行番号および列番号を移動することにより、所望のセルに対する参照を返すことができる。行または列が指定のセルと所望のセルの間に挿入または削除された場合、あるいは指定のセルまたは所望のセルが移動した場合、ＯＦＦＳＥＴ関数は、正しくない参照を返すことになる。ＯＦＦＳＥＴ関数は、スプレッドシート内で移動した行番号および列番号を調整して所望のセルを見つけることができない。
【００１７】
ＧＥＴＰＩＶＯＴＤＡＴＡ関数はまた、単一のセルに対する参照を返すことしかできない。複数のセルを参照するユーザの場合、ユーザは、多数のＧＥＴＰＩＶＯＴＤＡＴＡ関数を入力しなければならず、それは複雑となる可能性がある。例えば、ユーザは、ＰｉｖｏｔＴａｂｌｅ（登録商標）テーブルの結果の列Ｃ内のデータを平均したいと望むことがある。列Ｃ内のデータは、セルＣ６からＣ１８にあることがある。ＰｉｖｏｔＴａｂｌｅ（登録商標）テーブルリフレッシュ中にデータが移動する場合に調整されるＧＥＴＰＩＶＯＴＤＡＴＡ関数参照を使用するために、ユーザは、Ｃ６からＣ１８までのセルごとに１つのＧＥＴＰＩＶＯＴＤＡＴＡ関数を入力しなければならない。ユーザは、以下のような引数の文字列を作成しなければならない。
「＝ＡＶＥＲＡＧＥ（ＧＥＴＰＩＶＯＴＤＡＴＡ（“Ｈｅｉｇｈｔ”，Ｓｈｅｅｔ１！＄Ａ＄３，“Ｐｅｒｓｏｎ”，“Ｊｏｈｎ”），
ＧＥＴＰＩＶＯＴＤＡＴＡ（“Ｈｅｉｇｈｔ”，Ｓｈｅｅｔ１！＄Ａ＄３，“Ｐｅｒｓｏｎ”，“Ｐａｍ”），
ＧＥＴＰＩＶＯＴＤＡＴＡ（“Ｈｅｉｇｈｔ”，Ｓｈｅｅｔ１！＄Ａ＄３，“Ｐｅｒｓｏｎ”，“Ｂｉｌｌ”），
ＧＥＴＰＩＶＯＴＤＡＴＡ（“Ｈｅｉｇｈｔ”，Ｓｈｅｅｔ１！＄Ａ＄３，“Ｐｅｒｓｏｎ”，“Ｆｒｅｄ”）」
参照を返す関数を使用する数式は、参照されるデータ量が増えるにつれて極めて長く、密になる。参照を返す関数を用いてこうした数式を作成および編集することは、数式の長さのために、冗長となり、時間がかかる。
【課題を解決するための手段】
【００１８】
本発明は、データへの変更に伴って更新される、自動的に作成される意味のある参照を使用してデータを参照するシステムおよび方法の諸実施形態に関する。本発明のスプレッドシートは、ユーザがスプレッドシート内のテーブルを明示的に指定できることを追加した。テーブルまたはＰｉｖｏｔＴａｂｌｅ（登録商標）テーブルを指定できることにより、ラベル（メタデータ）とデータとの間の、推定の予期しないマッピングではなく、明示的で明確なマッピングの基礎が得られる。本発明は、参照のための基礎として明確なコンテキストおよびマッピングを使用する。本発明の諸実施形態では、参照により、ユーザが、セルを記述するユーザ作成のコンテキストを使用して、スプレッドシート内のあるセルまたはセルの配列を参照することが可能となる。例えば、ユーザは、ユーザ作成の列ヘッダ名を参照として入力することによってデータの列全体を参照することができる。本発明はまた、参照を使用する数式および計算も提供することができる。さらに、参照は、参照されるデータの変化に適応することができる。
【００１９】
本発明は、テーブル、テーブル内のデータの列、テーブルのヘッダ、テーブルの合計、ＰｉｖｏｔＴａｂｌｅ（登録商標）、およびデータのヘッダによるＰｉｖｏｔＴａｂｌｅｓ（登録商標）データの部分をユーザが参照することを可能にする、スプレッドシートプログラム内の新しいタイプの構造化された名前に関する。本発明の諸実施形態は、データ構造内のデータの１つまたは複数の項目を記述する１つまたは複数の意味指定（ｓｅｍａｎｔｉｃ  ｄｅｓｉｇｎａｔｉｏｎ）を受け取ること、構造的参照（ｓｔｒｕｃｔｕｒａｌ  ｒｅｆｅｒｅｎｃｅ）を自動的に作成すること、および意味指定を構造的参照と関連付けることを構成する１組のデータを参照する方法を含む。本発明の他の実施形態は、スプレッドシート内のデータに対する参照をディスプレイ装置上に表示するためのユーザインターフェースとの対話に関し、その対話は、データ構造の１つまたは複数の要素を記述するユーザから１つまたは複数の意味指定を受け取ること、データ構造の要素に対する構造的参照を作成すること、構造的参照を１つまたは複数の意味指定の集合として表示することを含む。
【００２０】
ある実施形態では、意味指定は、リスト、テーブル、フィールド、メンバ、列、行、１つまたは複数のセル、または次元を記述する。他の実施形態では、意味指定は、リスト名、テーブル名、行の名前、列の名前、セル名、行位置、セル位置、列位置、またはデータ詳細のうちの１つまたは複数を含む。一実施形態では、意味指定は、メタデータの１つまたは複数の項目を指す。
【００２１】
一実施形態では、構造的参照は、データの１つまたは複数の項目の位置を指す。別の実施形態では、位置は、列、行、または１つまたは複数のセルを指す。他の実施形態では、データ構造は、意味指定によって識別されるテーブルの構造要素である。別の実施形態では、構造要素のタイプは、リスト、テーブル、フィールド、メンバ、列、行、１つまたは複数のセル、または次元のうちの１つまたは複数を含む。ある実施形態では、構造的参照は、無制限の数のセルである。ある実施形態では、構造的参照が、構造的参照を確立するのに使用される１つまたは複数の意味指定の集合としてユーザに提供される。
【００２２】
ある実施形態では、この方法は、１つまたは複数の構造的参照に含まれるデータに対する変更を受け取ること、およびその１つまたは複数の構造的参照を自動的に調整して、既存のデータの１つまたは複数の項目に対する参照を維持することをさらに含む。別の実施形態では、この方法は、１つまたは複数の構造的参照を確立するのに使用される１つまたは複数の意味指定によって記述されるデータ構造の一部である追加データを含めるように、１つまたは複数の構造的参照を自動的に調整することをさらに含む。
【００２３】
ある実施形態では、構造的参照がアプリケーションの数式に含められる。別の実施形態では、ユーザに提供されるアプリケーションの数式は、構造的参照を確立するのに使用される１つまたは複数の意味指定を有する。
【００２４】
ある実施形態では、ユーザインターフェースは、構造的参照を使用するオペレーションを受け取り、構造的参照を指す１つまたは複数の意味指定の集合と共にオペレーションを表示することができる。その１つまたは複数の意味指定は、オペレーション内の引数の集合を形成する。別の実施形態では、ユーザインターフェースは、構造的参照によって参照されるデータの１つまたは複数の項目に対する１つまたは複数の変更を受け取ることができる。
【００２５】
この構造的参照はあいまいではない。ユーザは、参照および参照が指すスプレッドシートを含む数式から、厳密にどのセルが参照されているかを解釈することができる。構造的参照はまた、一貫している。同一の意味指定を含む２つの数式は常に、その意味指定をワークブック内の同一の構造または構造の同一の部分であると評価する。さらに、構造的参照は参照であって関数ではない。したがって、他の参照を使用することができるときはいつでも構造的参照を使用することができ、他の参照と同様に作用することができ、他の参照と同様に、参照されるセルを強調表示することができ、他の参照と同様に調整することができる。
【００２６】
本発明をコンピュータプロセス、コンピューティングシステム、またはコンピュータプログラム製品などの製品として実施することができる。コンピュータプログラム製品は、コンピュータシステムで可読であり、コンピュータプロセスを実行する命令のコンピュータプログラムを符号化するコンピュータ記憶媒体でよい。コンピュータプログラム製品はまた、コンピューティングシステムで可読であり、コンピュータプロセスを実行する命令のコンピュータプログラムを符号化する、搬送波上の伝播信号でもよい。
【００２７】
以下で簡潔に要約される添付の図面と、本発明の現在のところ好ましい実施形態の以下の詳細な説明と、添付の特許請求の範囲とを参照することにより、本発明およびその改善のより完全な理解を得ることができる。
【発明を実施するための最良の形態】
【００２８】
次に、本発明の諸実施形態が示されている添付の図面を参照しながら、以下で本発明をより完全に説明する。しかし、本発明は、多数の異なる形態で具体化することができ、本明細書で説明する実施形態に限定されると解釈すべきではない。むしろ、本開示が完全なものとなり、本発明の範囲を当業者に完全に伝えるように、こうした実施形態を詳細に提供し、議論する。
【００２９】
一般には、本発明の諸実施形態は、セル座標（すなわち「Ｃ６」または「Ｄ３  Ｄ１２」）または索引の代わりにコンテキストに基づいてデータを参照するが、関数ではなく依然として参照であるスプレッドシートプログラム内の構造化された名前構文に関する。本発明の諸実施形態は、データの項目を参照する新しい構造的参照、構造的参照を作成する方法、および構造的参照を実施する方法を含む。
【００３０】
本発明は、１つまたは複数のコンピュータまたはその他の装置によって実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的状況で説明することができる。一般に、プログラムモジュールは、特定のタスクを実施し、または特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。通常、プログラムモジュールの機能は、様々な実施形態で望み通りに組み合わせることができ、または分散させることができる。
【００３１】
本発明の諸態様を有するスプレッドシートアプリケーション１００の一実施形態を図１Ａおよび図１Ｂに示す。例示的スプレッドシート１００は、「Ｔａｂｌｅ１」１０４という名前のテーブル１０２を含む。テーブル１０２は、４つの列１０６および７つの行１０８を有する。ユーザは、例示的スプレッドシート１００のデータ構造に対する構造的参照を作成することができる。構造化された参照または構造的参照は、セル範囲に基づくのではなく、列、行、セルの組などのスプレッドシートデータの構造に基づくスプレッドシート中の１つまたは複数のデータ項目に対する参照である。構造的参照は、列の名前、行の名前、データセット名などの構造のメタデータを使用して参照の構造を決定することができる。ある実施形態では、メタデータは、テーブル名、列ヘッダ名、行ヘッダ名などのユーザ作成の名前でよい。
【００３２】
データ構造は、構造的参照によって記述されるスプレッドシート内の１組のデータを指す。データ構造は、列、行、テーブル、リスト、別々のスプレッドシート、別々のワークブック、メンバ、ＰｉｖｏｔＴａｂｌｅｓ（登録商標）、あるいは行または列の組によって定義されるデータの部分などを含むことができる。本発明の諸実施形態では、データ構造は、上述のデータ構造のうちの１つを占有するセルまたはセルの配列を含む。データ構造内のセルの配列は無境界でよい。言い換えれば、セルの配列は、配列の始めと終わりをブックエンドする２つのセルに対する参照を有する必要がない。
【００３３】
本発明の諸実施形態では、ユーザは、スプレッドシートアプリケーションがデータ構造を識別する助けとなる意味指定を引用することができる。スプレッドシートアプリケーションは、データ構造に対する構造的参照を作成することができる。本発明の諸実施形態では、意味指定は、ユーザ作成の列ヘッダ名のような、データ構造についてのメタデータ名である、ユーザが入力する言語記述子を指す。データ構造を以下でより完全に説明する。コンテキスト情報は、構造的参照が適用されるデータ構造を求めるのにスプレッドシートアプリケーションが使用することのできる情報を指す。本発明の諸実施形態では、ユーザ入力の意味指定は、スプレッドシートアプリケーションが１組のコンテキスト情報を生成することを可能にする。コンテキスト情報は、データの１つまたは複数の項目を記述する１つまたは複数の意味指定でよい。本発明の諸実施形態では、コンテキスト情報は、列ヘッダ名やユーザ定義のテーブル名など、ユーザによって作成される。他の実施形態では、スプレッドシートアプリケーションがＰｉｖｏｔＴａｂｌｅ（登録商標）を「ｐｉｖｏｔｔａｂｌｅ１」または「ｐｉｖｏｔｔａｂｌｅ２３」と指定する場合などにコンテキスト情報を提供することができる。したがって、意味指定は、ユーザがスプレッドシートアプリケーションに与える言語記述子であり、コンテキスト情報は、スプレッドシート内のデータ構造を特徴付ける意味指定を名前として有する１つのスプレッドシートである。以後、ユーザによって与えられ、またはスプレッドシートアプリケーションによって使用される、データ構造を識別するのに使用される言語記述子を記述するために、意味指定およびコンテキスト情報をほぼ交換可能に使用する。
【００３４】
本発明は、あいまいでないメタデータを利用する。本発明の諸実施形態では、それに関するあいまいでない意味指定を決定することのできるメタデータだけが構造的参照を作成する際に使用される。さらに、参照が指すデータの性質および範囲を、参照が指すワークブック内の構造および意味指定のテキストに基づいて明確に決定することができる。
【００３５】
例えば、図１Ａを参照すると、ユーザは列１１２内のデータを使用することを望むことがある。ユーザは、意味指定「Ｈｅｉｇｈｔ」を引用することができる。スプレッドシートアプリケーションは、スプレッドシート内の「Ｈｅｉｇｈｔ」を見つけることができる。スプレッドシートアプリケーションは、「Ｈｅｉｇｈｔ」が列１１２に関する列ヘッダ名１１０であることを認識することができる。したがって、列ヘッダ名としての「Ｈｅｉｇｈｔ」は、列１１２内のデータを記述するので、「Ｈｅｉｇｈｔ」は、スプレッドシート内の１つのコンテキスト情報である。列１１２はデータ構造である。したがって、ユーザが数式中で意味指定「Ｈｅｉｇｈｔ」を引用する場合、スプレッドシートアプリケーションは、ユーザが列１１２内のデータを使用することを望むと判断する。次いでスプレッドシートアプリケーションは、数式が計算で列１１２からのデータを使用するように、データ構造である列１１２に対する構造的参照を作成する。
【００３６】
本発明の諸実施形態では、ユーザが構造的参照を作成することができる。例えば図１Ａを参照すると、意味指定「Ｔａｂｌｅ１［Ｈｅｉｇｈｔ］」を使用することにより、強調表示された列１１２に示されているように、列１１２内のデータに対する構造的参照が作成される。テーブル名１０４である意味指定「Ｔａｂｌｅ１」を使用することにより、図１Ａに示すテーブル１０２全体のデータ構造に対する構造的参照を作成することができる。行ヘッダ名１１４である「Ｔａｂｌｅ１［Ｆｒｅｄ］」に対する意味指定は、行ヘッダ名１１４として「Ｆｒｅｄ」を有する強調表示された行１１６のデータ構造に対する構造的参照を作成することができる。ユーザがデータの単一セルを参照したい場合、ユーザは、セルの行ヘッダ名および列ヘッダ名を指す意味指定を使用することができる。ここで与えた例は、［Ｆｒｅｄ］のような角括弧内に配置された参照を示す。角括弧を使用することにより、スプレッドシートアプリケーションが、入力を、関係する構造的参照を有する意味指定として識別する助けになる。角括弧は、単にスプレッドシートで使用する例示的構文に過ぎない。意味指定および関係する構造的参照を識別するのに使用することができるその他のタイプの構文を当業者は理解されよう。
【００３７】
ユーザは、数式中で構造的参照を使用することができる。例えば、図１Ａに示すように、ユーザは、スプレッドシートに数式１２０を入力することができる。数式１２０は平均を計算する。入力した数式１２０は２つの意味指定を使用する。まず、数式１２０は、テーブル１０２を指す意味指定「Ｔａｂｌｅ１」と、列１１２を指す「Ｈｅｉｇｈｔ」を使用する。スプレッドシートは、意味指定に関係するコンテキスト情報を見つけ、構造的参照をデータ構造にマッピングする。一方の構造的参照はテーブル１０２にマッピングすることができる。他方の構造的参照は列１１２にマッピングすることができる。したがって、数式１２０は、「Ｔａｂｌｅ１」１０４と名前が付けられたテーブル１０２の、列ヘッダ名「Ｈｅｉｇｈｔ」１１０を有する列１１２内の全データの平均を計算する。平均の計算１２０の結果１２６を図１Ｂに示す。この例示的実施形態が示すように、ユーザは、スプレッドシート内のデータを参照するのにセル範囲を与える必要がない。むしろ、ユーザは、スプレッドシート内の意味指定を利用してスプレッドシート内のデータを参照することができる。
【００３８】
さらに、本発明の諸実施形態は、構造のデータ、ヘッダ、合計、小計を含む構造の各部分を個別に参照することができ、または構造の各部をデータの他の部分と共に参照することができる。したがって、一実施形態では、ユーザは特別な意味指定を使用することによって所与の列に関する合計だけを参照することができる。例えば、「合計」構造を参照するための特別の意味指定は、「Ｔａｂｌｅ１［Ｈｅｉｇｈｔ，［＃Ｔｏｔａｌ］］」のようなものでよい。ここで、合計を返す意味指定は、指定が構造の部分であって列の名前ではないことをスプレッドシートアプリケーションに示すシンボル（＃）を使用することによって列の名前と区別される。
【００３９】
本発明を実施することができる適切な動作環境の実施形態を図２に示す。この動作環境は適切な動作環境の一例に過ぎず、本発明の使用法または機能の範囲に関して何らかの制限を示唆するものではない。本発明と共に使用するのに適した他の周知のコンピューティングシステム、環境、および／または構成には、限定はしないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラム可能消費者向け電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたは装置のいずれかを含む分散コンピューティング環境などが含まれる。
【００４０】
図２を参照すると、本発明の実施形態を実施する例示的コンピューティング環境は、コンピューティング装置２００などのコンピューティング装置を含む。その最も基本的な構成では、コンピューティング装置２００は通常、少なくとも１つの処理装置２０２およびメモリ２０４を含む。コンピューティング装置２００の厳密な構成およびタイプに応じて、メモリ２０４は、揮発性（ＲＡＭなど）、不揮発性（ＲＯＭ、フラッシュメモリなど）、またはその２つの何らかの組合せとすることができる。コンピューティング装置２００の最も基本的な構成を図２の破線２０６で示す。さらに、装置２００は追加の特徴／機能も有することができる。例えば、装置２００は、限定はしないが磁気ディスクまたは光ディスクあるいはテープを含む（取外し可能および／または取外し不能な）追加の記憶装置も含むことができる。このような追加の記憶装置を、図２の取外し可能記憶装置２０８および取外し不能記憶装置２１０で示す。このようなコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、その他のデータなどの情報を記憶するための何らかの方法または技術で実装された、揮発性および不揮発性の、取外し可能および取外し不能な媒体を含む。メモリ２０４、取外し可能記憶装置２０８、および取外し不能記憶装置２１０は、すべてコンピュータ記憶媒体の例である。コンピュータ記憶媒体には、限定はしないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、またはその他のメモリ技術、ＣＤ−ＲＯＭ、デジタルバーサタイルディスク（ＤＶＤ）、またはその他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、またはその他の磁気記憶装置、あるいは、所望の情報を記憶するのに使用することができ、装置２００およびプロセッサ２０２でアクセスすることができるその他のどんな媒体も含まれる。このようなどんなコンピュータ記憶媒体も装置２００の一部とすることができる。
【００４１】
装置２００は、他の装置と通信することを可能とする通信接続２１２も含むことができる。通信接続２１２は通信媒体の一例である。通信媒体は一般に、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを、搬送波またはその他の移送機構などの被変調データ信号で具体化し、その通信媒体には任意の情報送達媒体が含まれる。「被変調データ信号」という用語は、その特性集合のうちの１つまたは複数を有する信号、または情報をその中に符号化するように変化した信号を意味する。例えば、限定はしないが、通信媒体には、有線ネットワークやダイレクトワイヤード接続などの有線媒体、ならびに音響、ＲＦ、赤外線、その他の無線媒体などの無線媒体が含まれる。
【００４２】
装置２００は、キーボード、マウス、ペン、音声入力装置、タッチ入力装置などの入力装置２１４も有することができる。ディスプレイ、スピーカ、プリンタなどの出力装置２１６も含むことができる。こうした装置は、個々に、または組み合わせてユーザインターフェース１０２を形成することができる。こうした装置はすべて当技術分野で周知であり、ここでさらに論じる必要はない。
【００４３】
コンピューティング装置２００は通常、少なくとも何らかの形態のコンピュータ可読媒体を含む。コンピュータ可読媒体は、処理装置２０２でアクセスすることのできる入手可能などんな媒体でもよい。例えば、限定はしないが、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、その他のデータなどの情報を記憶するための何らかの方法または技術で実装された、揮発性および不揮発性の、取外し可能および取外し不能な媒体を含む。上記のどんな組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【００４４】
本発明の諸態様を有するシステム３００の一実施形態の機能図を図３に示す。システム３００は、本発明の一実施形態による構造的参照を作成することができる。システム３００は、スプレッドシートアプリケーションまたはデータベースアプリケーション、あるいはプログラムなどのソフトウェアアプリケーションの一部として具体化することができる。例示的実施形態では、システム３００の各部分は、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｅｘｃｅｌスプレッドシートアプリケーションなどのスプレッドシートアプリケーションで見出される。システムアプリケーション３００はいくつかのモジュールを有する。一実施形態では、システム３００は、ユーザインターフェース３０２、データ参照モジュール３０４、数式モジュール３０６、および何らかのスプレッドシートに格納されたデータ３０８を有する。ある実施形態では、様々なモジュールが、ユーザが与える意味指定３１２から構造的参照３１０を作成するように対話する。意味指定は、データ３０８内のデータ構造３１６を識別するのに使用することのできる１組のコンテキスト情報３１４と関連付けることができる。データ構造３１６を識別した後、データ参照モジュール３０４は、そのデータ構造３１６に対する構造的参照３１０を作成することができる。
【００４５】
ある実施形態では、構造的参照３１０を数式モジュール３０６で使用することができる。数式モジュール３０６は、ユーザから受け取る数式３１８に従ってデータ３０８を操作することを助けることができる。数式３１８は、構造的参照３１０を使用して、数式３１８で使用されるデータを得ることができる。数式モジュール３０６は、構造的参照を伴う数式３２０を出力することができる。
【００４６】
本発明の諸実施形態では、構造的参照を動的に更新および変更することができる。したがって、構造的参照は、「動的データ」を参照することができる。動的データは、変更することができるがそれでもなお構造的参照で参照することができるデータ構造内の１組のデータである。構造的参照は、スプレッドシートデータの変化またはデータ構造の変化に適応することができる。しばしば、ユーザは、スプレッドシート内のデータを変更、追加、または削除する。さらに、しばしばユーザは、スプレッドシートデータが提示される仕方を操作する。構造的参照は、スプレッドシートデータの変化に適応する。構造的参照は、データ位置情報（セル範囲など）ではなくコンテキスト情報（意味参照など）に従ってデータを指すからである。したがって、データまたはデータ構造が変化するとき、構造的参照１３０は、データがスプレッドシート内の新しい位置を占有する場合であっても、新しいデータ構造を有するが同一のコンテキスト情報を有するデータに再マッピングすることができる。
【００４７】
本発明の諸実施形態では、システム３００は、数式３２０をデータ３０８に適用することができる。１組の操作後または計算後データ３２２が数式３２０を用いて作成される。システムは、データ３０８を動的に更新することができるように、構造的参照を有する計算後データ３２２を生成する。したがって、データ３０８が変化するとき、数式は、構造的参照に従って引き続き計算後データ３２２を生成することができる。
【００４８】
構造的参照を生成する方法４００の一実施形態を図４の流れ図に示す。本発明の諸実施形態では、方法４００は、提供オペレーション４０２がコンテキスト情報の１つまたは複数の項目を提供するときに開始する。この場合のコンテキスト情報は、図３に示すコンテキスト情報３１４と同様でよい。コンテキスト情報は、データ構造（データ構造３１６など）によってデータを参照することができる。ある実施形態では、ユーザは、ユーザインターフェース（３０２など）を介して１つまたは複数の意味指定（指定３１２など）を与えることができる。ある実施形態では、前述のように、コンテキスト情報を、データを記述する言語記述子を使用してデータのすべてまたは一部を指す１つまたは複数の意味指定から確立することができる。別の実施形態では、ユーザは、以下でさらに説明する半選択（ｓｅｍｉ−ｓｅｌｅｃｔｉｏｎ）またはその他のプロセスを介してコンテキスト情報を与えることができる。さらに別の実施形態では、他のアプリケーションがそのようなコンテキスト情報を与えることができ、例えばレポートを生成するためにマクロコード機能を実行することができる。そのような場合、スプレッドシートアプリケーションは、それ自体のコンテキスト情報を作成することができる。
【００４９】
意味指定の入力、すなわちコンテキスト情報の作成を実現するために、ユーザはいくつかの異なる方法を利用することができる。一実施形態では、ユーザは、キーボードインターフェースを介して意味指定をスプレッドシートアプリケーションにタイプすることによって意味指定を直接入力することができる。別の実施形態では、ユーザは、マウスまたはその他のタイプのグラフィカルユーザインターフェースを用いて行、列、テーブル、またはその他の構造を選択することができる。１組のデータをグラフィカルに選択する際に、アプリケーションは、データの選択部分を記述するヘッダ名またはその他のコンテキスト情報を判断することによってどのコンテキスト情報を使用するかを分解することができ、選択データに関する意味指定を表示することができる。この方法は、半選択と呼ばれることがある。さらに別の実施形態では、ユーザは、グラフィカルユーザインターフェースまたはその他の手段を使用して、既存の数式またはセルから構造的参照をグラフィカルにコピーし、参照を新しい数式または関数にペーストすることができる。構造的参照をコピーするために、ユーザは、意味指定をコピーおよびペーストすることができる。本発明の諸実施形態に含まれる、ユーザがコンテキスト情報を与えることのできるその他の方法を当業者は理解されよう。
【００５０】
次の判定オペレーション４０４は、コンテキスト情報に関係するデータ構造を判定する。ある実施形態では、データ構造を判定することは、コンテキスト情報を与えるのにユーザが利用する方法に依存する。ユーザが別の数式またはセルから意味指定をコピーした場合、前述のように構造的参照も新しい数式またはセルにコピーされる。しかし、ある実施形態では、ユーザは、意味指定をタイプすることでしかコンテキスト情報を与えることができない。こうした実施形態では、アプリケーションは、どんなセル、列、テーブル、リスト、行、またはその他の構造がコンテキスト情報によって記述されるかを判定しなければならない。本発明の諸実施形態では、意味指定は常に、「ＭｙＰｉｖｏｔＴａｂｌｅ」という名前のＰｉｖｏｔＴａｂｌｅ（登録商標）関数に関するメタデータタイトルである「ＭｙＰｉｖｏｔＴａｂｌｅ」などのデータ構造の名前から始まる。
【００５１】
本発明の諸実施形態では、スプレッドシートアプリケーションが参照を解析する。次いで、スプレッドシートアプリケーションは、解析される参照が構造的参照であるかどうかを判定することができる。参照が構造的参照である場合、スプレッドシートアプリケーションは、どのデータ構造がユーザが与えた名前を有するかを判定することができる。例えば、アプリケーションは、意味指定と同一または類似の名前を求めてテーブルまたはリストを探索することができる。一例を挙げると、ユーザは、図１のように数式中で名前「Ｈｅｉｇｈｔ」を与えることができる。図１のテーブル１０２の探索により、「Ｈｅｉｇｈｔ」という語の位置が列ヘッダ１１０として突き止められる。この例では、「Ｈｅｉｇｈｔ」は列Ｃ１１２内のデータに関するヘッダ１１０である。
【００５２】
次いで、スプレッドシートアプリケーションは、ユーザが命名したのはどのタイプのデータ構造かを判定することができる。例えば、データ構造は、ＰｉｖｏｔＴａｂｌｅ（登録商標）テーブル、テーブル、またはリストでよい。別の実施形態では、上述のようにデータ構造内にデータを埋め込むことができる。スプレッドシートアプリケーションは、構造（ＰｉｖｏｔＴａｂｌｅテーブルまたはテーブル）を使用して、コンテキスト情報がデータに対してスプレッドシート内にあることを判定する。コンテキスト情報がデータの上にある場合、コンテキスト情報は列のデータ構造を記述することができる。セルがデータの左側にある場合、コンテキスト情報は、行のデータ構造を記述することができる。このプロセスは、どのセルが適切なラベルを含むか、およびどの範囲のデータが所与のラベルによって参照されるかを評価する、あいまいでないコンテキストを提供する。この構造はまた、ラベルとデータ範囲がリンクされたままとなるように更新される。上記の例では、「Ｈｅｉｇｈｔ」は、図１のテーブル１０２中のデータ構造である列１１２を記述する。「Ｈｅｉｇｈｔ」は、その列の列ヘッダであるからである。コンテキスト情報をどのように使用してテーブルに関するデータ構造を識別することができるかを当業者は理解されよう。
【００５３】
別の実施形態では、ＰｉｖｏｔＴａｂｌｅ（登録商標）テーブルについて、スプレッドシートアプリケーションは、ＰｉｖｏｔＴａｂｌｅ（登録商標）テーブルの名前、ならびにフィールド内の項目間または項目の範囲間の交点を使用して、構造的参照の範囲を決定する。本発明の一実施形態では、その決定は、ＰｉｖｏｔＴａｂｌｅ（登録商標）テーブルの名前と、その後に続く、列で分離されるフィールド内の項目または項目の範囲の名前を含む角括弧とを意味的に指定することによって行われる。
【００５４】
ＰｉｖｏｔＴａｂｌｅ（登録商標）テーブルの一例は図６の表のように見えることがある。「Ｐｒｏｐｏｓｅｄ  Ｍｉｌｅｓｔｏｎｅ」６１４の項目「Ｍ２」に関する列６１０内のデータに対する参照が、「＝ＭｙＴａｂｌｅ［［Ｐｒｏｐｏｓｅｄ  Ｍｉｌｅｓｔｏｎｅ］［Ｍ２］］」によって与えられる。さらに、この範囲のデータの、フィールド「Ｐｒｏｐｏｓｅｄ  ＰＭ」６１８内の項目「Ｊｏｓｅｐｈ  Ｃｈｉｒｉｌｏｖ」６１６に関する行との交点に対する参照が、「＝ＭｙＴａｂｌｅ［［Ｐｒｏｐｏｓｅｄ  Ｍｉｌｅｓｔｏｎｅ］［Ｍ２］，［Ｐｒｏｐｏｓｅｄ  ＰＭ］［Ｊｏｓｅｐｈ  Ｃｈｉｒｉｌｏｖ］］」によって与えられる。項目の範囲を含む参照の一例は、「Ｐｒｏｐｏｓｅｄ  ＰＭ」フィールド６１８内の項目「Ａｌｌａｎ  Ｆｏｌｔｉｎｇ」６０２から「Ｃｈａｄ  Ｒｏｔｈｓｃｈｉｌｌｅｒ」６０６および「Ｍｉｌｅｓｔｏｎｅ」フィールド６１４内の「Ｍ２」項目６０２に関するセルに対する参照である。このセルの組に対する構造参照は、「＝ＭｙＴａｂｌｅ［［Ｐｒｏｐｏｓｅｄ  Ｍｉｌｅｓｔｏｎｅ］［Ｍ２］，［Ｐｒｏｐｏｓｅｄ  ＰＭ］［Ａｌｌａｎ  Ｆｏｌｔｉｎｇ］［Ｃｈａｄ  Ｒｏｔｈｓｃｈｉｌｌｅｒ］］」となる。この参照により、「Ｐｒｏｐｏｓｅｄ  ＰＭ」フィールド６１４内の項目の出現順序に関わらず、常に、「Ｐｒｏｐｏｓｅｄ  Ｍｉｌｅｓｔｏｎｅ」フィールド６１４内の「Ｍ２」項目６０２によって指定されるデータセルと、「Ｐｒｏｐｏｓｅｄ  ＰＭ」フィールド６１８内の「Ａｌｌａｎ  Ｆｏｌｔｉｎｇ」６０２から「Ｃｈａｄ  Ｒｏｔｈｓｃｈｉｌｌｅｒ」６０６までの項目との交点が得られる。参照に関して使用される構文は、例示的実施形態および例に示す構文に限定されない。参照に関して使用することのできるその他の構文を当業者は理解されよう。
【００５５】
別の実施形態では、オンライン解析処理（ＯＬＡＰ）データベース内のデータにリンクされたＰｉｖｏｔＴａｂｌｅ（登録商標）テーブルについて、ＰｉｖｏｔＴａｂｌｅ（登録商標）テーブルの一部の指定が、各次元内のメンバまたはメンバの範囲の交点を使用する。次元は、１組のデータ全体を記述するキャプションまたは記述子である。次元は、その１組のデータをさらに分類または記述する１つまたは複数のメンバを有することができる。メンバは、１組のレベルとして編成することができ、メンバが１つまたは複数の「子」メンバに対する親となることができる。本発明の諸実施形態では、ＯＬＡＰデータベースで使用される祖先という語は、階層内の任意のレベルの指定のメンバのｎ番目の親であるメンバに当てはまる。メンバおよび次元は当技術分野で周知であり、詳しくは説明しない。意味指定および関係する構造的参照は、参照が、前述のように１つの項目および１つのフィールドの組合せを単に使用するのではなく、次元と、次元の１つまたは複数のレベル内の１つまたは複数のメンバの組合せを使用することができることを除いて、上述のフィールド内の項目の指定と同様である。一実施形態では、ＯＬＡＰ  ＰｉｖｏｔＴａｂｌｅ（登録商標）テーブル内のデータに対する構造的参照は、次元内のデータを記述するすべてのメンバを含む単一の数式を含む。例えば、以下の「ＭｙＰｉｖｏｔＴａｂｌｅ」という名称のＯＬＡＰ  ＰｉｖｏｔＴａｂｌｅ（登録商標）テーブルでは、
【００５６】
【表１】
2006107444.tif 000003
【００５７】
「８３」を含むセルに対する意味指定は以下のようになる。
【００５８】
「＝ＭｙＰｉｖｏｔＴａｂｌｅ［［ＳｈｉｐＣｏｕｎｔｒｙ］［Ｂｒａｚｉｌ］［Ｒｉｏ  ｄｅ  Ｊａｎｅｉｒｏ］］」
本発明の実施形態は、索引を使用して重複したメンバキャプションを一義化することにより、ＯＬＡＰ  ＰｉｖｏｔＴａｂｌｅ（登録商標）テーブル内にあいまいさがあるケースに対処する。したがって、同一名を有し、他のすべての点で同一の意味指定（ＰｉｖｏｔＴａｂｌｅ（登録商標）テーブル上で可視の同一の祖先および同一の次元およびレベル）を有する２つのメンバが同時にテーブル上に現れる場合、これらのメンバは、普通なら同一の指定を共有することになる他のメンバからメンバを区別するためにメンバ名に付加される整数により、参照目的で一義化される。例えば、あるメンバは「Ｖａｎｃｏｕｖｅｒ  １」でよく、２番目のメンバは「Ｖａｎｃｏｕｖｅｒ  ２」でよい。
【００５９】
次に、作成オペレーション４０６が構造的参照を作成する。構造的参照は、上記で決定したデータ構造に基づくことができる。ある実施形態では、スプレッドシートアプリケーションは、データ構造のメタデータ（すなわち構造化参照構文で利用可能なヘッダおよび特別な項目）にマッピングされる。メタデータは、リストまたはＰｉｖｏｔＴａｂｌｅ（登録商標）内の列などの埋込みデータ構造を含むことができる。したがって、メタデータは、テーブルおよび列についてのコンテキスト情報を有することができる。構造参照はデータ構造に結合される。スプレッドシートアプリケーションは、「解析時」に構造の一部に対する参照を分解し、次いで「評価時」に、機能のために構造のその部分をセル範囲に分解する。例えば、意味指定「ＭｙＬｉｓｔ［Ｓａｌｅｓ］」は、実質上は「ＭｙＬｉｓｔのＳａｌｅｓ列」である構造的参照を作成するが、この構造的参照は、構造的参照が数式または機能の評価中に使用される場合に「セルＣ２からＣ４８」のように分解される。したがって、スプレッドシートアプリケーションは、解析時に意味指定をデータ構造に変換することができ、評価時に、データ構造を、ユーザが望むデータを有する実際のセル範囲に変換することができる。ユーザは、構造的参照がディスプレイ装置上に提示されるのを見ないことがある。しかし、他の実施形態では、ユーザは、ユーザインターフェースで、構造的参照によって参照される位置のテキスト表現またはグラフィカル表現を与えられる。したがって、ユーザは、ディスプレイ装置のあるエリアまたはウィンドウで、構造的参照に含まれるセルを含む表示を受けることができる。例えば、スプレッドシートアプリケーションでセルを強調表示することができる。他の実施形態では、スプレッドシートアプリケーションが、セルの周囲に枠を配置し、セルに陰影を付け、またはその他の何らかの視覚的効果を使用することにより、ディスプレイ装置上に表示される１組のセルの外観を変更することができる。
【００６０】
次に、提供オペレーション４０８が構造的参照を提供する。本発明の諸実施形態では、ユーザが構造的参照を用いて実施したいオペレーションが何であっても、構造的参照がスプレッドシートに埋め込まれる。しかし、ユーザは、スプレッドシートで意味指定だけを見る可能性がある。ある実施形態では、データのセクションを解析するのに構造的参照を使用することができ、あるいは数式、計算、またはその他のデータ操作で使用することができる。一実施形態では、構造的参照を生成するコンテキスト情報を与える１組の引数として意味指定を数式の構文に組み込むことができる。
【００６１】
別の実施形態では、アプリケーションが構造的参照をディスプレイ装置に提供することができる。ユーザが意味指定を手動で入力した場合、スプレッドシートアプリケーションは、基礎となる構造的参照によって参照されるデータ構造を強調表示することができる。別の実施形態では、ユーザがある数式または関数で使用するためにデータのセクションを選択した場合、スプレッドシートアプリケーションは、選んだデータを記述する意味指定を作成して、その意味指定をユーザに提供することができる。スプレッドシートアプリケーションが構造的参照をユーザに提供することのできる他の方法を当業者は理解されよう。
【００６２】
構造的参照によって参照されるデータを動的に更新する方法５００を図５に示す。受領オペレーション５０２は、構造的参照によって参照されるデータに対する変更を受け取る。この変更は、さらなるデータを追加するなどのデータに対する変更でよく、またはデータの行を挿入するなどのデータ構造に対する変更でよい。例えば、列の終わりにデータを付加することができる。既存のデータ構造内に既にあるデータは移動しないので、データの付加は、参照されるデータの既存のデータ構造を必ずしも変更しない。データの付加は、単に既存のデータ構造にデータを追加する。本発明の諸実施形態では、データ構造に対する変更は、既存のデータ構造内の行、列、またはセルの挿入、削除、または移動を含むことができる。データ構造の変化は実際に、構造的参照で参照されるデータの位置を移動することができる。ある実施形態では、ＰｉｖｏｔＴａｂｌｅ（登録商標）のリフレッシュなどのスプレッドシートアプリケーション内の何らかの自動関数のために、あるいはユーザの介入によって手動で変更が行われる。
【００６３】
次に、判定オペレーション５０４が、データ構造が変化したかどうかを判定する。ある実施形態では、スプレッドシートアプリケーションが、構造的参照によって参照されるデータを移動またはシフトする列、行、またはセルがフィールドに挿入されたかどうかを判定する。この判定は、構造変化の位置を、既存の構造的参照で参照されるデータの位置と比較することを含むことができる。こうした位置が重なる場合、データ構造に対する変更が行われている。構造に対する変更が行われたかどうかをスプレッドシートアプリケーションが判定することのできる他の方法を当業者は理解されよう。データ構造に対する変更が行われた場合、探索オペレーション５１４がコンテキスト情報を突き止める。コンテキスト情報は以下で説明する。
【００６４】
データ構造に対する変更が行われなかった場合、データの追加と同じく、判定オペレーション５０６が、変更が及ぼす可能性のある、何らかの既存の構造的参照に対する影響があるかどうかを判定する。例えば、データがテーブルに追加された場合、アプリケーションは、そのデータを既存の構造的参照でカバーすべきかどうかを判定することができる。
【００６５】
次に、変更オペレーション５０８が新しい構造的参照を変更する。本発明の諸実施形態では、スプレッドシートアプリケーションが構造的参照の分解を変更する。例えば、既存の構造的参照を分解してセルＣ２からＣ６内のデータを得ることができる。ユーザは、セルＣ７からＣ９に追加した新しいデータを既存の構造的参照に含めることを望むことがある。既存の構造的参照によって参照されるデータ構造は必ずしも変化しないが、構造的参照に対して使用される意味指定は、新しく追加したデータを包含することができる。スプレッドシートアプリケーションは、新しい構造的参照を作成するのではなく、構造的参照の分解を変更してセルＣ２からＣ９内のデータを得る。例えば、セルが図１の列１１２の終わりに追加された場合、既存の構造的参照の分解は、意味指定「Ｈｅｉｇｈｔ」を使用する任意の数式中でそうした新しいセルをカバーする必要がある。
【００６６】
次に、提供オペレーション５１０が構造的参照を提供する。一実施形態では、構造的参照を提供することは、構造的参照を使用する何らかのセルを汚染することを含む可能性がある。セルを汚染することは、コンピュータフラグをセットすることによって、またはその他の手段によってセルを識別することを含むことがあり、それにより、そうしたセル内の計算または参照を再実行させる必要がある。汚染セルは、そうしたセル内のオペレーションを再実行させる。このようにして、構造的参照が更新されるとき、その参照を使用するすべてのオペレーションも更新される。したがって、構造的参照は、データ変更に適応し、次いでそうした構造的参照を使用する任意のオペレーションを更新するので、スプレッドシートアプリケーションは、動的データに対する構造的参照を提供する。
【００６７】
データに対する変更がデータ構造に対する変更を引き起こした場合、発見オペレーション５１４が、変更されたデータ構造内のコンテキスト情報を見つける。本発明の諸実施形態では、構造的参照を作成するのに使用されるコンテキスト情報が格納される。このコンテキスト情報は取り出される。一実施形態では、スプレッドシートアプリケーションは、１つまたは複数の意味指定を含む可能性のあるコンテキスト情報を求めてスプレッドシートまたはテーブルを探索する。例えば、スプレッドシートアプリケーションは、意味指定と同一の列ヘッダ名を有する列ヘッダを探索し、見つけることができる。
【００６８】
次に、判定オペレーション５１６が、コンテキスト情報に適用される新しいデータ構造を判定する。一実施形態では、コンテキスト情報を見つける際に、スプレッドシートアプリケーションは、その時にコンテキスト情報に関連するデータ構造を判定することができる。ある実施形態では、新しいデータ構造は、列のような同じタイプのデータ構造でよいが、別の位置に位置することもできる。別の実施形態では、データ構造タイプが変化することができる。例えば、列内のデータをデータ変更後に行で表示することができる。
【００６９】
次に、作成オペレーション５１８が新しい構造的参照を作成する。一実施形態では、スプレッドシートアプリケーションは、新しいデータ構造に構造的参照を再マッピングする。別の実施形態では、既存の構造的参照を除去して、新しい構造的参照を生成することができる。
【００７０】
次いで、提供オペレーション５２０が新しい構造的参照を提供する。ある実施形態では、前述のように、新しい構造的参照を提供することは、以前の構造的参照を使用してセルを汚染することを含む可能性がある。新しい構造的参照は、汚染されたセル内の任意の数式または参照中の以前の構造的参照を置換する。次いで、汚染されたセル内のオペレーションが、新しい構造的参照で得られたデータを使用して再実行される。したがって、こうした計算またはオペレーションで参照される何らかのデータが変化した場合、構造的参照を使用する計算またはオペレーションが動的に更新される。
【００７１】
構造的参照に関するコンテキスト情報の例示的実施形態と、構造的参照を作成し、動的に更新する方法とを図６から図１１に示す。この例示的実施形態では、ユーザがテーブル６００を作成している。テーブル６００は、行および列内のデータの配列を有する。例示的テーブル６００は、テーブル６００内のデータを記述するコンテキスト情報を有する。この場合も、コンテキスト情報は、テーブル６００内のデータを記述することができるテーブル６００内のユーザ作成の名前または自動的に作成された名前の組である。コンテキスト情報は、テーブル名、列ヘッダ名、行ヘッダ名、またはその他のそのような名前を含むことができる。
【００７２】
まず、テーブル６００は、「ＭｙＴａｂｌｅ」という名前を有する。ユーザ作成の名前「ＭｙＴａｂｌｅ」は、第１の１つのコンテキスト情報を提供するテーブル名６０１である。ユーザは、意味指定「ＭｙＴａｂｌｅ」を使用してテーブル６００内のデータを参照することができる。スプレッドシートアプリケーションは、この意味指定を、テーブル６００内のデータを記述するコンテキスト情報として認識することができる。次いで、スプレッドシートアプリケーションは、コンテキスト情報に基づいてテーブル６００に対する構造的参照を作成することができる。構造的参照を使用する場合、スプレッドシートアプリケーションは、構造的参照をテーブル６００内のデータに分解することができる。
【００７３】
テーブル６００は、行ヘッダ名や列ヘッダ名などの他のコンテキスト情報も有する。３つの例示的行ヘッダ名がセル６０２、６０４、６０６に示されている。例示的列ヘッダ名「Ｍ２」がセル６０８に示されている。ユーザは、意味指定「Ｍ２」を使用して列６１０内のデータを参照することができる。スプレッドシートアプリケーションは、列６１０内のデータに対する構造的参照を作成することができる。構造的参照を使用する場合、スプレッドシートアプリケーションは、構造的参照を列６１０内のデータに分解することができる。ボックス６１２は、スプレッドシートアプリケーションが構造的参照を分解した後に何のデータを使用することができるかを示す。
【００７４】
テーブル６００内のデータの列に対する例示的構造的参照を図７に示す。「Ｍ２」は例示的意味指定である。「Ｍ２」はまた、列ヘッダ７０６に関するコンテキスト情報、列ヘッダ名でもある。列ヘッダは、データ構造、列７０８を特定する。現在、列７０８内のデータは、セルＣ５からセルＣ１７までのセルの配列を、セルＣ１８内の「Ｇｒａｎｄ  Ｔｏｔａｌ」と共に占有する。列７０８をデータ構造として参照する構造的参照を作成することができる。構造的参照をコンテキスト情報「Ｍ２」と共に格納することができる。構造的参照を使用する場合、スプレッドシートアプリケーションは、列ヘッダ名「Ｍ２」７０６を有するセルＣ５からＣ１７内のデータを含むようにデータ構造を分解することができる。データが変化した場合、スプレッドシートアプリケーションは、格納したコンテキスト情報を使用して構造的参照に対する変更を判定することができる。
【００７５】
構造的参照を更新するプロセスの一実施形態の一例を図８および図９に示す。ここでは、３つの新しい情報の行８０２がテーブル８００に追加される。この情報は、３つの新しい行１００２より上の既存のデータ１００４のいずれの位置またはデータ構造も変更しない。このとき、アプリケーションは、この変更が何らかの既存の構造的参照に影響を及ぼす可能性があるかどうかを判定しなければならない。前述のように、ユーザは、図９に示すようにヘッダ「Ｍ２」９０６より下のすべてのデータに関する構造的参照を確立しておくことができる。列７０８に対する構造的参照は、追加データによって影響を受けている可能性がある。次いで、スプレッドシートアプリケーションは、列ヘッダ「Ｍ２」８０６より下のデータに関する構造的参照を作成したコンテキスト情報を取り出すことができる。意味指定「Ｍ２」８０６に関するデータ構造は、列ヘッダ８０６より下からＧｒａｎｄ  Ｔｏｔａｌセル１００６までのすべてのデータを含むことができる。したがって、図１１の淡く陰影を付けたエリア１１０２で示すように、新しく追加した行１００２内のデータを含めるべきである。したがって、次にスプレッドシートアプリケーションは、意味指定「Ｍ２」８０６で輪郭が描かれたデータ構造１１０４内にある新しいデータと既存のデータのどちらもカバーするように、構造的参照を分解する方法を変更する。
【００７６】
変更が構造的参照によって参照されるデータ構造に影響を及ぼす状況の一例を図１０および図１１に示す。前述のように、コンテキスト情報は「Ｍ２」７０６に対する意味指定を有する。データ構造である元の構造的参照参照列７０８を図１０で強調表示したセルの組として示す。ここで、「Ｍ１Ａ」と呼ばれる列１００２がテーブル１０００に挿入されている。列挿入により、「Ｍ２」と呼ばれる列１００４が右に移動したので、データ構造が変化した。したがって、このとき構造的参照７０８は、誤ったセルの組を指す。
【００７７】
さらに、３つの行１００６がテーブル１０００の中央に挿入された。新しい行１００６により、構造的参照７０８によってカバーされる、ボックス１００８で示す新しいデータが列に導入された。したがって、このとき元の構造的参照７０８は、ボックス１００８内の新しいデータをカバーし、最後の３行１０１０内のボックス１０１２で示す一部の元のデータをカバーすることができない。アプリケーションが引き続き元の構造的参照を使用した場合、元の構造的参照は不正確なデータを与えるので、列および行は、元の構造的参照を「破壊」している。したがって、スプレッドシートアプリケーションは、構造的参照を更新しなければならない。
【００７８】
まず、スプレッドシートアプリケーションは、再びコンテキスト情報を突き止めることができる。スプレッドシートアプリケーションは、以前に格納されたユーザ入力意味指定「Ｍ２」を求めて変更したテーブル１０００を探索することにより、コンテキスト情報を突き止めることができる。この例では、スプレッドシートアプリケーションは、図１１からわかるように、列ヘッダ１１０２内の「Ｍ２」を見つける。コンテキスト情報「Ｍ２」の位置は、元の構造的参照１４０８の１つ右側の列である。コンテキスト情報を突き止めた後、スプレッドシートアプリケーションは、コンテキスト情報が記述する新しいデータ構造を求めることができる。コンテキスト情報「Ｍ２」は、列１１０６内のすべてのデータ１１０４を指す。したがって、新しいデータ構造である列１１０６は、図１１の陰影を付けたエリア１１０４内に示されるようになる。新しいデータ構造は、ボックス１１１０内のデータの新しいセルと、ボックス１１３２内の元のデータを含む。新しいデータ構造を求めた後、スプレッドシートアプリケーションは、列１１０６のメタデータを参照する新しい構造的参照を作成する。したがって、新しい構造的参照を作成するプロセスは、参照を調節してデータの変化を補償した。言い換えれば、新しい構造的参照は、列１１０６に対する参照をシフトし、ボックス１１１０内のデータを追加し、ボックス１１１２内のデータに対する参照を維持する。このプロセスは自動で、こうした構造的参照に対する何らかの手動の変更を行う必要からユーザを解放した。
【００７９】
本発明の諸実施形態では、ユーザは、数式または計算で上記の構造的参照を利用することができる。調整した構造的参照を有する任意のセルを汚染することができる。調節した構造的参照で得られたデータを使用して、汚染セルを占有する数式計算を再実行することができる。したがって、ユーザの既存の計算および数式も自動的に更新される。
【図面の簡単な説明】
【００８０】
【図１Ａ】構造的参照と構造的参照を使用する数式との間の機能的関係を示す本発明の実施形態の機能図である。
【図１Ｂ】構造的参照と構造的参照を使用する数式との間の機能的関係を示す本発明の実施形態の機能図である。
【図２】本発明による構造的参照を提供するように動作可能なコンピュータ環境およびコンピューティング装置を示す機能図である。
【図３】構造的参照を本発明によるスプレッドシート内の１組のデータと関連付ける際の本発明の一実施形態を表す流れ図である。
【図４】本発明によるスプレッドシート内の構造的参照を動的に更新する本発明の一実施形態を表す流れ図である。
【図５】構造化された数式を本発明によるスプレッドシート内の１組のデータに適用する本発明の一実施形態の流れ図である。
【図６】本発明によるスプレッドシートを示す本発明の一実施形態の一例である。
【図７】本発明による構造的参照を有するスプレッドシートを示す本発明の一実施形態の一例である。
【図８】本発明による付加データを有するスプレッドシートを示す本発明の一実施形態の一例である。
【図９】本発明による動的に更新される構造的参照を示す本発明の一実施形態の一例である。
【図１０】本発明によるデータの挿入による構造の変化を伴うスプレッドシートを示す本発明の一実施形態の一例である。
【図１１】本発明による動的に更新される構造的参照を有するスプレッドシートを示す本発明の一実施形態の一例である。
【符号の説明】
【００８１】
２０２  処理装置
２０４  システムメモリ
２０８  取外し可能記憶装置
２１０  取外し不能記憶装置
２１２  通信接続
２１４  入力装置
２１６  出力装置
【図１Ａ】
2006107444.tif 000004
【図１Ｂ】
2006107444.tif 000005
【図２】
2006107444.tif 000006
【図３】
2006107444.tif 000007
【図４】
2006107444.tif 000008
【図５】
2006107444.tif 000009
【図６】
2006107444.tif 000010
【図７】
2006107444.tif 000011
【図８】
2006107444.tif 000012
【図９】
2006107444.tif 000013
【図１０】
2006107444.tif 000014
【図１１】
2006107444.tif 000015
【外国語明細書】
2006107444000001.pdf