特許第6165149号(P6165149)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ マイクロソフト テクノロジー ライセンシング,エルエルシーの特許一覧

特許6165149スプレッドシートのデータについての報告のための自動的な関連の検出
<>
  • 特許6165149-スプレッドシートのデータについての報告のための自動的な関連の検出 図000002
  • 特許6165149-スプレッドシートのデータについての報告のための自動的な関連の検出 図000003
  • 特許6165149-スプレッドシートのデータについての報告のための自動的な関連の検出 図000004
  • 特許6165149-スプレッドシートのデータについての報告のための自動的な関連の検出 図000005
  • 特許6165149-スプレッドシートのデータについての報告のための自動的な関連の検出 図000006
  • 特許6165149-スプレッドシートのデータについての報告のための自動的な関連の検出 図000007
  • 特許6165149-スプレッドシートのデータについての報告のための自動的な関連の検出 図000008
  • 特許6165149-スプレッドシートのデータについての報告のための自動的な関連の検出 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6165149
(24)【登録日】2017年6月30日
(45)【発行日】2017年7月19日
(54)【発明の名称】スプレッドシートのデータについての報告のための自動的な関連の検出
(51)【国際特許分類】
   G06Q 50/00 20120101AFI20170710BHJP
   G06F 17/21 20060101ALI20170710BHJP
   G06Q 10/10 20120101ALI20170710BHJP
   G06F 3/048 20130101ALI20170710BHJP
【FI】
   G06Q50/00
   G06F17/21
   G06Q10/10
   G06F3/048
【請求項の数】14
【全頁数】15
(21)【出願番号】特願2014-534678(P2014-534678)
(86)(22)【出願日】2012年10月4日
(65)【公表番号】特表2014-535095(P2014-535095A)
(43)【公表日】2014年12月25日
(86)【国際出願番号】US2012058667
(87)【国際公開番号】WO2013052609
(87)【国際公開日】20130411
【審査請求日】2015年10月5日
(31)【優先権主張番号】13/252,450
(32)【優先日】2011年10月4日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】314015767
【氏名又は名称】マイクロソフト テクノロジー ライセンシング,エルエルシー
(74)【代理人】
【識別番号】100140109
【弁理士】
【氏名又は名称】小野 新次郎
(74)【代理人】
【識別番号】100075270
【弁理士】
【氏名又は名称】小林 泰
(74)【代理人】
【識別番号】100101373
【弁理士】
【氏名又は名称】竹内 茂雄
(74)【代理人】
【識別番号】100118902
【弁理士】
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100153028
【弁理士】
【氏名又は名称】上田 忠
(74)【代理人】
【識別番号】100120112
【弁理士】
【氏名又は名称】中西 基晴
(74)【代理人】
【識別番号】100196508
【弁理士】
【氏名又は名称】松尾 淳一
(74)【代理人】
【識別番号】100147991
【弁理士】
【氏名又は名称】鳥居 健一
(74)【代理人】
【識別番号】100119781
【弁理士】
【氏名又は名称】中村 彰吾
(74)【代理人】
【識別番号】100162846
【弁理士】
【氏名又は名称】大牧 綾子
(74)【代理人】
【識別番号】100173565
【弁理士】
【氏名又は名称】末松 亮太
(74)【代理人】
【識別番号】100138759
【弁理士】
【氏名又は名称】大房 直樹
(72)【発明者】
【氏名】フォルティング,アラン
(72)【発明者】
【氏名】ハンディ,スティーヴン・ヴァン・デ・ウォーカー
(72)【発明者】
【氏名】オッペンハイマー,ディエゴ・エム
(72)【発明者】
【氏名】グラバー,アナトリー・ヴイ
【審査官】 塩田 徳彦
(56)【参考文献】
【文献】 特開2004−102400(JP,A)
【文献】 特表2009−508219(JP,A)
【文献】 特開2005−346717(JP,A)
【文献】 特開2003−050964(JP,A)
【文献】 米国特許第07165214(US,B2)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00 − 99/00
G06F 3/048
G06F 17/21
(57)【特許請求の範囲】
【請求項1】
スプレッドシートにおいてレポートを作成するシステムであって、
中央処理装置と、
命令をエンコードするメモリと
を含み、前記命令は、前記中央処理装置により実行されたときに、前記中央処理装置に、
前記スプレッドシートと関連するテーブルを識別するようにプログラムされるデータ・ソース・モジュールと、
前記テーブルを分析して定められていない関係を有する関連したテーブルを識別するようにプログラムされるリレーションシップ・モジュールであって、前記リレーションシップ・モジュールは前記関連したテーブル間の関係を定め、前記リレーションシップ・モジュールは前記関係を識別し、自動的に定めるためにヒューリスティックを用いてプログラムされる、リレーションシップ・モジュールであって、第1のテーブルにおける1つの値が、第2のテーブルの1つのコラムにおける複数の値に対応する場合に、前記第1のテーブル及び前記第2のテーブルのデータをルックアップして要約する、リレーションシップ・モジュールと、
前記テーブル間の関係を表示するようにプログラムされるディスプレイ・モジュールと
を作成させ
前記システムはテーブルがレポートに付加されたときに関係を定めることが必要であることをユーザーに通知し、前記レポートにおいて前記テーブルと他のテーブルのアイテムとの間の関係を手動で識別することをユーザーに可能にする、
システム。
【請求項2】
請求項1に記載のシステムであって、前記リレーションシップ・モジュールは、テーブルが前記レポートへ付加されたときに、前記関係を識別し、提案する、システム。
【請求項3】
請求項1に記載のシステムであって、前記レポートはデータ・サマリー・テーブルであり、前記テーブルのそれぞれは、前記データ・サマリー・テーブルへ付加される1以上のディメンションを含む、システム。
【請求項4】
請求項1に記載のシステムであって、前記関係を、前記スプレッドシートにおける前記テーブルの使用の間中、持続する、システム。
【請求項5】
請求項1に記載のシステムであって、前記テーブルのうちの1つは、前記スプレッドシートにおいて定められるデータ領域である、システム。
【請求項6】
請求項記載のシステムであって、前記データ領域は複数のフィールドを含む、システム。
【請求項7】
請求項1記載のシステムであって、前記テーブルの一つは外部データ・ストアから生成される、システム。
【請求項8】
スプレッドシートにおけるテーブル間の関係を識別する方法であって、
計算デバイスにより、前記スプレッドシートと関連するテーブルを識別するステップと、
前記スプレッドシートのデータ・サマリー・テーブルへ、第1のテーブルをユーザーが付加することを可能にするステップであって、前記第1のテーブルと第2のテーブルとの間の関係は定められていない、ステップと、
前記第1のテーブルと前記データ・サマリー・テーブル内の第2のテーブルが関連しているかを判定するステップと、
付加された前記テーブルが前記データ・サマリー・テーブル内の前記第2のテーブルと関連している場合に、前記第1のテーブルと前記データ・サマリー・テーブル内の前記第2のテーブルとの間の関係を定めるステップと、
前記第1のテーブルが前記データ・サマリー・テーブルへ付加されるときに関係を定めることが必要であることをユーザーに通知するステップと、
前記第1のテーブルと前記データ・サマリー・テーブル内の前記第2のテーブルとの間の関係をユーザーが手動で定めることを可能にするステップ
を含み、
前記第1のテーブルと前記データ・サマリー・テーブル内の第2のテーブルとの間の関係を定めるステップは、
前記関係を自動的に識別するためにヒューリスティックを用いるステップと、
前記第1のテーブルにおける1つの値が、前記第2のテーブルの1つのコラムにおける複数の値に対応する場合に、前記第1のテーブル及び前記第2のテーブルのデータをルックアップして要約するステップを含む方法。
【請求項9】
請求項に記載の方法であって、前記第1のテーブルと前記データ・サマリー・テーブル内の前記第2のテーブルとの関係を表示するステップを更に含む方法。
【請求項10】
請求項に記載の方法であって、前記テーブルの各々は、前記データ・サマリー・テーブルに付加される1以上のコラムを含む方法。
【請求項11】
請求項に記載の方法であって、関係を、前記スプレッドシートにおける前記テーブルの使用の間中、持続するステップを更に含む方法。
【請求項12】
請求項記載の方法であって、前記テーブルは、前記スプレッドシートにおいて定められるデータ領域である方法。
【請求項13】
請求項12記載の方法であって、前記データ領域は複数のフィールドを含む方法。
【請求項14】
スプレッドシートのデータ・サマリー・テーブル内のテーブル間の関係を自動的に識別する方法であって、
前記スプレッドシートの前記データ・サマリー・テーブルへ第1のテーブルをユーザーが付加することを可能にするステップであって、前記第1のテーブルは前記スプレッドシートにおいて定められるデータ領域を含み、前記第1のテーブルと第2のテーブルとの関係は定められていない、ステップと、
前記第1のテーブルと前記データ・サマリー・テーブル内の前記第2のテーブルとの関係が必要であるかを決定するステップであって、前記決定するステップはコラム名のマッチング、値のマッチング、データタイプのマッチング、ファジー値のマッチング、および使用しているマッピングテーブルの1以上を含むヒューリスティックを使用する、ステップと、
前記第1のテーブルと前記データ・サマリー・テーブル内の第2のテーブルとの間の前記関係が必要な場合に、
前記第1のテーブルが前記データ・サマリー・テーブルへ付加されるときに関係を定める必要があることをユーザーに通知するステップ、および
前記ユーザーが手動で必要とされる関係を定めない場合に、前記ヒューリスティックを用いて、前記第1のテーブルと前記データ・サマリー・テーブル内の前記第2のテーブルとの関係を自動的に定め、前記第1のテーブルにおける1つの値が、前記第2のテーブルの1つのコラムにおける複数の値に対応する場合に、前記第1のテーブル及び前記第2のテーブルのデータをルックアップして要約するステップと、および
前記第1のテーブルと前記データ・サマリー・テーブル内の前記第2のテーブルとの関係を表示するステップ
を含む方法。
【発明の詳細な説明】
【背景技術】
【0001】
[0001] スプレッドシートのデータ・サマリー・テーブルは、大量のデータを分析するために使用することができる。データ・サマリー・テーブルは、データベース・プログラムにより供給されるデータ又はスプレッドシートのデータ・リストにあるデータを、表示および要約するための有効な手段を提供する。ユーザーは、データ・サマリー・テーブルのフィルター領域、行、コラム、またはデータ領域内に含めるためのデータのフィールドを選択することができ、また、選択されたデータ・フィールドに関して表示されるように、合計、分散、カウント、および標準偏差などのような集計関数(aggregation function)を選択することができる。スプレッドシート・プログラム内からのクエリの対象とされ得るデータベース内のデータ、またはリストを含むスプレッドシート・データは、データ・サマリー・テーブルにおいて分析することができる。
【0002】
[0002] かなり多くのデータを含むスプレッドシートでは、ユーザーが、そのスプレッドシート上にデータ・サマリー・テーブルとしてレポートへ含ませるべきである望まれるデータを選択することは困難であり得る。例えば、1以上の大きくて体系的ではないスプレッドシートにわたって提供されるデータのボリュームはユーザーを圧倒し、それにより、特定のレポート・シナリオと関連するデータを捜すことを困難にする。
【発明の概要】
【0003】
[0003] 1つの構成では、スプレッドシートにおいてレポートを作成するシステムは、中央処理装置と、命令をエンコードするメモリとを含み、命令は、中央処理装置により実行されたときに、中央処理装置に、
スプレッドシートと関連するテーブルを識別するようにプログラムされるデータ・ソース・モジュールと、
テーブルを分析してアイテム間の関係を識別するようにプログラムされるリレーションシップ・モジュールと、
テーブル間の関係を表示するようにプログラムされるディスプレイ・モジュールと
を作成させる。
【0004】
[0004] 別の構成では、スプレッドシートのデータ・アイテム間の関係を識別する方法は、
計算デバイスにより、スプレッドシートと関連するテーブルを識別するステップと、
スプレッドシートのデータ・サマリー・テーブルへ、テーブルのうちの1つをユーザーが付加することを可能にするステップと、
付加されたテーブルを分析して、付加されたテーブルとデータ・サマリー・テーブル内の他のテーブルとの関係を決定するステップと、
付加されたテーブルがデータ・サマリー・テーブル内の他のテーブルと関係しない場合に、付加されたテーブルとデータ・サマリー・テーブル内の他のテーブルとの関係を自動的に識別するステップと
を含む。
【0005】
[0005] 更に別の構成では、スプレッドシートのデータ・サマリー・テーブルのディメンション(dimension)間の関係を識別する方法は、
スプレッドシートのデータ・サマリー・テーブルへ1つのテーブルをユーザーが付加することを可能にするステップであって、テーブルはスプレッドシートにおいて定められるデータ領域を含む、ステップと、
テーブルと関連するコラムを分析して、ディメンションとデータ・サマリー・テーブル内の他のテーブルとの関係を決定するステップと、
付加されたテーブルがデータ・サマリー・テーブル内の他のテーブルと関係しない場合に、
付加されたテーブルがデータ・サマリー・テーブルへ付加されるときに、関係を定める必要があることをユーザーに通知するステップ、および
ヒューリスティックを用いて、テーブルとデータ・サマリー・テーブル内の他のテーブルとの関係を自動的に識別するステップと
付加されたテーブルとデータ・サマリー・テーブル内の他のテーブルとの関係を表示するステップと
を含む。
【0006】
[0006] この概要は、以下の詳細な説明で更に説明する概念のうちの選択したものを、簡素化した形で紹介するものである。この概要は、特許請求の範囲に記載の主題事項の鍵となる特徴や本質的な特徴を特定することを意図しておらず、また、特許請求の範囲に記載の主題事項の範囲を決定する際の支援として用いることを意図していない。
【図面の簡単な説明】
【0007】
図1図1は、スプレッドシート・プログラムにおいてレポートを生成するための例示的なシステムを示す。
図2図2は、スプレッドシートにおける例示的なピボット・テーブルを示す。
図3図3は、スプレッドシートにおけるピボット・テーブルを生成するために使用する例示的なデータ領域を示す。
図4図4は、図1のはシステムのクライアント計算デバイスの例示的なモジュールを示す。
図5図5は、レポートにおける2以上のテーブル間での関係を識別するための例示的な方法を示す。
図6図6は、レポートにおける2以上のテーブル間での関係を手動で識別するための例示的なウィザードを示す。
図7図7は、外部データ・ストアからのデータとレポートにおける1以上のテーブルとの間での関係を識別するためのインターフェースを示す。
図8図8は、図1に示す計算デバイスの例示的なコンポーネントを示す。
【発明を実施するための形態】
【0008】
[0015] 本出願は、スプレッドシート・アプリケーションにおけるデータ領域間での関係を自動的に検出して提案を行うためのシステムおよび方法に関する。ここで説明する例では、データ領域間での関係は、識別されてユーザーへ呈示され、ユーザーがデータを1つの使用可能なレポートへ容易に組み合わせることを可能にする。
【0009】
[0016] 図1は、例であるシステム100を示し、システム100は、スプレッドシート・アプリケーションにおいて提供されるデータに基づいて1以上のレポートの生成をサポートする。システム100は、クライアント・コンピューター102とサーバー・コンピューター106とを含む。クライアント・コンピューター102は、ネットワークを介してサーバー・コンピューター106と接続され、ネットワークは、典型的には、コーポレート・イントラネットやインターネットである。より多くの数または少ない数のクライアント・コンピューター、サーバー・コンピューター、または他の計算デバイスを用いることもできる。
【0010】
[0017] 以下で更に説明するように、クライアント・コンピューター102は、サーバー・コンピューター106へ接続して、スプレッドシート・ファイルなどのようなデータを得ることができる。クライアント・コンピューター102は、クライアント・コンピューター102上でネイティブのスプレッドシート・アプリケーションを実行して、スプレッドシート・ファイルを操作することができる。別の例では、クライアント・コンピューター102は、サーバー・コンピューター106でホストされる1以上のアプリケーションを用いて、スプレッドシート・ファイルへアクセスして操作することができる。他の構成も可能である。
【0011】
[0018] ここで図2を参照すると、例であるプログラム200が示されている。この例では、プログラムは、上記のコンピューター・システム100などのようなコンピューター・システムで実行されるマイクロソフト(登録商標)のEXCEL(登録商標)スプレッドシート・ソフトウェア・プログラムである。プログラム200は、例示のデータ・リストを含むスプレッドシートを含む。
【0012】
[0019] ユーザーは、スプレッドシート内のデータに基づいて1以上のレポートを生成することができる。ここで説明する幾つかの例では、レポートはデータ・サマリー・テーブルとすることができる。しかし、他の例では、レポートを、単に別の「標準の」テーブルとすることができる。例えば、ここで説明するシステムおよび方法は、ユーザーにより生成されるテーブルに対して、特定のコラムを、スプレッドシートにおける他のテーブルとの識別される関連に基づいて提案するために用いることができる。
【0013】
[0020] 例えば、プログラム200の例としてのユーザー・インターフェース302が示されている。ユーザー・インターフェース302は、初期データ・サマリー・テーブル320を含む(図2ではデータ・サマリー・テーブル320はブランクである)。データ・サマリー・テーブル320は、様々なソースからのデータから生成することができる。図2に示す1つの例では、データ・サマリー・テーブル320は、スプレッドシート・ファイル内で提供されるデータから、または1以上の外部データ・ストアから、生成することができる。
【0014】
[0021] プログラム200のユーザー・インターフェース302はまた、例としてのタスク・ペイン450を含み、タスク・ペイン450は、データ・サマリー・テーブル320の生成および変更を行うために用いることができる。例えば、タスク・ペイン450は、スプレッドシート・ファイルと関連するデータからのデータ・フィールドのリストを含む。ユーザーは、データ・サマリー・テーブル320を生成するために、タスク・ペイン450からフィールドの選択および検出を行うことができる。
【0015】
[0022] タスク・ペイン450は、一般に、フィールド・ペイン452とレイアウト・ペイン454とを含む。フィールド・ペイン452は、スプレッドシートにおいて使用可能なデータ・フィールドのリストを含む。これらの例では、データ・フィールドはテーブルを含み、各テーブルは、レポートへ付加可能な1以上のコラムを含む。以下で説明するように、リストのデータ・フィールドがレイアウト・ペイン454へ付加されると、データ・フィールドと関連するチェック・ボックスにチェックが付される。
【0016】
[0023] レイアウト・ペイン454は複数のゾーンを含み、複数のゾーンは、タスク・ペイン450を用いて生成されるデータ・サマリー・テーブル320の態様を表す。例えば、レイアウト・ペイン454は、行ゾーン、コラム・ゾーン、値ゾーン、およびフィルター・ゾーンを含む。行ゾーンは、結果として得られるデータ・サマリー・テーブル320の行ラベルを定める。コラム・ゾーンは、データ・サマリー・テーブル320のコラム・ラベルを定める。値ゾーンは、データ・サマリー・テーブル320において要約されるデータ(例えば、集計、変化など)を識別する。フィルター・ゾーンは、他のゾーンの他のフィールドの全てへ適用されるフィルタリングの選択を可能にする。
【0017】
[0024] データ・サマリー・テーブル320の生成および変更を行うために、フィールド・ペイン452からの1以上のデータ・フィールドが、レイアウト・ペイン454の1以上のゾーンへ付加される。示される例では、ユーザーは、フィールド・ペイン452のリストから、データ・フィールドを、クリックし、レイアウト・ペイン454のゾーンの1つへとドラッグしてドロップし、フィールドをデータ・サマリー・テーブル320へ付加する。
【0018】
[0025] ここで図3を参照すると、データ・サマリー・テーブル320などのようなレポートを生成するために用いるデータは、複数のソースからのものとすることができる。データのソースは、スプレッドシート内である場合も、外部である場合もある。
【0019】
[0026] 例えば、図3に示すスプレッドシート500は、2個の内部データ領域502および504を含む。データ領域は、行およびコラムなどのような少なくとも2個のディメンションを有する定められたデータ・セットである。例えば、データ領域502は、EmployeeID(従業員ID)とName(名前)とのコラムと、行1〜3とを有する。同様に、データ領域504は、EmployeeID(従業員ID)とSales Amount(売上高)とのコラムと、行1〜7とを有する。
【0020】
[0027] これらの例では、スプレッドシート内、例えば、スプレッドシート内の同じまたは異なるシートなどの複数の位置において、複数のデータ領域を含むことができる。以下に記載するように、データはまた、外部ソースから組み込むこともできる。
【0021】
[0028] この例では、プログラム200は、データ領域502および504を分析し、領域間での関係を自動的に決定するように、プログラムされる。例えば、プログラムは、更に説明する様々なヒューリスティックを用いて、双方の領域におけるEmployeeIDデータがコンパチブルであると判定する。
【0022】
[0029] それらの例では、関係は、データ値を突き合わせることに基づいての、2個のデータ領域(「テーブル」と呼ばれる場合もある)の間で作成されるリンクである。それらの関係は、1対1の関係および/または1対多数の関係を含むことができる。例えば、テーブルにおける1つの値は、ルックアップまたは関連するテーブルにおける複数の値に対応することがある。関係は、プログラムが同時に双方のテーブルのデータをルックアップして要約することを可能にする。
【0023】
[0030] この検出の後、プログラム200は、2個のデータ領域502および504の間の関係を作成し、ユーザーがユーザー・インターフェースのフィールドを単に選択することによりレポートを容易に作成することを、可能にする。例えば、データ領域502および504と関連するデータ・フィールドは、ユーザー・インターフェースにおいてクラスター化することができ、それにより、ユーザーは、データ領域間での関係を容易に識別することができる。この目的のための例示のユーザー・インターフェースについての更なる詳細については、本願と同日に出願され、「Automatic Scoping Of Data Entities(データ・エンティティの自動スコーピング)」と題された米国特許出願第13/252412号、代理人ドケット第333789.02(14917.1922US01)において見ることができる。この参照により、その出願の全体をここに組み込む。
【0024】
[0031] データ領域502および504の間での関係が検出された後に生成できるレポートの一例が、スプレッドシート500のレポート510である。この例では、レポート510は、ピボット・テーブルなどのようなデータ・サマリー・テーブルであり、データ領域502および504からのデータを用いて生成される。レポート510を作成するために、ユーザーは、図2において説明した様式と同様の様式で、データ領域502および504と外部データ・ストア506とから、望まれるデータ・フィールドを選択する。
【0025】
[0032] スプレッドシート500において提供されるデータ領域502および504に加えて、データは、外部データ・ストアからスプレッドシート500へ組み込むこともできる。例えば、外部データ・ストア506が図3に示されている。このような外部データ・ストアの例は、OLAPおよび非OPAPのデータ・ソースを含む。この外部データ・ストア506からのデータは、スプレッドシート500へ組み込まれる。更に説明するが、この外部データ・ストア506についての情報に基づいて、外部データ・ストア506のデータと、スプレッドシート500内のデータ領域502および504との間の関係を識別することができる。
【0026】
[0033] 幾つかの例では、データ領域および外部データ・ストアにおいて提供されるものでありユーザーが選択可能である使用可能なデータ・フィールドの数は、大量になる。そのようなシナリオでは、使用可能なデータ・フィールドを検討して、レポートへ含めるために望まれるフィールドを選択することが、ユーザーにとって困難になり得る。
【0027】
[0034] ここで図4を参照すると、クライアント・コンピューター102の論理モジュールが示されている。それらのモジュールは、データ・ソース・モジュール522、リレーションシップ・モジュール524、およびインターフェース・モジュール526を含む。これらの例では、モジュール522、524、526は、スプレッドシート・ファイル内のデータをユーザーが操作することを可能にするスプレッドシート・アプリケーションと関連して、実行される。クライアント・コンピューター102のモジュール522、524、526は、スプレッドシート内のデータ間での関係を識別するように機能し、それにより、ユーザーは、ユーザーがレポートを作成する際に選択したいであろう関連するフィールドを容易に識別することができる。
【0028】
[0035] データ・ソース・モジュール522は、スプレッドシート・ファイルなどのような特定のファイルと関連する全てのデータ・ソースを識別する。これは、スプレッドシート・ファイルの1以上のシートで定められる内部データ領域を含むことができる。これはまた、外部データ・ストアからのデータを含むことができる。そのような外部データ・ストアは、スプレッドシート内から参照されるデータ、例えば、スプレッドシート・ファイルへ組み込まれている外部データなどを、含むことができる。データ・ソース・モジュール522は、分析のために、全てのデータ・ソースをリレーションシップ・モジュール524へ提供する。
【0029】
[0036] リレーションシップ・モジュール524は、スプレッドシート内のデータ・ソースの何れのものが関連しているかを、それらが有る場合には、判定する。例えば、ユーザーが、ピボット・テーブルなどのようなレポートを作成している場合、リレーションシップ・モジュール524は、様々なヒューリスティックを用いて全てのデータ領域と、スプレッドシートへ組み込まれている外部データ・ストアとを分析して、それらの間での関係を決定する。
【0030】
[0037] 例えば、プログラムは、ヒューリスティックを用いて、スプレッドシート・グリッド内のデータまたはスプレッドシート・アプリケーションへユーザーが組み込んだ外部データ・ソースからのデータの何れかのデータを、異なるデータ領域におけるその提案と関連するデータ・エンティティに基づいて検査する。次に、スプレッドシート・アプリケーションはそれらの関係の情報を格納し、ここで他のスプレッドシートの特徴はそれらの関係を自動的にレバレッジするようになり、複数の異なるデータ領域からのデータを含むレポートをユーザーが作成することを可能にする。
【0031】
[0038] アソシエーションを識別するために使用できるヒューリスティックの幾つかの例は、以下の
・コラム名のマッチング(例えば、類似のキャプションを持つコラム)、
・値のマッチング、例えば、主キー・テーブルにおける独特の値を持つ1つのコラムと、外部キー・テーブルにおける反復する値を持つコラムとがあるが、別個の値の組が主キー・コラムに存在する、
・データ・タイプのマッチング(例えば、日付や通貨のフィールド)、
・ファジー値のマッチング(例えば、「CA」は「California」と一致する)
・マッピング・テーブルを用いて、1つのテーブルにおいて、必要とされる識別子を作成し、それらの識別子を持つコラムを既に有する別のテーブルとの関係を作成する、
のうちの1以上のものを含む。
【0032】
[0039] 例えば、図5を参照すると、1つのシナリオにおいて、ユーザーが、関連していないテーブルから、データ・サマリー・テーブルなどのようなレポートへデータ・フィールドを付加するとき、2以上のテーブル間での関係が作成される。
【0033】
[0040] この例では、方法530は、動作532において、ユーザーがフィールドをレポートへ付加するときに開始される。次に、動作534において、関係が必要か否かに関する判定が行われる。なぜなら、例えば、そのフィールドは、テーブルに既に含まれているフィールドとは関係していないからである。関係が不要な場合(即ち、そのフィールドが何らかの形で既に関係している場合)、そのフィールドは付加され、方法は終了する。
【0034】
[0041] しかし、関係が必要な場合、制御は動作536へ移り、ユーザーに対して、関係が無いであろうことを、通知する。そのような通知のための1つの例示の方法は、ユーザー・インターフェース内で情報バーを提供して、ユーザーに対して、関係が無いことの通知(例えば、「テーブル間での関係を作成する必要があり得る」)を行うことである。
【0035】
[0042] 次に、動作538において、新たに付加されるフィールドに対してユーザーが関係を作成したいか否かに関しての判定が、行われる。関係を作成したくない場合、方法は終了し、次にユーザーがレポートを変更するときに、ユーザーに対して、関係を提供する必要に関して再びプロンプトを行うことができる。関係を作成したい場合、制御は動作539へ移る。動作539において、新たに付加されたフィールドと、レポートに既に含まれているフィールドとの間の関係が決定される。1つの例では、関係は、上記のヒューリスティックの1以上のものを用いて、自動的に決定することができる。別の例では、関係は、手動で定めることができる。
【0036】
[0043] 例えば、ここで図6を参照すると、例示のリレーションシップ・ウィザード540が示されている。このウィザード540において、ユーザーは、様々なテーブルにおけるフィールド間での関係を手動で定めることができる。この例では、EmployeeID(従業員ID)というフィールドが、SalesTable(販売テーブル)およびEmployeeTable(従業員テーブル)というテーブルに対して関係付けされている。
【0037】
[0044] リレーションシップ・モジュール524により定められる関係は、プログラムにより自動的に作成されてもユーザーにより手動で作成されても、レポートの作成の間中、持続することができる。幾つかの例では、関係はまた、スプレッドシート内の他のレポートの生成を通して持続することができ、それにより、プログラムおよび/またはユーザーは、スプレッドシートのデータ・フィールドが使用されるたびに関係を再定義することを、必要とされなくなる。
【0038】
[0045] 再び図4を参照すると、インターフェース・モジュール526は、スプレッドシートにおいてデータ領域および外部データ・ストアからの使用可能なデータ・フィールドを、レポートへ含めるために、ユーザーに呈示する。この例では、インターフェース・モジュール526は、インターフェースにおいてユーザーに対してデータソース間の関係を示す。それらの関係は、幾つかの様式で明白にすることができる。1つの例では、ユーザーがテーブルを選択するとき、インターフェースは、そのテーブルと、その選択されたテーブルに関連する他のテーブルとのみを、呈示することができる。別の例では、テーブルは、関係を識別するためにクラスター化することができる。
【0039】
[0046] 上述のように、スプレッドシート内のテーブルからのデータ・フィールドの中での関係を定めることに加えて、プログラムは、外部データ・ストアなどのような外部ソースからのデータとの関係を定めることができる。このシナリオでは、リレーションシップ・モジュール524は、外部データ・ストアからのデータを分析し、そのデータと、スプレッドシートに含まれる他のデータとの関係を提供するように、プログラムされる。
【0040】
[0047] 例えば、図7を参照すると、例示のデータ接続ウィザード550が示されている。この例では、データ接続ウィザード550は、ウィザードにおいて現在選択されているテーブル(1以上)と直接に関連するテーブルをユーザーが選択することを可能にする。この例では、ウィザード550において外部データ・ストア「AdventureWorksDW2008R2」が選択されており、ユーザーは、データベースと関連付けするために、スプレッドシート内の特定のテーブルを選択することができる(例えば、DimEmployeeが選択される)。この選択は、ウィザード550においてユーザーにより手動で行うことができ、また、上述のヒューリスティックを用いてプログラムにより自動的に行うことができる。他の例では、外部データ・ソースが、そのテーブル間での既に定められた関係を有する場合、それらの関係は、外部データ・ソースからデータと共にインポートすることができ、スプレッドシート・アプリケーションにおいて、そこで作られた他の関係と共に用いることができる。
【0041】
[0048] 例えば、プログラムは、外部データ・ストアについてのスキーマ情報へアクセスすることができ、これは、プログラムがテーブル間の関係を確かめることを可能にする。このスキーマ(例えば、XMLファイルの形態)は、インポートされる外部データ・ストア内のフィールド、および他の外部データ・ストアの他のデータを、関連付けすることができる。プログラムは、ユーザーのために、この情報をレバレッジしてデータ・フィールドを自動的に関連付けする。
【0042】
[0049] 図8を参照すると、クライアント・コンピューター102およびサーバー・コンピューター106の例示的なコンポーネントが示されている。例示的な実施形態では、クライアント・コンピューター102およびサーバー・コンピューター106は計算デバイスである。クライアント・コンピューター102およびサーバー・コンピューター106は、入力/出力デバイス、中央処理装置(「CPU」)、データ・ストレージ・デバイス、およびネットワーク・デバイスを含むことができる。クライアント・コンピューター102はまた、モバイル計算デバイス、例えば、ラップトップ、タブレット、コンバーチブル、またはスマートフォンやセルラー電話などのような他の手持ち型デバイスなどとすることもできる。サーバー・コンピューター106はまた、サーバーのネットワークにおける1以上のサーバー・コンピューターとして組み込むことができる。そのようなシナリオでは、ネットワークは、クラウド計算プラットフォームを提供することができ、クラウド計算プラットフォームでは、1以上のアプリケーションおよびデータが、クラウド計算プラットフォームへ接続するクライアントに対して、ホストされる。また、サーバー・コンピューター106に関する以下の記載は、クライアント・コンピューター102のコンポーネントにも適用される。
【0043】
[0050] 基本的構成では、サーバー・コンピューター106は、典型的に、少なくとも1つの処理装置602およびシステム・メモリ604を含む。計算デバイスの正確な構成およびタイプに応じて、システム・メモリ604は、揮発性(RAMなど)、不揮発性(ROM、フラッシュ・メモリなど)、またはこれら二種の何らかの組み合わせとすることができる。システム・メモリ604は、典型的には、サーバーの動作の制御に適したオペレーティング・システム606を含み、オペレーティング・システムは、例えば、ワシントン州レドモンドのマイクロソフト(登録商標)・コーポレーションからのマイクロソフト(登録商標)SharePoint(登録商標)Server 2010コラボレーション・サーバーなどである。システム・メモリ604はまた、1以上のソフトウェア・アプリケーション608を含むことができ、また、プログラム・データを含むことができる。
【0044】
[0051] サーバー・コンピューター106は、追加の構成または機能を有することができる。例えば、サーバー・コンピューター106は、コンピューター読取可能媒体も含むことができる。コンピューター読取可能媒体は、コンピューター読取可能ストレージ媒体と通信媒体との双方を含むことができる。
【0045】
[0052] コンピューター読取可能ストレージ媒体は、データ・ストレージ・デバイス(取り外し可能および/または取り外し不可能)などのような物理的媒体であり、磁気ディスク、光ディスク、テープなどを含む。そのような追加のストレージは、図8において、取り外し可能ストレージ610および取り外し不可能ストレージ612として示している。コンピューター読取可能ストレージ媒体は、揮発性および不揮発性、および取り外し可能および取り外し不可能である媒体を含むことができ、その媒体は、コンピュータ読取可能命令、データ構造、プログラム・モジュール、および他のデータなどのような情報を記憶するための任意の方法および技術で実現される。コンピュータ・ストレージ媒体は、RAM、ROM、EEPROM、フラッシュ・メモリ、または他のメモリ技術、CD−ROM、デジタル・バーサタイル・ディスク(DVD)、または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、または他の磁気記憶装置、または望まれる情報を記憶するために使用でき且つサーバー・コンピューター106によりアクセスできる他の任意の媒体を含むが、これらには限定されない。これらのようなコンピューター読取可能ストレージ媒体の任意のものをサーバー・コンピューター106の一部とすることができる。サーバー・コンピューター106はまた、入力デバイス614(1以上)を含むことができ、入力デバイスは、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイスなどである。ディスプレイ、スピーカー、プリンターなどのような出力デバイス(1以上)616も含むことができる。
【0046】
[0053] 本開示の実施形態と矛盾無く、入力デバイス614(1以上)は、ユーザーの動きやジェスチャーを検出できる任意の運動検出デバイスを含むことができる。例えば、入力デバイス614(1以上)は、マイクロソフト(登録商標)・コーポレーションからの、複数のカメラおよび複数のマイクロフォンを含むKinect(登録商標)モーション・キャプチャー・デバイスを含むことができる。
【0047】
[0054] サーバー・コンピューター106はまた、通信接続618を含むことができ、通信接続618は、デバイスが、例えば、分散型の計算環境におけるネットワークなど、例えば、イントラネットやインターネットを介して、他の計算デバイス620と通信することを可能にする。通信接続618は、通信媒体の一例である。通信媒体は、典型的には、搬送波や他のトランスポート機構などのような変調されたデータ信号におけるコンピューター読取可能命令、データ構造、プログラム・モジュール、または他のデータにより実現することができ、任意の情報配送媒体を含む。「変調されたデータ信号」という用語は、信号内において情報をエンコードするように、その信号の特性のうちの1以上の特性が設定または変更された信号を意味する。限定ではなく例として、通信媒体は、有線ネットワークや直接有線接続などのような有線媒体と、音響、RF、赤外線、および他の無線媒体などのようなワイヤレス媒体とを含む。
【0048】
[0055] 本開示の実施形態は、システム・オン・ア・チップ(SOC)を介して実施することができ、その場合、図6に示す全てまたは多くのコンポーネントを1つの集積回路に組み込むことができる。そのようなSOCデバイスは、1以上の処理装置、グラフィックス・ユニット、通信ユニット、システム仮想化ユニット、および様々なアプリケーション機能を含むことができ、それらの全ては、1つの集積回路としてチップ基板に組み込まれる(または「焼き付けされる」)。SOCを介して動作させる場合、上述の本開示に関する機能は、1つの集積回路(チップ)において計算デバイス102および106の他のコンポーネントと統合される特定用途向けロジックを介して、動作させることができる。
【0049】
[0056] 上記の様々な実施形態は、単なる例として提供されており、限定と解釈すべきではない。上記の実施形態に対して、本開示の真の精神および範囲から離れること無く、様々な改造および変更を行うことができる。
図1
図2
図3
図4
図5
図6
図7
図8