JP2013507689A - データ分析式 - Google Patents

データ分析式 Download PDF

Info

Publication number
JP2013507689A
JP2013507689A JP2012533292A JP2012533292A JP2013507689A JP 2013507689 A JP2013507689 A JP 2013507689A JP 2012533292 A JP2012533292 A JP 2012533292A JP 2012533292 A JP2012533292 A JP 2012533292A JP 2013507689 A JP2013507689 A JP 2013507689A
Authority
JP
Japan
Prior art keywords
dax
data
column
computer
data table
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012533292A
Other languages
English (en)
Other versions
JP6017309B2 (ja
JP2013507689A5 (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 JP2013507689A publication Critical patent/JP2013507689A/ja
Publication of JP2013507689A5 publication Critical patent/JP2013507689A5/ja
Application granted granted Critical
Publication of JP6017309B2 publication Critical patent/JP6017309B2/ja
Active 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Document Processing Apparatus (AREA)
  • Analysing Materials By The Use Of Radiation (AREA)

Abstract

DAXs(data analysis expressions)の受信および処理のための方法およびシステムが開示される。一の方法は、スプレッドシートのピボット・テーブルにてDAXを受信することを含む。DAXはピボット・テーブルの特定のセルに対して実行されるが、このDAXの実行は、特定のセルに関連するコンテキストを決定し、そのコンテキストに基づいてDAXの値を計算し、計算された値をその特定のセルにて出力することを含む。

Description

本発明は、多次元データ分析に関する。
多次元データ分析(例えば、複数の視点からのデータ表示および分析)は、ビジネスにおいてますます注目されている。しかしながら、現在の多次元データ分析アプリケーションは、典型的には、ユーザが、MDX(Multi-Dimensional Expression Language)のような複雑な意味言語について習熟していることを要求する。なぜならば、MDX式は、データを整理し、分析するために用いられるからである。したがって、MDXの訓練を受けていないビジネスマンにとって、多次元データ分析を行うことは難しいであろう。さらに、ビジネスマンは一般的に利用可能なスプレッドシート・アプリケーションによって提供されるデータ分析式に精通しているかもしれないが、通常、そのような式は多次元データ分析プログラムほど強力ではない。例えば、そのような式は、データの1次元(例えば、シーケンシャルな)での集計を可能とするのみであろう。したがって、複数の要因に基づいて意思決定を行う事業では、費用のかかる2つの選択肢間で選択を迫られる可能性がある。つまり、既存の従業員に対してMDXのような複雑な言語についての訓練を行うか、もしくは、多次元データ分析を専門とするアナリストを雇うかである。
DAXs(data analysis expressions)の受信および処理のシステムおよび方法が開示される。DAXは、スプレッドシート式(spreadsheet formulae)と同様の式言語(expression language)で定義することができる。また、DAXは、スプレッドシート・テーブル上で、多次元データ分析およびリレーショナル・データ・モデルに関するデータ分析を実行するように機能する。このように、DAXsによって、既存のスプレッドシート・アプリケーションに精通した人々は、多次元データ分析およびリレーショナル・データ・モデル(例えば、既存のスプレッドシート・アプリケーション内の)に関するデータ分析を行うことが可能となる。従来のスプレッドシート式とは異なり、DAXはスプレッドシートの特定のセル範囲から有効的に独立している。
例えば、DAXは受信されて、スプレッドシート・アプリケーションのピボット・テーブルにおいて実行される。ピボット・テーブルの特定のセルに対してDAXを実行することは、その特定のセルについてコンテキストを決定すること、その特定のセルのためのDAXの値を計算すること、および計算されたDAXの値をその特定のセルで出力することを含む。
DAXsは、マルチテーブルの実行をサポートする。例えば、DAXは第1のデータ・テーブルおよび第2のデータ・テーブルを参照し、DAXを実行することは、第1のデータ・テーブルと第2のデータ・テーブルとの間のリレーションシップを横断すること(例えば、第1のテーブルの列(column)と第2のテーブルの列との間に存在するリレーションシップに従うこと)を含んでもよい。DAXsは、動的な再実行(dynamic re-execution)もサポートする。例えば、DAXは、データ・テーブルの1組の行(row)に格納されるデータのユーザ変更に応答して、その1組の行に関して自動的に再実行される。
この概要は、以下の詳細な説明にさらに説明される概念をまとめたものを簡素化した形で紹介するためのものである。この概要は、特許請求の主題の重要な特徴または本質的な特徴を認定することを意図しておらず、特許請求の主題の範囲を限定することを意図したものでもない。
DAXs(data analysis expressions)を受信して処理するコンピュータ・システムの一実施形態を説明するブロック図である。 DAXs(data analysis expressions)を受信して処理するコンピュータ・システムの他の実施形態を説明するブロック図である。 図1のコンピュータ・システムが使用可能なデータ・テーブルの一実施形態を説明する図である。 図3のデータ・テーブルに基づくピボット・テーブルの一実施形態を説明する図である。 図1のコンピュータ・システムが使用可能なデータ・テーブルの他の実施形態を説明する図である。 図3のデータ・テーブルおよび図5のデータ・テーブルに基づくピボット・テーブルの一実施形態を説明する図である。 DAXs(data analysis expressions)の受信および処理の方法の一実施形態を説明するフロー図である。 DAXs(data analysis expressions)の受信および処理の方法の他の実施形態を説明するフロー図である。 DAXs(data analysis expressions)の受信および処理の方法の他の実施形態を説明するフロー図である。 図1〜図9に示される各実施形態に係るコンピュータ実装される方法、コンピュータ・プログラム製品、およびシステム・コンポーネントをサポートするように動作可能なコンピューティング・デバイスを含むコンピューティング環境のブロック図である。
DAXs(Data analysis expressions)により、スプレッドシート・アプリケーションのように、従来のデータ処理アプリケーションにおける多次元データ分析が可能となる。例えば、DAXは、スプレッドシートの列のための列定義として、またはピボット・テーブルにおける処理手法として受信されうる。DAXは列を事前設定するために実行されるが、その列では、それぞれのセルにおける値がそのセルについての行コンテキストに基づいて計算される。代わりに、ピボット・テーブルのセルは、DAXを実行することにより事前設定されるが、DAXの実行においては、ピボット・テーブルのそれぞれのセルにおける値がそのセルに関連するコンテキスト(例えば、フィルタ・コンテキスト)に基づいて計算される。
一実施形態においては、コンピュータ実装される方法は、スプレッドシートのピボット・テーブルにおけるDAX(data analysis expression)を受信することを含むことが開示される。コンピュータ実装される方法は、少なくとも1つのスプレッドシートのデータ・テーブルに対してDAX(data analysis expression)を実行することも含む。ピボット・テーブルの特定のセルのためにDAX(data analysis expression)を実行することは、その特定のセルに関連するコンテキストを決定すること、そのコンテキストに基づいてDAX(data analysis expression)の値を計算すること、および計算された値をそのセルで出力することによって果たされる。
他の実施形態においては、プロセッサによって実行されると、プロセッサに第1のスプレッドシート・テーブルの列定義を含む入力を受信させる命令を含むコンピュータ読出可能な媒体が開示される。その入力は、スプレッドシート・テーブルの少なくとも1つの列および第2のスプレッドシート・テーブルの少なくとも1つの列に基づくDAX(data analysis expression)を含む。コンピュータ読出可能な媒体は命令を含み、その命令は、プロセッサによって実行されるとプロセッサに、第1のスプレッドシート・テーブルと第2のスプレッドシート・テーブルとの間のリレーションシップを決定させ、DAX(data analysis expression)を実行することでその特定の列を事前設定させる命令である。第1のスプレッドシート・テーブルの特定の行に対してDAX(data analysis expression)を実行することは、第1のスプレッドシート・テーブルの特定の行における第1のデータ、およびその特定の行に関連付けられている行コンテキストに基づいて第2のスプレッドシート・テーブルから検索された第2のデータに基づいてDAX(data analysis expression)の値を計算することを含む。DAX(data analysis expression)を実行することは、計算された値を特定の列および特定の行の要素であるセルにて出力することをも含む。
他の実施形態においては、システムが開示される。システムは、メモリおよびデータを受信するように構成されたデータ・インタフェースを含み、受信されたデータに基づいて1つまたは複数のデータ・テーブルを生成し、データ・テーブルを列ベースのインメモリ記憶(in-memory store)(例えば、OLAP(online analytical processing)キューブ構造に対応する構造)中に記憶する。システムは、 データ・テーブルに基づいてピボット・テーブルを生成するように構成されたピボット・テーブル・モジュールをも含む。システムはさらに、DAX(data analysis expression)を受信して、データ・テーブルの少なくとも1つの列に関してそのDAX(data analysis expression)を実行するように構成された分析モジュールを含む。ピボット・テーブルの特定のセルのためにDAX(data analysis expression)を実行することは、その特定のセルに関連するフィルタ・コンテキストを決定し、その特定のセルのフィルタ・コンテキストに対応するデータ・テーブルの1つまたは複数の行に関連するデータを検索することを含む。DAX(data analysis expression)を実行することは、検索されたデータに基づいてDAX(data analysis expression)の値を計算し、計算された値をセルにて出力することを含む。
図1は、一実施形態に係るDAXs(data analysis expressions)を受信して処理するコンピュータ・システムを説明するブロック図である。コンピュータ・システム100は、データ・インタフェース110とメモリ114とを含む。コンピュータ・システム100は、スプレッドシート分析モジュール126とスプレッドシート・ピボット・テーブル・モジュール118とを含む。通常、コンピュータ・システム100は、例示のDAX104のようなDAXsを受信して処理する。DAXsは、既存のスプレッドシート式と同様の構文をとり、コンピュータ・システム100における多次元(例えば、複数テーブルおよび/または複数列)データ分析を可能とすることができる。
コンピュータ・システム100は、データ102を受信するように構成されたデータ・インタフェース110を含む。一実施形態においては、データ102は、コンピュータ・システム100のユーザによって供給される。これに代えて、データ102は、他のコンピュータ・システム、ネットワーク・ストレージ装置、またはネットワークシェアから受信されてもよい。データ・インタフェース110は、さらに、インメモリの列ベースの記憶を用いたメモリ114において受信されたデータに基づいてデータ・テーブル112を生成するように構成される。例えば、データ・インタフェース110は、スプレッドシート・アプリケーション内でテーブル(例えば、スプレッドシート・テーブル)を生成してもよく、そのテーブルはデータ102を含んでいてもよい。 OLAP(online analytical processing)キューブ116のデータ構造は、インメモリの列ベースの記憶に基づくメモリ114に構築されてもよい。OLAPキューブは、OLAPキューブの3次元(すなわち、3軸)のそれぞれが異なるデータの配置を行うように、配置されたデータを記憶してもよい。例えば、本明細書の図3〜図6を参照してさらに説明されるように、OLAPキューブは、日付ごとに配置された売上データ、製品ID、および顧客IDを構成するようになっていてもよい。これに代えて、データ・テーブル112は、OLAPハイパーキューブ(例えば、3次元よりも多次元のOLAPデータ構造)または何らかの他のインメモリの列記憶のような他のデータ構造に記憶されてもよい。メモリ114(例えば、コンピュータ・システム100のRAM(random access memory))におけるOLAPキューブ116でのデータ・テーブル112の記憶装置により、本明細書に記載されるように多次元データ分析およびピボット・テーブルの操作は容易になるであろう。データ・テーブルについては、図3および図5とともに、さらに本明細書において説明する。
コンピュータ・システム100は、 スプレッドシート・ピボット・テーブル・モジュール118をも含む。例示の実施形態においては、スプレッドシート・ピボット・テーブル・モジュール118は、コンピュータ・システム100のスプレッドシート・アプリケーションの一部である。スプレッドシート・ピボット・テーブル・モジュール118は、OLAPキューブ116によって参照されるデータ・テーブル112に基づいてピボット・テーブル122を生成するロジック120を含む。 ピボット・テーブル122は、“ピボット”の操作をサポートする。“ピボット”の操作により、ピボット・テーブル122の行ヘッダ、列ヘッダ、フィルタ、またはスライサーが変更され、ピボット・テーブル122におけるデータの値は、その変更を反映するように自動的に更新される。一実施形態においては、ピボット操作に応答してピボット・テーブル122を更新することは、インメモリのOLAPキューブ116のクエリを再実行することを含み、OLAPキューブからのデータは、OLAPキューブ116と異なる次元に沿って配置されて表示される。ピボット・テーブルについては、図4および図6を参照して、さらに本明細書において説明する。
コンピュータ・システム100は、さらにスプレッドシート分析モジュール126を含む。一例示的形態においては、スプレッドシート分析モジュール126は、コンピュータ・システム100のスプレッドシート・アプリケーションの一部である。スプレッドシート分析モジュール126は、DAX104を受信するように構成され、DAX104を実行するように構成されたDAX実行ロジック128を含む。例えば、スプレッドシート分析モジュール126は、データ・テーブル112に関してDAX104を実行する。ピボット・テーブル122の特定のセルに対してDAXを実行することは、DAX104に参照されるテーブルに対する行コンテキストと同様にその特定のセルに対するフィルタ・コンテキストを決定すること、行コンテキストに基づいてデータ124(例えば、データ・テーブル112の1つまたは複数の行に関連するデータ)をOLAPキューブ116から検索すること、検索されたデータに基づいてDAX104の値130を計算すること、および算出された値130をピボット・テーブルのそのセルにて出力することを含む。従って、ピボット・テーブル122を事前設定することは、様々なコンテキストおよび複数のデータ・テーブルのクロス・フィルタリング(cross-filtering)に関して、DAX104が自動的に再帰的に実行することを含んでもよい。これに代えて、ピボット・テーブルの複数のセルのための計算が同時に実行されように、計算はブロック・モードで実行されてもよい。
一実施形態においては、DAX104は、データ・テーブル112の複数の行に渡って集計される式を含む。その式は、スプレッドシート・アプリケーションの特定のセルの範囲を参照せずに、モジュール118、126を含むスプレッドシート・アプリケーションのネイティブ式言語で表現されたユーザ定義式であってもよい。従って、ユーザが精通している既存のスプレッドシート式を組み込みながら、DAXs(例えば、DAX104)によって、テーブルベース(例えば、列ベース)の多次元データ分析が可能となるであろう(従来のスプレッドシートのセルベースでの分析とは対照的に)。例えば、DAX104は、集計(例えば、合計、平均、最低、最大、または総数)、時間ベースの関数(例えば、日、週、月、四半期、年、最初と最後の日付、非空白期間の最初と最後の日付、月/四半期/年の始まりと終わり、追加された日付、合間の日付、期間中の日付、並行した期間、前の日/月/四半期/年、次の日/月/四半期/年、現在の日付までの月/四半期/年、去年の同じ時期、月/四半期/年に渡る集計、または月/四半期/年ごとの使用可能および使用不可の口座の残高)、またはこれらの組み合わせのいずれを含んでいてもよい。DAXは、さらに、apply関数、group by関数、 semi join関数、lookup values関数、earlier/earliest関数(例えば、セルの以前の値を指すための関数)、intersect関数、except関数、union関数、select関数、join関数、topN関数、rank関数、またはこれらの組み合わせのいずれをも含んでいてもよい。DAX104は、一般的に使用されるスプレッドシート式に類似する構文を持つ専門的なテーブルベースの関数をも含んでいてもよい。例えば、DAX104は、related table関数、related table table関数、filter table関数、distinct table関数、values table関数、all table関数、all except table関数、all no blank row table関数、またはこれらの組み合わせのいずれをも含んでいてもよい。
操作において、データ・テーブル112は、データ・インタフェース110によって受信されるデータ102に基づいて生成されてもよい。ここで、単一のデータ・テーブル112に関する操作としているのは、あくまで例示目的のものであることに留意されたい。任意の数のデータ・テーブルとデータソースが存在していてもよい。データ・テーブル112は、メモリ114のOLAPキューブ116のためのデータソースとして用いられてもよい。スプレッドシート・アプリケーションのユーザは、ピボット・テーブル122を使用してデータ・テーブル112上の分析を実行することを希望することもありうる。ピボット・テーブル122は、スプレッド・ピボット・テーブル・モジュール118によって生成される。 ピボット・テーブル122によって処理手法の出力を定義する際に、ユーザがDAX104を入力してもよい。スプレッドシート分析モジュール126は、DAX104を実行することによってピボット・テーブル122のセルを事前設定できる。ピボット・テーブル122の特定のセルを事前設定することは、その特定のセルに関連するフィルタ・コンテキストを決定すること、そのコンテキストに基づいてその特定のセルのためのDAX値130を計算すること、および計算されたDAX値130をそのセルで出力することを含んでいてもよい。
一実施形態において、DAXsの実行は、ハイブリッドな反復子ベースおよび検索ベースの実行戦略を伴う。他の実施形態においては、DAXの実行は、DAXの実行ツリーの正規の形式(例えば、非リレーショナル代数形式)のクロス・アプリケーションを含んでいてもよい。他の実施形態においては、DAXの実行は、計算列が依存しているもののサブ計算を決定するために、依存関係の分析を実行することを含んでいてもよい。その依存関係の分析に基づいて、サブ計算を計算する順序を決定することができる。例えば、計算列の値Aが3つのサブ計算B、C、およびDの結果に依存している場合、ルールが生成されて、Aを計算しようとする前にB、C、およびDのそれぞれを計算するということになるであろう。
図1に例示される実施形態はピボット・テーブルにおけるDAXsの使用を示しているが、DAXsはピボット・テーブル無しで使用される場合もあることに留意されたい。例えば、DAX104は、スプレッドシート・アプリケーションにおいて、データ・テーブル112の特定の列の列定義として入力されてもよい。DAX104は、特定の列よりも、データ・テーブル112(および可能な限り追加されたテーブル)の1つまたは複数の列に基づく。特定の列のセルを事前設定することは、そのセルについての行コンテキストを決定すること、この行コンテキストに基づいてDAX104の値を計算すること、およびDAX104のために計算された値をそのセルで出力することを含んでもよい。他の実施形態においては、DAX104は、さらに第2のデータ・テーブルの少なくとも1つの列に基づいていてもよい。このような実施形態の場合、DAXのための値を計算することは、データ・テーブル112と第2のデータ・テーブルとの間のリレーションシップに基づいて、第2のデータ・テーブルからデータを検索することを含んでもよい。例えば、データ・テーブル112は、第2のデータ・テーブルの関連する列(related column)(例えば、インデックス列)に存在する可能性のある値を含む列を含んでいてもよい。一実施形態においては、第2のデータ・テーブルは、リレーションシップが存在しない場合でさえ、その計算に関与する。例えば、DAX104を実行することは、データ・テーブル112中のデータ値に関連する行を備える第2のデータ・テーブルをフィルタすることを含んでもよい。その結果であるフィルタされた行は、その後、DAXに集計されうる。関連する列がデータ・テーブル112において、第2のデータ・テーブルにおける名前と異なる名前であったとしても、データ・テーブル112と第2のデータ・テーブルとの間のリレーションシップ(例えば、関連する列)は存在しうることに留意されたい。データ・テーブル間のリレーションシップについては、図5および図6とともに、さらに説明する。
図1のコンピュータ・システム100によって、DAXsを通じて、一般的なスプレッドシート式によっては不可能な高度なデータ分析が可能となりうることが分かるであろう。さらに、図1のコンピュータ・システム100によって、スプレッドシートの特定のセル範囲 を参照せずに、複数のテーブルに基づいてそのような高度な分析が可能となりうることも分かるであろう。
図2は、他の実施形態に係るDAXsを受信して処理するコンピュータ・システム100を説明するブロック図である。システム200は、ユーザ入力202を受け付けるように構成されたスプレッドシート・アプリケーション210を含む。スプレッドシート・アプリケーション210は、分析モジュール220を含む。例示的かつ非限定的実施形態において、分析モジュール220は、図1のスプレッドシート分析モジュール126であり、図1のDAX実行ロジック128と同様のDAX実行ロジック222を含む。
スプレッドシート・アプリケーション210は、 スプレッドシート・アプリケーション210のピボット・テーブルでの変化に応じてクエリ201を受信するように構成されたロジック204を含んでいてもよい。例えば、ロジック204は、図1のピボット・テーブル122での設定をユーザが変更したことに応じて、クエリ201を受信する。また、クエリ201を受信したことに応じて、ロジック204は、ピボット・テーブルに関連するDAXを再計算するコマンド208を自動的に生成し、そのコマンド208を分析モジュール220に送信してもよい。
スプレッドシート・アプリケーション210は、スプレッドシート・アプリケーション210での1つまたは複数のデータ・テーブルでの変化を検出するように構成されたロジック206を含んでいてもよい。例えば、ロジック206は、図1のピボット・テーブル112のようなデータ・テーブルでの変化を検出するように構成されている。このデータ・テーブルでの変化は、ユーザ入力202に基づいて検出されてもよい。例えば、ユーザ入力202は、データ・テーブルのセルのための新しい値を含んでいてもよい。データ・テーブルでの変化を検出すると、ロジック206は、変更されたデータ・テーブルに関連するDAX(例えば、列定義DAX)を再計算するコマンド208を自動的に生成し、そのコマンド208を分析モジュール220に送信してもよい。
コマンド208の受信に応じて、分析モジュール220は、スプレッドシート・アプリケーションにて1つまたは複数のDAXsを自動的に再計算する。例えば、分析モジュール220は、スプレッドシート・アプリケーション210のデータ・テーブルでの列定義DAXs、スプレッドシート・アプリケーション210のピボット・テーブルでのDAXs、またはこれらの任意の組み合わせを自動的に再計算してもよい。
図2のシステム200は、DAXsの自動的な再計算を可能とすることで、ユーザをスプレッドシート・アプリケーション210により慣れさせることができることを理解されたい。従って、スプレッドシート・アプリケーションのユーザは、データ・テーブルおよびピボット・テーブルを変更すると、これに応じて、再定義および手動によるDAXsの再実行をせずともDAX値が変化することが分かるであろう。よって、DAXは、一旦入力されると変化するデータに関する多次元データ分析を複数回実行するために使用されることを理解されたい。
図3および図4は、一実施形態に係る図1のデータ・テーブル112(売上テーブル300として示される)および売上テーブル300に基づいて生成されるピボット・テーブル400を説明する図である。売上テーブル300は、1つまたは複数の行310、および列320、330、340、350、360、370を含む。一例示的形態においては、売上テーブル300は、図1のデータ・テーブル112を含んでいる。
売上テーブル300の行310のそれぞれは売買取引を表し、売上テーブル300の各列320〜370は売買取引に関連するデータを表している。例えば、列320は売上げの日付を表し、列330はその売上について支払いをした顧客を識別する顧客識別子(CustID)を表し、列340は支払いが行われた製品を識別する製品識別子(ProdID)を表し、列350は売られた製品の数量を表し、列360は売られた製品の単価を表し、列370は売上の合計金額370を表す。一実施形態においては、合計列370は、スプレッドシート式(例えば、"=Qty*Price")で定義される。売上テーブル300はさらに、合計列370の静的和集合380を有する。
DAXに含まれる列の参照は多様であることに留意されたい。つまり、DAX中の列参照は、列の計算に使用されると、その結果は列となる場合があり、スカラ計算に使用されると、その結果はその列の特定の行に格納される値となる場合がある。例えば、列の計算に使用されると、列参照“Amount”は列370となるが、スカラ計算に使用されると、参照“Amount”は図3の行310のうちの特定の行に格納される“Qty*Price”の値となる。DAX、またはこの一部は、スカラ計算の中間結果として使用可能なテーブルとなりうる関数または式を含んでもよいことについても留意されたい。
図4に説明される本実施形態においては、ピボット・テーブル400は、図3の売上テーブル300の、「data」列320、および「ProdID」列340と「CustID」列330の組み合わせによって決まる。すなわち、ピボット・テーブル400は、図3の売上テーブル300からの「date」と「ProdlD/CustID」のコンテキストに基づいてデータを集計する。例えば、DAX410“SUM [Amount]”は、ピボット・テーブル400で受け付けられるが、これは、図3の売上テーブル300の「date」、「ProdID」、および「CustID」の様々な組み合わせ(つまり、コンテキスト)に対して、ピボット・テーブル400のセルが、図3の合計列370の和集合を含むことを強く示している。従って、ピボット・テーブル400の第1の例示的セル412は、顧客に関係なく2009年の間に"456Red"という製品を売ることによって得た(売上げの)合計を示し、第2の例示的セル414は、2008年の間の顧客"Jon200"に"789Green"という製品を売ることによって得た(売上げの)合計を示している。すなわち、第1のセル412に関連する第1のコンテキストは"Time[Year]=2009; Product[ProdID]='456Red'"であり、第2のセル414に関連する第2のコンテキストは"Time[Year]=2008; Product[ProdID]='789Green'; Customer[CustID]='Jon200'"である。
コンテキストは不等号を含んでもよいことに留意されたい。例えば、顧客"Jon200"に購入された200ドルより高価な製品は、"Customer[CustID]='Jon200'; Product[Price]>200.00"というコンテキストを使用することが決定されるであろう。
DAX410とは異なるDAXを使用することでも、ピボット・テーブル400が生成されることに留意されたい。例えば、図3の合計列370が存在しないとすると、DAX410に合計列370の式"=Qty*Price"を組み込むことでピボット・テーブル400は生成されるであろう。例えば、DAX410は、"SUM[Qty*Price]"、となるであろう。
図4のピボット・テーブル400の複数のセルは、図4のDAX410を複数回入力しなくとも、図3の売上テーブルに関連するコンテキストに基づいて事前設定されてもよいことを理解されたい。その代わり、図4のDAX410は、図4のピボット・テーブル400の各セルに関連した異なるコンテキストに基づいて、図4のピボット・テーブル400の各セルに対して自動的かつ再帰的に再実行されてもよい。静的和集合380は、売り上げた製品の全ての合計を示すことができるが、その代わりにDAX410は売り上げた製品の多次元的視点(例えば、製品ごとの合計、年ごとの合計、製品と年の組み合わせごとの合計)を提供することに用いられてもよいことをさらに理解されたい。
図5および図6は、他の実施形態に係る図1のデータ・テーブル112(在庫テーブル500として図示)並びに、図3および図5のデータ・テーブル(例えば、図3の売上テーブル300および図5の在庫テーブル500)に基づくピボット・テーブル600を示している。在庫テーブル500の行510のそれぞれは売ることが可能な製品を表しており、列520〜540は各製品に関連するデータを表している。例えば、列520は各製品の製品識別子(ProdID)を表し、列530は各製品の説明を表し、列540は各製品について現在いくつの在庫があるかを表す。
在庫テーブル500の1つまたは複数の列は、DAX列定義も含む。例えば、売り上げ個数列550は、DAX列定義"SUM[Qty]"560と関連する。売り上げ個数列550の行は、様々な製品について図3の「Qty」列350を集計することで事前設定することができる。例えば、セル552は、'789Green'のProdIDを持つ行について図3の売上テーブル300をフィルタリングし、そして残った行の「Qty」列を集計することで、事前設定することができる。セル552を事前設定するために、図3の売上テーブル300と図5の在庫テーブル500との間のリレーションシップ(例えば、事前にユーザが定義したリレーションシップ)(例えば、図3の「ProdID」列370と図5の「ProdID」列520とが関連している)が自動的に認定され、スキャンされてもよいことを理解されたい。テーブル(例えば、図3の売上テーブル300)をフィルタリングすることは、テーブルベースフィルタのみならずブールフィルタを含んでいてもよいことに留意されたい。
ピボット・テーブル600は、複数のデータ・テーブルの列によって決まる。図6に説明される一実施形態において、ピボット・テーブル600は、図3のデータ列320、および図5の「description」列530と図300の「CustID」列との組み合わせをピボットする。すなわち、ピボット・テーブル600が1つのテーブル、つまり図3の売上テーブルからデータを集計したとして、その集計は図3の売上テーブル300と図5の在庫テーブル500の双方からのコンテキストに基づいたものであってもよい。
ピボット・テーブル600は図4のDAX410と同様にDAX610"SUM[Amount]"を受信し、DAX610の値は、ピボット・テーブル600のセルを設定するために再帰的に計算されてもよい。ピボット・テーブル600を事前設定することは、図3の売上テーブル300と図5の在庫テーブルとの間のリレーションシップを認定し、図3の売上テーブルと図5の在庫テーブルの双方からデータを検索することを含んでいてもよい。例えば、図6に説明される一実施形態においては、図3のテーブル300と図5のテーブル500との間のリレーションシップが自動的に認定されてもよい。そのリレーションシップは、関連する図3の列340と図5の列520を含んでおり、これらは双方とも製品識別子(ProdID)列である。一実施形態において、関連する列はインデックス列である。このように、ピボット・テーブル600の行ヘッダ612"Blue Bike"は、認定された図4の売上テーブル300と図5の在庫テーブル500との間のリレーションシップに基づいて事前設定されてもよい。ピボット・テーブル600の第1の例示としてセル614は、第1のコンテキスト"Time[Year]=2009; Product[Description]=' ed Bike'"と関連し、ピボット・テーブル600の第2の例示としてセル616は、第2のコンテキスト"Time[Year]=2008; Product[Description]='Green Trike'; Customer[CustID]='Jon200'"と関連している。
このことから分かるように、DAXs(例えば、図5のDAX560と図6のDAX610)によって、複数のテーブルにまたがる多次元データ分析が可能となるであろう。さらに、ピボット・テーブル(例えば、図5のピボット・テーブル600)のみならず、テーブルそのもの(例えば、図5の列550)においても、このような多次元データ分析が生じうることをさらに理解されたい。
図7は、一実施形態に係るDAXsの受信および処理の方法700を説明するフロー図である。一例示的形態において、方法700は、図1のコンピュータ・システム100によって実行されてもよい。
方法700は、702にて、スプレッドシートのピボット・テーブルにおいてDAXを受信することを含む。例えば、図1において、DAX104はピボット・テーブル122にて受信される。例示として、図4を参照すると、DAXは、DAX"SUM[Amount]"410となる。
方法700は、704にて、DAXを実行することも含む。例えば、図1において、スプレッドシート分析モジュール126はDAX104を実行する。ピボット・テーブルの特定のセルに関して、DAXを実行することは、706にてその特定のセルに関連するコンテキストを決定すること、708にてそのコンテキストに基づいてDAXの値を計算すること、および710にて計算された値をその特定のセルにて出力することを含む。例えば、図1において、コンテキストが決定され、そのコンテキストに基づくデータ124が検索され、DAX値130が計算されてピボット・テーブル122の特定のセルにて出力される。例示として、図4を参照すると、特定のセルは図4のセル414であり、コンテキストは"Time[Year]=2008; Product[ProdID]='789Green'; Customer[CustID]='Jon200'"であり、DAXのセル414にて出力される算出値は"$1,500"となるであろう。
図8は、他の実施形態に係るDAXsの受信および処理の方法800を説明するフロー図である。一例示的形態において、方法800は、図1のコンピュータ・システム100または図2のシステム200によって実行されてもよい。
方法800は、802にてスプレッドシートのピボット・テーブルにてDAXを受信することを含む。DAXは、スプレッドシートのネイティブ式言語で表現されたユーザ定義式を含む(例えば、DAXは既存のスプレッドシート関数および既存のスプレッドシート関数に類似の構文を含む)。例えば、図1において、DAX104はピボット・テーブル122にて受信される。
方法800は、804にて、DAXを実行することも含む。例えば、図1において、スプレッドシート分析モジュール126はDAX104を実行する。ピボット・テーブルの特定のセルに関して、DAX104を実行することは、806にてその特定のセルに関連するコンテキストを決定することを含む。このコンテキストを決定することは、その特定のセルに基づいて少なくとも1つのデータ・テーブルをフィルタリングすることを含む。DAX104を実行することは、さらに、808にてそのコンテキストに基づいてDAX104の値を計算すること、および810にて計算された値をその特定のセルにて出力することを含む。例えば、図1において、コンテキストが決定され、データ・テーブル112はそのコンテキストに基づいてフィルタされる(例えば、コンテキストに合致しない行は一時的に隠蔽されるか無視される)。そして、そのコンテキストに基づくデータ124が検索され、DAX値130が計算されてピボット・テーブル122の特定のセルにて出力される。
方法800は、さらに、812にてピボット・テーブルにおける変化に応じてクエリを受信すること、または814にて少なくとも1つのデータ・テーブルにおける変化を検出することを含む。例えば、図1において、ピボット・テーブル122のピボット操作が発生し、またはデータ・テーブル112における変化が検出される。一例示的形態において、図2のロジック204に関して本明細書に記載のようにクエリが受信され、図2のロジック206に関して本明細書に記載のように少なくとも1つのデータ・テーブルにおける変化が検出される。
方法800は、816にて、806に戻ることによって、DAX104を自動的かつ再帰的に再実行することを含む。例えば、図1において、スプレッドシート分析モジュール126は自動的にDAX104を再実行する。一例示的形態において、図2のコマンド208およびモジュール220に関して本明細書に記載のように、自動的なDAX104の再実行が実行される。
図9は、他の実施形態に係るDAXsの受信および処理の方法900を説明するフロー図である。一例示的形態において、方法900は図1のコンピュータ・システム100によって実行される。
方法900は、902にて、第1のスプレッドシート・テーブルの特定の列の列定義を含む入力を受信することを含む。この入力は、第1のスプレッドシート・テーブルの少なくとも1つの列に、および第2のスプレッドシート・テーブルの少なくとも1つの列に基づくDAXを含む。例えば、図5を参照すると、DAX"SUM[Qty]"560は列550のための列定義として受信され、DAX560は、図3の売上テーブル300および図5の在庫テーブルの双方が該当する。
方法900は、904にて、DAXに基づいて、第1のスプレッドシート・テーブルと第2のスプレッドシート・テーブルとの間のリレーションシップを決定することをも含む。一実施形態においては、そのリレーションシップは、関連する列、インデックス列、または2つのスプレッドシート・テーブルにおいて異なる名前を持つ列である。例えば、図3の「ProdID」列340および図5の「ProdID」列520を関連する列として認定するように、図3の売上テーブル300と図5の在庫テーブルとの間のリレーションシップが認定されうる。
方法900は、さらに、906にてDAXを実行することにより特定の列を事前設定することを含む。第1のスプレッドシート・テーブルの特定の行に対してDAXを実行することは、908にてDAXの値を計算すること、および910にて計算された値を特定の行および特定の列の要素であるセルで出力することを含む。その値は、第1のスプレッドシート・テーブルの特定の行における第1のデータ、およびその特定の行に関連する行コンテキストに基づいて第2のテーブルから検索される第2のデータに基づいて算出される。例えば、図5を参照すると、行コンテキスト"Product [ProdID] ='789Green'"に合致する売上テーブル300の行を集計し、その結果の値をセル552で出力することで、セル552は事前設定される。
方法900は、912にて第1のスプレッドシート・テーブルの行のサブセットの選択を受信すること、および914にて、908に戻ることによって、選択された行のサブセットのためにDAXを自動的に再実行することを含む。例えば、図5を参照すると、1つまたは複数の行510の選択が受信され、DAX560が選択された行に対して再実行される。
図10は、本開示による実施形態に係るコンピュータ実装される方法、コンピュータ・プログラム製品、およびシステム・コンポーネントをサポートするように動作可能なコンピューティング・デバイス1010を含むコンピューティング環境1000のブロック図を示す。一例示的形態においては、コンピューティング・デバイス1010は、図1のデータ・インタフェース110、図1のメモリ114、図1のモジュール118、126、図2のロジック204、206、または図2のモジュール220を含んでいてもよい。図1のデータ・インタフェース110、図1のメモリ114、図1のモジュール118、126、図2のロジック204、206、または図2のモジュール220のそれぞれは、コンピューティング・デバイス1010またはその一部を含んでいてもよい。
コンピューティング・デバイス1010は、少なくとも1つのプロセッサ1020およびシステム・メモリ1030を含む。構成およびコンピューティング・デバイスの種類によって、システム・メモリ1030は、(ランダム・アクセス・メモリまたは"RAM"のような)揮発性、(リード・オンリー・メモリまたは"ROM"、フラッシュ・メモリ、および電力が供給されない場合さえも記憶されたデータを保持するこれらと同様のメモリ・デバイスのような)不揮発性、またはこれら2種類の組み合わせであってもよい。システム・メモリ1030は、一般的には、オペレーティング・システム1032、1つまたは複数のアプリケーション・プラットフォーム1034、1つまたは複数のアプリケーション(例えば、スプレッドシート・アプリケーション1036)を含み、1つまたは複数のアプリケーション(例えば、OLAPキューブ・データ構造1038)に関連するプログラム・データを含んでいてもよい。一例示的形態においては、スプレッドシート・アプリケーション1036は図2のスプレッドシート・アプリケーション210であり、OLAPキューブ・データ構造1038は図1のOLAPキューブ・データ構造116である。一例示的形態においては、本明細書に開示のように、システム・メモリ1030は1つまたは複数の論理的コンポーネントまたはモジュールを含んでいてもよい。例えば、システム・メモリ1030は、図1の1つまたは複数のモジュール118、126、図2のロジック204、206、または図2のモジュール220を含んでいてもよい。
コンピューティング・デバイス1010は、さらに追加の特徴または機能を有していてもよい。例えば、コンピューティング・デバイス1010は、磁気ディスク、光ディスク、記録テープ、および標準サイズまたは小型のフラッシュ・メモリ・カードのようなリムーバブルおよび/または固定式の追加の記憶デバイスを備えていてもよい。そのような追加の記憶デバイスは、図10では、リムーバブル記憶装置1040および固定式記憶装置1050として記載されている。コンピュータ記憶媒体は、コンピュータ読取可能な命令、データ構造、プログラム・コンポーネント、または他のデータのような情報を記憶するための任意の方法または技術が実装された揮発性および/または不揮発性の記憶装置、並びにリムーバブルおよび/または固定式の媒体を含んでいてもよい。システム・メモリ1030、リムーバブル記憶装置1040、および固定式記憶装置1050は、コンピュータ記憶媒体の全ての例を網羅するものである。コンピュータ記憶媒体は、これに限定されるものではないが、情報を記憶するために用いることが可能であり、コンピューティング・デバイス1010によってアクセス可能な、RAM、ROM、EEPROM(electrically erasable programmable read-only memory)、フラッシュ・メモリもしくは他のメモリ技術、CD(compact disks)、DVD(digital versatile disks)もしくは他の光学式記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または任意の他の媒体を含む。このようなコンピュータ記憶媒体はいずれもコンピューティング・デバイス1010の一部になりうる。コンピューティング・デバイス1010はさらに、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイス、等の入力デバイス1060を備えることができる。ディスプレイ、スピーカ、プリンタ、等の出力デバイス1070も備えることができる。
コンピューティング・デバイス1010は、1つまたは複数の通信接続1080も含み、通信接続1080によりコンピューティング・デバイス1010は他のコンピューティング・デバイス1090を有線または有線ネットワークを介して通信を行うことができる。一例示的形態においては、通信接続1080は図1のデータ・インタフェース110を含み、図1のデータ102が、共有ネットワーク記憶デバイスのような他のコンピューティング・デバイス1090から受信される。
図10に図示された、またはさもなければ前の段落にて説明されたコンポーネントまたはデバイスは、本明細書に記載の実施形態をサポートするために、すべてを要するわけではないことを理解されたい。例えば、入力デバイス1060および出力デバイス1070は任意の構成である。
本明細書に記載された実施形態の説明は、様々な実施形態の構成が一般的に理解されることを意図している。その説明は、本明細書に記載された構成および方法を利用する装置およびシステムのエレメントおよび機能のすべてを完全に説明することを意図しているわけではない。多くの他の実施形態は、本開示をレビューするいわゆる当業者には明らかであろう。本開示の範囲を逸脱しない範囲で構造上の、および論理的な置換物および変形物が成されるように、他の実施形態は、本開示から利用され派生するであろう。よって、本開示および図面は限定的ではなく例示的なものであるとみなされるべきである。
いわゆる当業者であれば、さらに、本明細書に開示の実施形態に関連して記載された様々な例示的論理ブロック、構成、モジュール、および処理または命令ステップは、電子的ハードウェア、コンピュータ・ソフトウェア、またはこれらの組み合わせとして実装できることは理解できるであろう。様々な例示的コンポーネント、ブロック、構成、モジュール、またはステップは、これらの機能に関して一般的に記載されている。このような機能がハードウェアまたはソフトウェアとして実装されるかは、全体的なシステムに課される特定のアプリケーションおよび設計の制約に依存する。習熟した専門家は、記載された機能を様々な方法でそれぞれの特定のアプリケーション用に実装することができるであろう。しかし、そのような実装を行うことは、本発明の開示の範囲から逸脱するものであると解釈されるべきではない。
本明細書に開示の実施形態に関して記載される方法のステップは、ハードウェア、プロセッサによって実行されるソフトウェア・モジュール、またはこれら2つの組み合わせによって、直接的に具体化することができる。ソフトウェア・モジュールは、当技術分野で公知の、RAM(random access memory)、フラッシュ・メモリ、ROM(read only memory)、レジスタ、ハードディスク、着脱可能なディスク、CD−ROM、または任意の他の形態の記憶媒体のような、コンピュータ読取可能な媒体に記憶することができる。例示的には、記憶媒体は、プロセッサがその記憶媒体から情報を読み出し可能であり、かつその記憶媒体に情報を書き込み可能であるように、プロセッサに接続されている。(is coupled)代替物においては、記憶媒体はプロセッサと一体的となっていてもよく、またはプロセッサおよび記憶媒体は別々コンポーネントとしてコンピューティング・デバイスまたはコンピュータ・システムに存在していてもよい。
本明細書には特定の実施形態が図示され説明されているが、同じまたは同様の目的を達成するために設計されるいかなる後続の装置は、示される特定の実施形態の代替物であることを理解されたい。本開示は、任意のおよびすべての、後に続く改造物または変形物をカバーすることを意図している。
本開示の要約は、特許請求の範囲または意味を解釈または限定するために用いらないという理解のもとに記載される。加えて、前述の詳細な説明においては、本開示を合理化するために、様々な機能はともにまとめられ、または単一の実施形態に記載されている。本開示は、特許請求の実施形態が、それぞれの特許請求において明示的に詳述されているよりもより多くの機能を必要とするという意図を反映しているように解釈されるべきではない。むしろ、以下の特許請求が反映するように、発明の主題は、いずれの開示の実施形態のすべての機能よりも少ないことが示されているであろう。
前述した実施形態の記載は、いわゆる当業者がその実施形態を実現し利用できるように示されている。これらの実施形態に対する様々な変更は、いわゆる当業者にとって容易に明らかであろう。そして、本明細書に定義された一般的原理は、本開示の範囲を逸脱しない範囲で、他の実施形態に適用することが可能であろう。従って、本発明の開示は、本明細書に示された実施形態に限定されることは意図していないが、以下の特許請求に定義されるように、その原理および新規の特徴に一致する範囲で可能な限り広い範囲が与えられることを意図している。

Claims (15)

  1. コンピュータに実装される方法であって、
    スプレッドシートのピボット・テーブルにてDAX(data analysis expression)を受信する第1のステップと、
    前記DAXを実行する第2のステップであって、前記ピボット・テーブルの特定のセルに対して前記DAXを実行することは、
    前記特定のセルに関連するコンテキストを決定すること、
    前記コンテキストに基づいて前記DAXの値を計算すること、および
    前記算出された値を前記特定のセルにて出力することを含む第2のステップと、
    を備えることを特徴とするコンピュータに実装される方法。
  2. 前記ピボット・テーブルまたは少なくとも1つのデータ・テーブルが変化したことの兆候を受信するステップと、
    自動的に前記DAXを再計算するステップと、
    をさらに備えることを特徴とする請求項1に記載のコンピュータに実装される方法。
  3. 前記少なくとも1つのデータ・テーブルの行のサブセットの選択を受信するステップと、
    前記選択された行のサブセットに関して自動的に前記DAXを計算するステップと、
    をさらに備えることを特徴とする請求項2に記載のコンピュータに実装される方法。
  4. 前記DAXは、少なくとも1つのデータ・テーブルの複数の行に渡って集計される式(formula)を含むことを特徴とする請求項1に記載のコンピュータに実装される方法。
  5. 前記式は、前記スプレッドシートのネイティブ式言語(native formula language)で表現されるユーザ定義式であることを特徴とする請求項4に記載のコンピュータに実装される方法。
  6. 前記式を実行することで、スカラ計算の中間結果として使用可能なテーブルが生成されることを特徴とする請求項5に記載のコンピュータに実装される方法。
  7. 前記特定のセルに関連する前記コンテキストを決定することは、前記特定のセルに基づいて少なくとも1つのデータ・テーブルをフィルタリングすることを含むことを特徴とする請求項1に記載のコンピュータに実装される方法。
  8. 前記ピボット・テーブルのピボット操作に応答して、前記DAXを自動的に再算出するステップ
    をさらに備えることを特徴とする請求項1に記載のコンピュータに実装される方法。
  9. 前記DAXは少なくとも1つのデータ・テーブルの列への参照を含み、前記参照が列の計算に用いられると前記列への前記参照の結果は前記列となり、前記参照がスカラ計算に用いられると前記列への前記参照の結果は前記列の特定の行に格納される値となることを特徴とする請求項1に記載のコンピュータに実装される方法。
  10. 前記DAXを実行するステップは、
    少なくとも1つのデータ・テーブルおよび第2のデータ・テーブルとの間のリレーションシップを認定するステップと、
    前記認定されたリレーションシップに基づいて、前記第2のデータ・テーブルから自動的にデータを検索するステップと、
    をさらに含むことを特徴とする請求項1に記載のコンピュータに実装される方法。
  11. 前記リレーションシップは、前記少なくとも1つのデータ・テーブルのインデックス列、前記第2のデータ・テーブルのインデックス列、またはこれらの任意の組み合わせである関連する列を含むことを特徴とする請求項10に記載のコンピュータに実装される方法。
  12. 前記関連する列は、前記少なくとも1つのデータ・テーブル中の第1の列名、および前記第1の列名とは異なる前記第2のデータ・テーブル中の第2の列名を持つことを特徴とする請求項11に記載のコンピュータに実装される方法。
  13. 前記スプレットシートの少なくとも1つのデータ・テーブルは、インメモリ(in-memory)列記憶データ構造、OLAP(online analytical processing)データ構造、またはこれらの任意の組み合わせに記憶されることを特徴とする請求項1に記載のコンピュータに実装される方法。
  14. メモリと、
    データを受信し、データ・テーブルで前記受信されたデータを前記メモリにOLAP(online analytical processing)キューブ・データ構造で記憶するように構成されたデータ・インタフェースと、
    前記データ・テーブルに基づいてピボット・テーブルを生成するように構成されたピボット・テーブル・モジュールと、
    DAXを受信し、前記ピボット・テーブルの特定のセルに対して前記DAXを実行することが、前記特定のセルに関連する行コンテキストを決定すること、前記行コンテキストに対応する前記データ・テーブルの1つまたは複数の行に関連するデータを前記OLAPキューブ・データ構造から検索すること、前記検索されたデータに基づいて前記DAXの値を計算すること、および前記計算された値を前記特定のセルにて出力することを含んで前記DAXを実行するように構成された分析モジュールと、
    を備えることを特徴とするコンピュータ・システム。
  15. 前記メモリは、RAM(random access memory)であることを特徴とする請求項1に記載のコンピュータ・システム。
JP2012533292A 2009-10-09 2010-10-06 データ分析式 Active JP6017309B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/576,254 US9275031B2 (en) 2009-10-09 2009-10-09 Data analysis expressions
US12/576,254 2009-10-09
PCT/US2010/051696 WO2011044286A2 (en) 2009-10-09 2010-10-06 Data analysis expressions

Publications (3)

Publication Number Publication Date
JP2013507689A true JP2013507689A (ja) 2013-03-04
JP2013507689A5 JP2013507689A5 (ja) 2013-11-28
JP6017309B2 JP6017309B2 (ja) 2016-10-26

Family

ID=43855804

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012533292A Active JP6017309B2 (ja) 2009-10-09 2010-10-06 データ分析式

Country Status (5)

Country Link
US (4) US9275031B2 (ja)
EP (1) EP2486501A4 (ja)
JP (1) JP6017309B2 (ja)
CN (2) CN105260347B (ja)
WO (1) WO2011044286A2 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9747270B2 (en) 2011-01-07 2017-08-29 Microsoft Technology Licensing, Llc Natural input for spreadsheet actions
US9721030B2 (en) * 2010-12-09 2017-08-01 Microsoft Technology Licensing, Llc Codeless sharing of spreadsheet objects
US8589336B1 (en) * 2011-04-25 2013-11-19 Netapp, Inc. Framework for automated storage processes and flexible workflow
US8645346B2 (en) 2011-06-16 2014-02-04 Microsoft Corporation Composable SQL query generation
US9348941B2 (en) * 2011-06-16 2016-05-24 Microsoft Technology Licensing, Llc Specification of database table relationships for calculation
US9135233B2 (en) 2011-10-13 2015-09-15 Microsoft Technology Licensing, Llc Suggesting alternate data mappings for charts
US9411797B2 (en) * 2011-10-31 2016-08-09 Microsoft Technology Licensing, Llc Slicer elements for filtering tabular data
US10061473B2 (en) 2011-11-10 2018-08-28 Microsoft Technology Licensing, Llc Providing contextual on-object control launchers and controls
US8793567B2 (en) 2011-11-16 2014-07-29 Microsoft Corporation Automated suggested summarizations of data
US20130145244A1 (en) * 2011-12-05 2013-06-06 Microsoft Corporation Quick analysis tool for spreadsheet application programs
US9235633B2 (en) 2011-12-06 2016-01-12 International Business Machines Corporation Processing data in a data warehouse
CN102799652B (zh) * 2012-06-29 2014-11-12 用友软件股份有限公司 多维数据展现装置和多维数据展现方法
US8983900B2 (en) * 2012-10-23 2015-03-17 Sap Se Generic semantic layer for in-memory database reporting
US9146994B2 (en) * 2013-03-15 2015-09-29 International Business Machines Corporation Pivot facets for text mining and search
US20140372932A1 (en) * 2013-06-15 2014-12-18 Microsoft Corporation Filtering Data with Slicer-Style Filtering User Interface
US10664652B2 (en) 2013-06-15 2020-05-26 Microsoft Technology Licensing, Llc Seamless grid and canvas integration in a spreadsheet application
US10156961B1 (en) * 2013-09-24 2018-12-18 EMC IP Holding Company LLC Dynamically building a visualization filter
US10163234B1 (en) 2014-09-08 2018-12-25 Tableau Software, Inc. Systems and methods for providing adaptive analytics in a dynamic data visualization interface
US9922081B2 (en) * 2015-06-11 2018-03-20 Microsoft Technology Licensing, Llc Bidirectional cross-filtering in analysis service systems
JP6716873B2 (ja) * 2015-08-10 2020-07-01 富士通株式会社 データ処理方法、データ処理プログラムおよび情報処理装置
CN106502966B (zh) * 2015-09-07 2019-08-20 北京国双科技有限公司 Excel文档处理方法和装置
US10521077B1 (en) * 2016-01-14 2019-12-31 Tableau Software, Inc. Visual analysis of a dataset using linked interactive data visualizations
US10824803B2 (en) 2016-09-12 2020-11-03 DataRails LTD. System and method for logical identification of differences between spreadsheets
US11170164B2 (en) 2016-12-11 2021-11-09 DataRails LTD. System and method for cell comparison between spreadsheets
US11475212B2 (en) * 2017-04-06 2022-10-18 Otsuka Pharmaceutical Development & Commercialization, Inc. Systems and methods for generating and modifying documents describing scientific research
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
US11586603B1 (en) 2018-05-23 2023-02-21 Amazon Technologies, Inc. Index sheets for robust spreadsheet-based applications
US11429604B2 (en) * 2019-09-10 2022-08-30 Oracle International Corporation Techniques of heterogeneous hardware execution for SQL analytic queries for high volume data processing
CN112784557B (zh) * 2019-11-08 2023-06-30 珠海金山办公软件有限公司 一种确定数据透视表的方法及装置
CN114912427A (zh) * 2021-02-10 2022-08-16 微软技术许可有限责任公司 响应于用户输入的数据表分析
US20220284182A1 (en) * 2021-02-26 2022-09-08 Finicast, Inc. Apparatus and method for forming pivot tables from pivot frames
CN115034175A (zh) * 2021-07-23 2022-09-09 北京字跳网络技术有限公司 表格数据处理方法、装置、终端和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006107441A (ja) * 2004-09-30 2006-04-20 Microsoft Corp データのテーブルを扱うためのスプレッドシート関数のデザイン
JP2006107444A (ja) * 2004-09-30 2006-04-20 Microsoft Corp スプレッドシートの数式内の動的データを参照する方法および実装

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0737008A (ja) * 1993-06-29 1995-02-07 Hitachi Ltd 表計算処理装置の表示制御方法
US5603021A (en) 1994-09-02 1997-02-11 Borland International, Inc. Methods for composing formulas in an electronic spreadsheet system
US5870747A (en) * 1996-07-09 1999-02-09 Informix Software, Inc. Generalized key indexes
US6292811B1 (en) * 1997-09-19 2001-09-18 Modernsoft, Inc. Populating cells of an electronic financial statement
US20020029207A1 (en) * 2000-02-28 2002-03-07 Hyperroll, Inc. Data aggregation server for managing a multi-dimensional database and database management system having data aggregation server integrated therein
AUPQ836500A0 (en) * 2000-06-26 2000-07-20 Dstc Pty Ltd Parallel execution mechanism for spreadsheets
US20020184260A1 (en) * 2001-05-30 2002-12-05 Paul Martin Multidimensional data entry in a spreadsheet
US20030009649A1 (en) * 2001-05-30 2003-01-09 Paul Martin Dynamic conversion of spreadsheet formulas to multidimensional calculation rules
US7925616B2 (en) * 2001-06-19 2011-04-12 Microstrategy, Incorporated Report system and method using context-sensitive prompt objects
EP1618488B1 (en) * 2003-04-18 2006-11-08 International Business Machines Corporation System and method in a data table for managing insertion operations in recursive scalable template instances
US7530012B2 (en) * 2003-05-22 2009-05-05 International Business Machines Corporation Incorporation of spreadsheet formulas of multi-dimensional cube data into a multi-dimensional cube
US7299223B2 (en) 2003-07-16 2007-11-20 Oracle International Corporation Spreadsheet to SQL translation
US7337176B1 (en) * 2003-08-29 2008-02-26 Sprint Communications Company L.P. Data loading tool for loading a database
US7882132B2 (en) * 2003-10-09 2011-02-01 Oracle International Corporation Support for RDBMS in LDAP system
US7213199B2 (en) * 2004-07-16 2007-05-01 Cognos Incorporated Spreadsheet user-interface for an enterprise planning system having multi-dimensional data store
US7991804B2 (en) * 2004-07-30 2011-08-02 Microsoft Corporation Method, system, and apparatus for exposing workbooks as data sources
US20060036939A1 (en) 2004-08-13 2006-02-16 Microsoft Corporation Support for user-specified spreadsheet functions
US7676738B2 (en) * 2004-09-13 2010-03-09 Whitebirch Software, Inc. Scenario-dependent evaluation formula
US20060085386A1 (en) 2004-10-19 2006-04-20 Microsoft Corporation Two pass calculation to optimize formula calculations for a spreadsheet
US7634730B2 (en) * 2004-12-15 2009-12-15 Microsoft Corporation Task helpers
US20060235834A1 (en) 2005-04-14 2006-10-19 Microsoft Corporation Path expression in structured query language
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
US8095866B2 (en) 2005-09-09 2012-01-10 Microsoft Corporation Filtering user interface for a data summary table
US7805433B2 (en) * 2005-10-14 2010-09-28 Microsoft Corporation Multidimensional cube functions
JP4140919B2 (ja) * 2006-03-14 2008-08-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 表計算などの処理を行うシステムおよびその方法
CN1821993A (zh) * 2006-03-24 2006-08-23 无锡永中科技有限公司 基于时间序列的电子表格数据处理方法
US8656271B2 (en) 2006-07-31 2014-02-18 Sap Ag Adapting a spreadsheet for use with a complex object
US7814052B2 (en) 2006-11-03 2010-10-12 Salesforce.Com, Inc. Implementing formulas for custom fields in an on-demand database
US20080294612A1 (en) * 2007-05-22 2008-11-27 It-Workplace Method For Generating A Representation Of A Query
US8200604B2 (en) 2007-06-29 2012-06-12 Microsoft Corporation Multi-platform business calculation rule language and execution environment
US8112701B2 (en) * 2007-08-06 2012-02-07 Apple Inc. Reference adding behavior in formula editing mode
US9268837B2 (en) 2007-12-04 2016-02-23 International Business Machines Corporation Data entry commentary and sheet reconstruction for multidimensional enterprise system
US9330149B2 (en) * 2007-12-18 2016-05-03 Oracle International Corporation Techniques for query and DML over relational tables using spreadsheet applications
US20090327851A1 (en) * 2008-06-27 2009-12-31 Steven Raposo Data analysis method
US9996519B2 (en) * 2008-09-30 2018-06-12 Apple Inc. Context sensitive computations
US8386916B2 (en) * 2008-12-29 2013-02-26 SAP France S.A. Systems and methods to create a multidimensional expression calculated member in a spreadsheet cell

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006107441A (ja) * 2004-09-30 2006-04-20 Microsoft Corp データのテーブルを扱うためのスプレッドシート関数のデザイン
JP2006107444A (ja) * 2004-09-30 2006-04-20 Microsoft Corp スプレッドシートの数式内の動的データを参照する方法および実装

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CSND199900560004; 後藤 志麿子: 'SQL Server7.0ついに登場' Back Office MAGAZINE 第3巻 第3号, 19990301, 第96-99ページ, CQ出版株式会社 *
CSND200700419010; 漆尾 貴義: 'データ分析機能を大幅強化 本格的なフロントエンドツールとして一段と進化したExcel 2007の実力' DB Magazine 第16巻 第12号, 20070301, 第134-141ページ, 株式会社翔泳社 *
JPN6014020578; 後藤 志麿子: 'SQL Server7.0ついに登場' Back Office MAGAZINE 第3巻 第3号, 19990301, 第96-99ページ, CQ出版株式会社 *
JPN6014020580; 漆尾 貴義: 'データ分析機能を大幅強化 本格的なフロントエンドツールとして一段と進化したExcel 2007の実力' DB Magazine 第16巻 第12号, 20070301, 第134-141ページ, 株式会社翔泳社 *

Also Published As

Publication number Publication date
JP6017309B2 (ja) 2016-10-26
WO2011044286A2 (en) 2011-04-14
CN105260347A (zh) 2016-01-20
CN105260347B (zh) 2019-04-19
US9275031B2 (en) 2016-03-01
WO2011044286A3 (en) 2011-07-28
EP2486501A4 (en) 2018-01-17
US20110087954A1 (en) 2011-04-14
US20160132481A1 (en) 2016-05-12
US11366960B2 (en) 2022-06-21
US10762289B2 (en) 2020-09-01
EP2486501A2 (en) 2012-08-15
US20210019472A1 (en) 2021-01-21
US9665555B2 (en) 2017-05-30
CN102782675A (zh) 2012-11-14
US20180032498A1 (en) 2018-02-01

Similar Documents

Publication Publication Date Title
US11366960B2 (en) Data analysis expressions
US11741059B2 (en) System and method for extracting a star schema from tabular data for use in a multidimensional database environment
US20210150131A1 (en) Methods and systems for annotating a dashboard
US7831539B2 (en) Dynamically filtering aggregate reports based on values resulting from one or more previously applied filters
CA3037367C (en) Methods and apparatus for the analyzing, manipulating, formatting, templating, styling and/or publishing of data collected from a plurality of sources
CN107111639B (zh) 构建报表
US9633077B2 (en) Query of multiple unjoined views
TW201413482A (zh) 複雜資料庫下的簡化互動
US9639596B2 (en) Processing data in a data warehouse
US8473520B1 (en) Delta measures
US7711709B2 (en) Efficient storing and querying of snapshot measures
Ferrari et al. Microsoft Excel 2013 Building Data Models with PowerPivot
Clark Beginning Power BI: a practical guide to self-service data analytics with Excel 2016 and Power BI Desktop
Seamark Beginning DAX with Power BI: The SQL Pro’s Guide to Better Business Intelligence
US8452636B1 (en) Systems and methods for market performance analysis
US9811931B2 (en) Recommendations for creation of visualizations
JP6932412B1 (ja) 予算管理システムおよび予算管理プログラム
US20150006579A1 (en) Custom grouping of multidimensional data
Kellenberger et al. Time Range Calculations

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130701

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130717

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131007

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131007

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140416

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140520

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150302

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150514

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150714

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160511

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160928

R150 Certificate of patent or registration of utility model

Ref document number: 6017309

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250