(57)【要約】【課題】  使いやすいデータコンテキストフィルタリングを提供すること。【解決手段】  メニューからの選択によってデータ照会を容易に行えるようにする、フィルタ照会のグラフィカルな作成方法およびシステムが開示される。データ表をフィルタリングし、または照会するという信号が受け取られる。次に、合図されたキーフィールドのコンテキストが分析され、そのコンテキストに基づくフィルタメニューが作成され、表示される。フィルタ選択が受け取られ、対応するフィルタが実行される。そのフィルタの結果が画面に表示される。【選択図】  図１
2006107431.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータで実施されるフィルタ照会のグラフィカルな作成方法であって、
表をフィルタリングするという信号を受け取ること、
指定されたキーフィールドのコンテキストを分析すること、
前記コンテキストに基づいてフィルタメニューを表示すること、および
前記フィルタメニューからのフィルタ選択を受け取ること
を備えることを特徴とする方法。
【請求項２】
前記関連付けられたフィルタ照会を発行することをさらに備えることを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項３】
前記フィルタ照会に関連付けられた結果を表示することをさらに備えることを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項４】
別のフィルタが列にすでに存在する場合、フィルタを除去することをさらに備えることを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項５】
指定されたキーフィールドのコンテキストを分析することは、列のデータ型を判定することをさらに備えることを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項６】
指定されたキーフィールドのコンテキストを分析することは、列中の数値の平均値を計算することをさらに備えることを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項７】
指定されたキーフィールドのコンテキストを分析することは、
前記フィルタメニューから不適切なフィルタを除去すること
をさらに備えることを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項８】
フィルタメニュー内容はユーザによって構成可能であることを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項９】
特定のフィルタ値が前記ユーザによって二値的に選択され得ることを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項１０】
新しいフィルタおよび関連するフィルタ照会を作成することをさらに備えることを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項１１】
使いやすいデータフィルタリングのシステムであって、
フィルタメニューを維持するメニューモジュールと、
フィルタ信号および前記フィルタメニューからの選択を受け取る受け取りモジュールと、
フィルタ照会を作成し、フィルタリングを実行するフィルタモジュールと、
前記フィルタメニューおよびフィルタ結果を表示する表示モジュールと、
特定の表セルまたは列のコンテキストを分析するコンテキスト分析モジュールと
を備えることを特徴とするシステム。
【請求項１２】
前記表示モジュールは、さらに、データ表を表示することを特徴とする請求項１１に記載のシステム。
【請求項１３】
任意の既存のフィルタを除去する定式除去モジュールをさらに備えることを特徴とする請求項１１に記載のシステム。
【請求項１４】
フィルタ照会の自動作成方法であって、
データ表を表示すること、
前記表をフィルタリングするという信号を受け取ること、
指定された列のコンテキストを分析すること、
前記コンテキストに基づいてフィルタメニューを表示すること、
前記フィルタメニューからのフィルタ選択を受け取ること、および
新しいフィルタを作成すること
を備えることを特徴とする方法。
【請求項１５】
関連するフィルタ照会を作成すること、および
前記フィルタ照会を実行すること
をさらに備えることを特徴とする請求項１４に記載の方法。
【請求項１６】
前記フィルタ照会に関連付けられた結果を表示することをさらに備えることを特徴とする請求項１４に記載の方法。
【請求項１７】
別のフィルタが列についてすでに存在する場合、フィルタを除去することをさらに備えることを特徴とする請求項１４に記載の方法。
【請求項１８】
新しいフィルタを作成することは、前記新しいフィルタで使用するために特定のデータセルからデータを取り出すことをさらに備えることを特徴とする請求項１４に記載の方法。
【請求項１９】
新しいフィルタを作成することは、現在の日時に関するデータを取り出すことをさらに備えることを特徴とする請求項１４に記載の方法。
【請求項２０】
指定されたキーフィールドのコンテキストを分析することは、前記フィルタメニューから不適切なフィルタを除去することをさらに備えることを特徴とする請求項１４に記載のコンピュータで実施される方法。
【請求項２１】
フィルタメニュー内容はユーザによって構成可能であることを特徴とする請求項１４に記載のコンピュータで実施される方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、ソフトウェアアプリケーションの分野に関する。より詳細には、本発明は、データ照会などによって、データを格納し、ソートするソフトウェアアプリケーションに関する。さらに詳細には、本発明の諸態様は、照会結果から返されるデータのフィルタリングに関する。
【背景技術】
【０００２】
大量のデータを処理する目的で、データを論理的なやり方で編成し、格納するために、スプレッドシートやデータベースアプリケーションといったコンピュータソフトウェアアプリケーションが開発されている。典型的なスプレッドシートおよびデータベースアプリケーションは、多数の情報レコードを含み、各レコードは、所定数のフィールドを含む。データベースの状況では、通常、データベース管理システムを使って、データベースをより簡単に操作するソフトウェアツールが提供される。データベース管理システムの例には、特に、Ｍｉｃｒｏｓｏｆｔ（登録商法）Ａｃｃｅｓｓ（登録商標）やＭｉｃｒｏｓｏｆｔ（登録商法）ＳＱＬ  Ｓｅｒｖｅｒが含まれる。データベースは、一般に、ユーザが、スプレッドシートでは利用できない複雑なデータ間相互関係を設定することを可能にし、それは、その能力を高めるが、同時に、新しいユーザがデータベースアプリケーションを習得するのをより一層困難にもする。
【０００３】
典型的なデータベース管理システムは、ユーザが、データを付加、変更、または削除することを可能にすると共に、データベース中のレコードを照会、ソート、または再結合することも可能にする。さらに、通常のシステムは、データベースデータの安全性および完全性を維持することに関連する機能も提供する。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
スプレッドシートまたはデータベースアプリケーションで大量のデータを照会することは、特に新しいユーザにとっては、複雑で困難を伴うタスクとなり得る。スプレッドシートでどのようにデータ照会を指定するか決定することも困難を伴い得る。データベースアプリケーションが使用するのに特に困難を伴い得るのは、より複雑な照会を可能にするために、しばしば、（構造化照会言語、すなわちＳＱＬなどの）完全な照会言語が使用されるからである。照会の言語に新しいユーザが恐れを成すこともあり、ゆえに、よりユーザにとって使いやすい照会インターフェースが望ましい。
【０００５】
本発明がなされたのは、上記その他の考慮事項に対してである。
【課題を解決するための手段】
【０００６】
本発明によれば、コンピュータで実施されるフィルタ照会（ｆｉｌｔｅｒｑｕｅｒｉｅｓ）のグラフィカルな作成方法が提供される。表をフィルタリングするという信号が受け取られる。次に、指定されたキーフィールドのコンテキストが分析され、そのコンテキストに基づくフィルタメニューが表示される。フィルタ選択を受け、対応するフィルタが作成される。
【０００７】
他の態様によれば、本発明は、使いやすいデータフィルタリングのシステムに関するものである。メニューモジュールは、フィルタメニューを維持する。受け取りモジュールは、フィルタ信号およびフィルタメニューからの選択を受け取る。フィルタモジュールは、フィルタリングを実行する。表示モジュールはフィルタメニューおよびフィルタ結果を表示し、コンテキスト分析モジュールは、特定の表セルまたは列のコンテキストを分析する。
【０００８】
他の態様によれば、本発明は、フィルタ照会の自動作成方法に関するものである。データ表が表示される。表をフィルタリングするという信号が受け取られる。指定された列のコンテキストが分析され、そのコンテキストに基づいてフィルタメニューが表示される。フィルタ選択が受け取られ、新しいフィルタが作成され、実行される。本発明は、コンピュータ処理としても、コンピューティングシステムとしても、あるいはコンピュータプログラム製品やコンピュータ可読媒体といった製造品としても実施され得る。コンピュータ可読媒体は、コンピュータシステムによって読取り可能な、コンピュータ処理を実行する命令からなるコンピュータプログラムを符号化したコンピュータ記憶媒体とすることができる。コンピュータプログラム可読媒体は、コンピューティングシステムによって読取り可能な、コンピュータ処理を実行する命令からなるコンピュータプログラムを符号化した搬送波上の伝搬信号とすることもできる。
【０００９】
本発明を特徴付ける上記その他様々な特徴および利点は、以下の詳細な説明を読み、関連する図面を吟味すれば、明らかになるであろう。
【発明を実施するための最良の形態】
【００１０】
図１に、データベース管理システム内の製品注文データベースの表ビュー（表１０２ともいう）のスクリーンショットを示す。表１０２は、複数のデータ行およびデータ列からなる表を含む。各データ行は、一般に、単一のデータレコードを含む。一般に、データベース中の各データ列は、同種のデータ要素を含むものと期待され得る。例えば、注文ＩＤ列１０４は数値形式のデータ要素を含み、顧客列１０６は英数字ストリングの形のデータを含み、注文日列１０８は日付形式のデータを含むなどである。。他の多くの種類のデータがデータベースに保持され、データベース管理システム内で表を使って表示され得ることを、当業者は理解されよう。
【００１１】
図１のデータの一見簡単そうに見える視覚表示にもかかわらず、これまで、ユーザは、一般に、照会コマンドを設計し入力することによって、適切に構造化された照会言語での照会を手動で作成しなければならなかった。そのため、データベース管理システムは簡単なデータビューを提供することができるが、有効な照会を作成することは、データベースの世界をよく知らないスプレッドシートユーザにとっては依然として習得が困難な技能のままとなっている。データをフィルタリングするための「組み込みの（ｃａｎｎｅｄ）」（あらかじめ準備された）照会を与え簡単な照会インターフェースを与えることによって、本発明は、データベースおよびスプレッドシート製品を、新規のユーザにとってかつてないほどにアクセスしやすくする。
【００１２】
本発明がコンピュータシステムとして実施され得ると想定するならば、図２は、本発明の実施形態が実施され得る適切なコンピューティングシステム環境の一例を示すためのものである。その最も基本的な構成において、システム２００は、少なくとも１つの処理装置２０２およびメモリ２０４を含む。コンピューティングデバイスの厳密な構成および種類に応じて、メモリ２０４は、揮発性（ＲＡＭなど）、不揮発性（ＲＯＭ、フラッシュメモリなど）または両者の何らかの組合せとすることができる。この最も基本的な構成を、図２に、破線２０６で示す。
【００１３】
メモリ２０４以外に、このシステムは、少なくとも１つの他の形のコンピュータ可読媒体を含み得る。コンピュータ可読媒体は、システム２００がアクセスすることのできる任意の利用可能な媒体とすることができる。例をあげると、それだけに限らないが、コンピュータ可読媒体には、コンピュータ記憶媒体および通信媒体が含まれ得る。
【００１４】
コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュールまたはその他のデータといった情報の記憶のための任意の方法または技術で実施された、揮発性と不揮発性、取り外し可能と取り外し不能の媒体が含まれる。メモリ２０４、取り外し可能記憶装置２０８、および取り外し不能記憶装置２１０は、すべて、コンピュータ記憶媒体の例である。コンピュータ記憶媒体には、それだけに限らないが、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリや他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）や他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置や他の磁気記憶装置、あるいは所望の情報を記憶するのに使用することができ、システム２００からアクセスされ得る他の任意の媒体が含まれる。そのような任意のコンピュータ記憶媒体をシステム２００の一部とすることができる。
【００１５】
システム２００は、このシステムが他の装置と通信できるようにする通信接続２１２も含み得る。通信接続２１２は、通信媒体の一例である。
通信媒体は通常、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを搬送波または他の移送機構などの変調されたデータ信号中に具現化するものであり、任意の情報伝達媒体を含む。「変調されたデータ信号」という用語は、信号に情報を符号化するように１つまたは複数のその特性が設定または変更された信号を意味する。通信媒体には、それだけには限定されないが一例として、有線ネットワーク、直接配線接続などの有線媒体、および音響、ＲＦ、赤外線、その他の無線媒体などの無線媒体がある。本明細書で使用されるコンピュータ可読媒体という用語には、記憶媒体と通信媒体の両方が含まれる。
【００１６】
一実施形態によれば、システム２００は、入力装置２１４および／または出力装置２１６などの周辺装置を含む。例示的な入力装置２１４には、それだけに限らないが、キーボード、コンピュータのマウスやペンやスタイラス、音声入力装置、触覚入力装置などが含まれる。例示的な出力装置２１６には、それだけに限らないが、ディスプレイ、スピーカ、プリンタなどの装置が含まれる。本発明では、ディスプレイが主要な出力装置である。これらの装置のそれぞれは当分野でよく知られており、したがって、本明細書では詳細に説明しない。
【００１７】
図３に、コンテキストフィルタリングを使って表が照会される、本発明の一実施形態を示す。本発明の一実施形態では、表示工程３０２は（図１の表１０２などの）表を表示する。この表は、実際には、どんな種類のデータも含み得る。各データ列は、一般に、一連の日付、英数字ストリング、あるいは数といった、単一の、同種のデータ型のデータを含む。
【００１８】
受け取り工程３０４は、ユーザが適切なグラフィカルユーザインターフェイス（ＧＵＩ）制御シーケンスをクリックすると、表データをフィルタリングするという信号を受け取る。本発明の一実施形態では、特定の列または列見出し（その列が、以下で説明する「キーフィールド」を指定する）上でマウスを右クリックすると、受け取り工程３０４に信号が送られる。本発明の別の実施形態では、表中の特定のセル上で左クリックする（その場合、そのセルが含まれる列がキーフィールドになる）と、受け取り工程３０４に信号が送られる。入力装置からの任意の数の可能なＧＵＩ制御またはコマンドシーケンスを使って特定の型のデータを選択できることを当業者は理解されよう。例としては、マウスポインタを所与のデータ要素、列、または列見出しの中心に配置し、特定のマウスボタンをアクティブ化することが含まれる。代替として、キーボードを使って選択を行うこともできる。さらに代替として、キーボード、マウス、トラックボール、または他の入力装置動作の組合せを使って、データ要素、列、または列見出しを選択することもできる。
【００１９】
一実施形態では、受け取り工程３０４は、ある列の１つのセルの選択を、その全列の内容に基づいてフィルタリングするという信号として解釈することができる。別の実施形態では、受け取り工程３０４は、ある列の１つのセルの選択を、その特定のセルの内容だけに基づいてフィルタリングするという信号として解釈することができる。その選択が対応する列は「キーフィールド」になり、これは、各所与の行がフィルタリングされるか否か決定するのにその値が使用される列である。例えば、照会結果から、２００４年より前に発注された製品注文データの表からのすべての注文を割愛する、すなわち「フィルタにかけて除外する」ためには、「注文日」列が、必然的に、そのような照会についてのキーフィールドとされなければならない。
【００２０】
特定のセルが（列全体に対して）選択されると、そのセル内の値を組み込んだフィルタオプションが可能である（例えば、後で論じる図５、６、７の例を参照）。
【００２１】
代替の実施形態に関しては、データ表の外部のデータもフィルタに組み込むことができる。例えば、注文データ表中の「今日」からの注文を除外するには、外部データ（すなわち、今日の日付）を検索し、その照会に組み込む必要がある。というのは、現在の日時は常に変化しており、ゆえに、データ表に格納するには実際的でないからである。
【００２２】
受け取り工程３０４がフィルタリングするという信号を受け取った後、コンテキスト分析動作３０６は、選択されたデータセルまたは列を分析して、それがどのデータ型を含むか判定する。次いで、判定されたデータ型に適したデータフィルタがフィルタメニュー５０２に付加され得る（図５参照）。
【００２３】
例えば、そのデータ型が日付であると判定された場合、日付に適した１つまたは複数のフィルタがフィルタメニューに付加される（フィルタメニューの例は、図５の５０２を参照）。そのような日付特有のフィルタ選択項目には「今日」を含むことができ、それを使って、今日の日付とマッチする日付を持たないすべてのレコードを除外することができる。同様に、「昨日」および「明日」も、コンテキスト分析工程３０４によってフィルタメニューに付加され得る日付特有のフィルタ選択項目である。他の日付特有のフィルタ選択項目には、「今週」、「先月」、「前四半期」、「今年」などが含まれ得る。他の日付特有のフィルタ選択項目には、特定のセルが選択された場合に、セルに含まれる日付「より新しい」、選択されたセルに含まれる日付「より古い」、または選択されたセルに含まれる日付と「同月」が含まれ得る。
【００２４】
さらに別の実施形態では、日付に基づくフィルタは、「期間中のすべての日付」フィルタを伴い得る。例えば、この種類のフィルタでのユーザオプションまたは選択項目には、年と無関係に、選択された四半期に関連付けられたすべてのデータを表示するための、「第１四半期」、および／または「第２四半期」が含まれ得る。さらに別の例では、これらの選択項目に、「１月」、「２月」、「３月」などの月を含めることができ、それによって、ユーザは、これらのオプションを選択して、年と無関係に選択された月の日付だけを示すことができる。したがって、そのようなものとして、一般のアプリケーションは、最近５年間にわたる第１四半期売上、あるいは上記の例での所与の月における誕生日すべてを、それぞれ、吟味し、フィルタリングするかもしれない。
【００２５】
所与の実施形態では、他のデータ型について他のタイプ特有のフィルタが存在し得る。例えば、ストリング特有のフィルタは「Ｉｓ（である）」を含むことができ、指定されたセルに含まれるこのストリングにマッチしないデータレコードを除外することができる。同様に、「ｉｓ  ｎｏｔ（でない）」も、指定されたセルに含まれるストリングにマッチするデータレコードを除外することができる。「Ｂｉｇｉｎｓ  ｗｉｔｈ（で始まる）」は、ユーザ指定のストリングで始まるストリングを含まないレコードを除外するのに使用することができ、ゆえに、所与のストリングに一部マッチすることによるフィルタリングを可能にする。「Ｃｏｎｔａｉｎｓ（を含む）」は、類似の部分サーチを可能にすることができ、このタイプは、別の所与のストリングを含むストリングを持つ要素を返す。「Ｎｏｔ  ｂｌａｎｋ（空白でない）」は、指定されたフィールドに空白ストリングを含むデータレコードを除外することができる。
【００２６】
代替の実施形態では、列に表示される値のリストがユーザに提示される。各値の隣にはチェックボックス、または他の二値選択を可能にするコントロールがある。選択された（チェックされた）値にマッチしない値を含むレコードは除外される。
【００２７】
他の実施形態では、数値特有のフィルタが、数値フィールドの内容に基づくフィルタリングを可能にする。例えば、「Ｓｍａｌｌｅｓｔ  ２５（最小の２５件）」は、キーフィールドにおける最小の２５件の値を表すキーフィールドを含むレコード以外すべてを除外することができる。そのようなフィルタは、一意でない数を含む列が存在する場合、２５を上回るレコードを返すことがある。というのは、ＳＱＬは、数を比較するとき、最高または最低のステータスと「同位である」すべての数を報告するからである。例えば、最小の２５件の顧客郵便番号に対応するもの以外のすべてのレコードを除外しても、依然として、多数の顧客レコードが含まれることがある。というのは、各郵便番号ごとに何千という顧客が存在し得るからである。別の例として、「Ｌａｒｇｅｓｔ  １００（最大の１００件）」は、キーフィールドにおける最大の１００件の値を表すキーフィールドを含むレコード以外すべてを除外する。「Ｇｒｅａｔｅｒ ｔｈａｎ ａｖｅｒａｇｅ（平均値を上回る）」は、１列の数の平均値を計算し、次いで、その平均値以下のレコードを除外する。同様に、「Ｌｅｓｓ  ｔｈａｎ ａｖｅｒａｇｅ（平均値を下回る）」は、１列の数の平均値を計算し、次いで、その平均値以上のレコードを除外する。別の実施形態では、ユーザは、「Ｂｅｔｗｅｅ（の間に）」フィルタを使って２つの数を指定することができ、それら２つの数によって形成される範囲内にない値を含むレコードが除外される。
【００２８】
さらに別の実施形態では、パーセンタイル値を使って数値をフィルタリングすることができる。例えば、「Ｓｍａｌｌｅｓｔ ５ ｐｅｒｃｅｎｔ（最小の５パーセント）」または「Ｌａｒｇｅｓｔ  ２５  ｐｅｒｃｅｎｔ（最大の２５パーセント）」を使って、表中のそれ以外の数に対してそれらの値に基づく数をフィルタリングすることができる。
【００２９】
本発明の１つの特定の実施形態では、非常に限られた値の選択を有するセルを含む列が、コンテキスト分析工程３０６によって、フィルタメニューに実際の値を付加させることができる。例えば、可能な値として「はい」または「いいえ」のみを許容する列は、コンテキスト分析工程３０６によって、フィルタメニューに「はい」および「いいえ」フィルタオプションを付加させることができる。
【００３０】
いくつかのフィルタが複数のデータ型に適し得ることを、当業者は理解されよう。例えば、「Ｅｑｕａｌｓ（に等しい）」を使って、選択されたセルの内容と等しくないすべてのデータレコードを除外することができる。また、「に等しい」を使ってマッチする日付、数、英数字ストリング、ブール値などを見つけることもできる。
【００３１】
本発明の一実施形態では、コンテキスト分析工程３０６は、フィルタメニューにそれ以上のフィルタを付加する必要がないと判定することができる。
【００３２】
コンテキスト分析工程３０６がフィルタメニューに適切なフィルタを付加した後、表示工程３０８は、フィルタメニューを表示する（フィルタメニューの例については、図６の６０２を参照）。表示工程３０８によって表示されるフィルタメニューは、すべてのデータ型に適したデフォルトのフィルタ（上述の「に等しい」など）を含むことができる。
【００３３】
フィルタメニューが表示されると、受け取り工程３１０は、フィルタ選択を受け取る。一実施形態では、この選択は、フィルタメニュー中の所与のフィルタ上にマウスポインタを位置させ、マウスボタンをクリックすることにより行われる。しかしながら、特許請求する本発明の範囲を逸脱することなく、任意の数の入力装置シーケンスを使ってフィルタメニューからフィルタを選択することができることを、当業者は理解されよう。
【００３４】
フィルタ選択が受け取られた後、判定工程３１２は、選択された表列にすでにフィルタが存在するかどうか判定する。選択された表列にすでにフィルタが存在する場合、フローはＹＥＳに分岐して除去工程３１４に至る。しかしながら、選択された表列にフィルタが存在しない場合、フローはＮＯに分岐して作成工程３１６に至る。
【００３５】
本発明の一実施形態では、同じ表列に２つのフィルタを適用することができず、そのため、判定工程３１２が選択された表列にすでにフィルタが存在すると判定した場合、新しいフィルタに道を空けるために、除去工程３１４を使ってそのフィルタが除去される。
【００３６】
指定された表列にフィルタが存在しなかった場合、またはフィルタは存在したが、除去工程３１４によって除去された場合、作成工程３１６は、次に、新しいフィルタを作成する。この新しいフィルタは、ＳＱＬなどの照会言語で符号化された照会を含む。
【００３７】
本発明の別の実施形態では、複数のフィルタを、それらが相互に排他的でない限り、同じ表列に適用することができる。
【００３８】
データベースが関与する一実施形態では、ＳＱＬの「ｗｈｅｒｅ」修飾子を組み込んだフィルタ照会が作成され得る。ｗｈｅｒｅ修飾子がＳＱＬ照会に付加されると、それを使ってサーチを実行し、または照会結果を絞り込むことができる。例えば、ＳＱＬ照会の末尾に「ｗｈｅｒｅ  国＝リトアニア」を付加すると、この照会は、その国列の値が「リトアニア」に等しい結果だけを返す。同様に、ＳＱＬ照会に「ｗｈｅｒｅ  注文ＩＤ＝４１４７５」を付加すると、この照会は、その注文ＩＤが４１４７５に等しい結果だけを返す。このように、ｗｈｅｒｅ修飾子を使って、その照会にマッチするレコードの、任意に広い、または狭いリストを返すことができる。
【００３９】
完全マッチを探し出す以外に、ｗｈｅｒｅ修飾子を使って、当分野でよく知られているサーチツールである、正規表現の使用により照会への部分マッチを見つけることもできることを、当業者は理解されよう。例えば、ｗｈｅｒｅ照会は、「Ｌ」で始まる国値を持つすべてのレコードを照会するように変更することができる。同様に、ＳＱＬのｗｈｅｒｅ修飾子を使って特定の範囲の数および／または日付を照会することもできる。
【００４０】
別の実施形態では、フィルタは、ＳＱＬ「ｔｏｐ」修飾子を組み込むことができる。これを使って、照会に、任意の数の上位または下位エントリだけを返すよう指示することができる。例えば、売上データベース照会にＴｏｐ（５）を付加することによって、所与の照会で、すべての売上ではなく上位５つの売上数だけが返される。同位である場合、この例示的売上データベースは、５つを上回るレコードを返すことになる。
【００４１】
ｗｈｅｒｅおよびｔｏｐというＳＱＬ修飾子は例示的実施形態として提供したにすぎず、特許請求する本発明の範囲を逸脱することなく、照会を構築する際に他の照会修飾子も使用され得ることを、当業者は理解されよう。さらに、いくつかの実施形態は、照会言語を持たないことのあるスプレッドシートを伴い、その場合は代わりに、データ上で直接照会を実行する。
【００４２】
データベースが関与する一実施形態では、適切なＳＱＬ修飾子を含むフィルタ照会が作成され、さらなる変更および／またはその後の使用のためにメモリに格納される。
【００４３】
本発明の一実施形態では、作成工程３１６は、フィルタメニューが表示されるたびに、フィルタメニュー上の所与のフィルタを強調表示させることによりそれを選択することもできる。
【００４４】
フィルタが作成された後、実行工程３１８は、そのフィルタに基づいてフィルタリングを実行する。データベースの実施形態では、作成工程３１６によって作成された照会は、データベース管理システムによって照会言語でデータベースに発行される。別の実施形態では、フィルタリングは、アプリケーションによって直接実行される。その結果はメモリに格納され、またはレンダリングのために（以下で論じる）表示工程３２０に導かれ得る。
【００４５】
表示工程３２０は、実行工程３１８によってもたらされた照会結果を画面上にレンダリングする。結果は、メモリから読み取られ、実行工程３１８によって表示工程３２０に直接渡されることもあり、別の方法でレンダリングのために表示工程３２０に送られることもある。結果が、元のフィルタリングされていない表の代わりにレンダリングされる。
【００４６】
本発明の別の実施形態では、結果を別の結果表にレンダリングすることができ、それは必ずしも元の、フィルタリングされていない表を置き換えるとは限らない。
【００４７】
本発明の特定の実施形態では、ユーザが、現在実施されているすべてのフィルタを消去することを可能にする「クリアフィルタ」コントロールが存在する。任意選択で、「クリアフィルタ」コントロールは、さらに、すべてのフィルタをオフにして現在の照会を再発行し、画面上の結果をしかるべく更新することもできる。
【００４８】
図４は、本発明の一実施形態を構成するモジュールを示すブロック図である。実施形態４００は、照会を実行し、フィルタ照会を実行し、またはフィルタ照会の結果を受け取るときに、メモリ４２０とやりとりすることができる。実施形態４００は、特に、セル、列、フィルタのグラフィカルな選択を可能にし、フィルタの結果を返すために、表示装置４３０ともやりとりする。
【００４９】
メニューモジュール４０２は、特定の表列でのフィルタメニューを維持する。これには、コンテキスト的に適切なフィルタオプションをフィルタメニューに付加すること、コンテキスト的にメニューに不適切なフィルタオプションを除去すること、およびフィルタメニューにフィルタオプションを整理することが含まれ得る。
【００５０】
受け取りモジュール４０４は、レコードおよびフィルタメニューからのフィルタ選択をフィルタリングするという信号を受け取る。入力は、キーボード入力または他の入力装置を介してＧＵＩから、あるいは自動スクリプトまたはマクロによって受け取ることができる。
【００５１】
フィルタモジュール４０６はフィルタを作成する。データベースを伴う一実施形態では、フィルタモジュール４０６は、フィルタに関連付けられた照会も作成し、それらの照会を実行する。ＳＱＬは、データベース分野では主流の照会言語であるが、フィルタ照会は、ＨＱＬ（Ｈｅａｌｔｈ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）など、ＳＱＬの専門化したバージョンを含む任意の照会言語で、あるいはＳＱＬとは無関係な照会言語でも作成することができる。照会の実行は、データベース管理システムレベルで行うこともでき、データベースにアクセスする下位レベルのプログラムに代行させることもできる。照会は、データベース管理システムが走っているのと同じシステム上で実行することもでき、実行のために１つまたは複数のリモートシステムに送信することもできる。後者の場合、リモートシステムは、その照会結果を表示できるように、データベース管理システムに、直接的または間接的に、結果を返す。フィルタは、照会またはデータベース管理システムを使用せずに、スプレッドシートアプリケーションによってデータに直接適用されることもある。
【００５２】
表示モジュール４０８は、本発明の多数の態様を表示する。例えば、表示モジュール４０８は、スプレッドシートまたはデータベース管理システムにおける表を表示することができる。また、図３に関連して前述した、フィルタメニューを表示することもできる。さらに、フィルタの結果を、表の形で、あるいは他の適切な形式で表示することもできる。表示モジュール４０８は、表示装置４３０とやりとりして、それが表示する要素をレンダリングすることができる。
【００５３】
コンテキスト分析モジュール４１０は、データ表中の特定のセルまたは列のコンテキストを分析する。所定の基準（図３に関連するコンテキスト分析工程３０６の説明を参照）またはその他の基準を使って、適切な（かつ不適切な）フィルタを導出することができる。
【００５４】
図５に、フィルタリングするという信号が受け取られ（図示せず）、フィルタメニュー５０２が表示されているスクリーンショットの一例を示す。フィルタが、フィルタメニュー５０２からまだ選択されていないため、背景にはフィルタリングされていないレコード５０４が表示されている。この例示的スクリーンショットでは、フィルタメニュー５０２は、ユーザが、まず、注文日列５０６中の１つのセル（図示せず）をクリックし（ゆえに、注文日を、その後のフィルタリングが行われるキーフィールドとして選択し）、次いで、共通フィルタメニュー項目５０８をクリックしたときに表示されたものであるが、この機能は、特許請求する本発明の範囲から逸脱することなく、異なるセルまたは列上で、かつ／または異なるメニュー項目、ボタン、マウス、またはキーボードシーケンスを用いて、あるいはツールバー要素の選択によっても、同様に簡単にトリガされたかもしれないことを、当業者は理解されよう。
【００５５】
図６に、特定のフィルタ６０２がフィルタメニュー６０４から選択されている別のスクリーンショットの例を示す。この例示的スクリーンショットでは、特定のフィルタ６０２は、その上にマウスポインタを置き、左クリックすることによって選択されたものであるが、この選択は、特許請求する本発明の範囲を逸脱することなく、他のシーケンスおよび他の入力装置を用いても行われ得ることを、当業者は理解されよう。
【００５６】
図７に、特定のフィルタ（図示せず、図６に関連する６０２を参照）が、フィルタリングされていないデータ（図示せず、図１に関連する１０２を参照）に適用されており、結果として生じるフィルタリングされたデータ７０２が表示されている、別のスクリーンショットの例を示す。注文日列７０４は、フィルタリングされたデータ７０２が、５月中の注文日キーフィールド値を持つレコードだけを含むという事実に注意を引くために、陰影付け処理が施されている。
【００５７】
この例示的実施形態は、簡単にするために１つのフィルタだけを処理するが、複数の列に適用される複数のフィルタを同時に実施して、各フィルタを相互作用させてより正確にフィルタ照会の焦点を合わせることもできることを、当業者は理解されよう。同様に、例示的実施形態は、スプレッドシート、およびデータベースアプリケーションの状況で提示されたが、本発明は、特定のデータがデータセットから選択されなければならない任意の状況で使用され得ることも、当業者は理解されよう。さらに、結果として生じる特定のデータは表示される必要はない。それは、特許請求する本発明の範囲を逸脱することなく、代わりに、メモリに保存することも、プリンタに送ることも、電子メール送信することも、それ以外に宛先指定することもできる。
【００５８】
前述の様々な実施形態は、例として提供したにすぎず、本発明を限定するものであると解釈すべきではない。当業者であれば、本明細書で図示し、説明した例示的実施形態に従わず、添付の特許請求の範囲に記載される、本発明の真の精神および範囲からも逸脱することなく本発明に加えられ得る様々な改変および変更を容易に理解されよう。
【図面の簡単な説明】
【００５９】
【図１】本発明の一実施形態が実施され得るデータベース環境である、従来技術を表すデータベース管理システムの、フィルタリングされていないデータを含む表を示す図である。
【図２】本発明の一実施形態が実施され得る適切なコンピューティングシステム環境の一例を示す図である。
【図３】本発明の一実施形態で実行される工程の動作フローを示す図である。
【図４】本発明の一実施形態を構成するモジュールを示すブロック図である。
【図５】背景にフィルタリングされていないレコードが表示されている、フィルタリングするという信号が受け取られ、フィルタメニューが表示されたスクリーンショットの一例を示す図である。
【図６】フィルタメニューから特定のフィルタが選択されている、別のスクリーンショットの例を示す図である。
【図７】特定のフィルタがデータに適用されており、結果として生じるフィルタリングされたレコードが表示されている、別のスクリーンショットの例を示す図である。
【符号の説明】
【００６０】
２０２  処理装置
２０４  システムメモリ
２０８  取り外し可能記憶装置
２１０  取り外し不能記憶装置
２１２  通信接続
２１４  入力装置
２１６  出力装置
４０２  メニューモジュール
４０４  受け取りモジュール
４０６  フィルタモジュール
４０８  表示モジュール
４１０  コンテキスト分析モジュール
４２０  メモリ
４３０  表示装置
【図１】
2006107431.tif 000003
【図２】
2006107431.tif 000004
【図３】
2006107431.tif 000005
【図４】
2006107431.tif 000006
【図５】
2006107431.tif 000007
【図６】
2006107431.tif 000008
【図７】
2006107431.tif 000009
【外国語明細書】
2006107431000001.pdf