(57)【特許請求の範囲】
【請求項１】
スプレッドシートにおいて位置情報を利用する方法であって、
位置情報を受信することと、
前記位置情報を利用して、前記スプレッドシート内のデータに対する更新された情報を作成するオペレーションを実施することであって、前記スプレッドシート内のデータに対する前記オペレーションを実施することは、位置値に関連した前記スプレッドシート内の識別子を決定することと、前記識別子に関連した前記スプレッドシート内のセルがフィルタされるのを可能にすることと、前記位置情報に基づいて前記スプレッドシート内の前記データをフィルタするフィルタリング・オプションを含むコンテキスト・メニューを含むユーザ・インターフェースを提供することと、を含み、
前記更新された情報で前記スプレッドシートを表示すること、
を含む方法。
【請求項２】
他のスプレッドシートユーザーの位置を決定すること
をさらに含む請求項１に記載の方法。
【請求項３】
データソースがユーザーの近くにあるときを決定すること、
をさらに含む請求項１に記載の方法。
【請求項４】
前記スプレッドシートの表示を、前記位置情報に基づき自動的にフィルタリングすること、
をさらに含む請求項１に記載の方法。
【請求項５】
前記スプレッドシートを表示することは、
前記スプレッドシートに関連した情報の表示を、前記位置情報に基づき自動的にソーティングすること、
を含む請求項１に記載の方法。
【請求項６】
位置値に関連した前記スプレッドシート内の前記識別子を決定することは、
前記スプレッドシートにアクセスし、前記スプレッドシートを検査して、位置に関連した行及び列、及び、前記位置に関連したスプレッドシートオブジェクト、のうち少なくとも一つを決定すること、
を含む請求項１に記載の方法。
【請求項７】
前記スプレッドシートの別の部分が前記位置情報の変更の結果に従って、自動的に表示される、請求項５に記載の方法。
【請求項８】
前記オペレーションを実施することは、本来の位置ベースの数式を含む本来の位置ベースのファンクションを実施することを含み、
前記本来の位置ベースの数式は、
位置データを異なる形式の位置データに変換する数式、
現在のユーザーの位置を決定する数式、
前記位置情報に基づき前記スプレッドシート内での処理をトリガーする数式、
のうち少なくとも１つを含む請求項１に記載の方法。
【請求項９】
その他のユーザーが予め定められた近接度の範囲内にいるときを決定することと、前記ユーザーが予め定められた近接度の範囲内にいるときに、前記ユーザーが、共同作業及び共同作業のセッションを開始するために利用可能なデータを所有しているときを決定すること、
をさらに含む請求項１に記載の方法。
【請求項１０】
位置情報をスプレッドシートと統合するための、コンピューターが実行可能な命令を保存したコンピューター記憶媒体であって、
位置情報を受信することと、
前記位置情報を利用して前記スプレッドシート内のデータに対するオペレーションを実行することであって、前記スプレッドシート内のデータに対するオペレーションを実行することが、位置値に関連した前記スプレッドシート内の識別子を決定することと、前記識別子に関連した前記スプレッドシート内のセルがフィルタされるのを可能にすることと、前記位置情報に基づいて前記スプレッドシート内の前記データをフィルタするフィルタリング・オプションを含むコンテキスト・メニューを含むユーザ・インターフェースを提供することと、を含み、
前記スプレッドシートを表示することと、
前記位置情報における予め定められた変更に応答して前記スプレッドシートの表示を変更すること、
を含むコンピューター記憶媒体。
【請求項１１】
位置情報をスプレッドシートと統合するためのシステムであって、
ネットワークに接続するように設定されるネットワーク接続と、
プロセッサ、及びコンピューター記憶媒体と、
ディスプレイと、
コンピューター記憶媒体に保存され、プロセッサで実行されるオペレーティング環境と、
前記オペレーティング環境のコントロール下で動作する位置管理部であって、
位置情報を受信し、
前記位置情報を使用して前記スプレッドシート内のデータに対するオペレーションを実施することであって、前記スプレッドシート内のデータに対する前記オペレーションを実施することは、位置値に関連した前記スプレッドシート内の識別子を決定することと、前記識別子に関連した前記スプレッドシート内のセルがフィルタされるのを可能にすることと、前記位置情報に基づいて前記スプレッドシート内の前記データをフィルタするフィルタリング・オプションを含むコンテキスト・メニューを含むユーザ・インターフェースを提供することと、を含み、
前記スプレッドシートを表示し、
前記位置情報における予め定められた変更に応答して、前記スプレッドシートの表示を変更するように動作する位置管理部と
を含むシステム。
【請求項１２】
ユーザーの近くにデータソースがあるときを決定することと、前記データソースを画面上に表示させること、
をさらに含む請求項１１に記載のシステム。
【請求項１３】
前記スプレッドシートを表示させることは、前記位置情報に基づいて、前記スプレッドシートの前記表示を自動的にフィルタリングすること、
を含む請求項１１に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
多くの人が、データの取り扱いにスプレッドシートを利用する。今日では、デスクトップコンピューターでスプレッドシートを取り扱いすることにのみならず、ポータブルデバイスを用いてスプレッドシートを取り扱う。例えば、ユーザーは、スマートフォン、ラップトップ、そして、タブレットを利用してスプレッドシートを取り扱うことができる。
【発明の概要】
【０００２】
本要約は、コンセプトの選り抜きを簡潔な形式で紹介するために提供されたものであって、以下の発明を実施するための形態においてさらなる説明がされる。本要約は、請求項に係る発明の主要な特徴又は本質的な特徴を明らかにすることを意図するものではなく、請求項に係る主題の範囲を決定する際の一助として用いられることを意図するものでもない。
【０００３】
位置情報が、スプレッドシートの数式及びオペレーションと統合される。位置情報を統合するいくつかの例には、限定ではないが、データのフィルタリング、データソースの検出、計算の実施、等に位置情報を利用することが含まれる。データは、位置、その場所に居合わせる人、場所、そしてその他の位置ベースの情報によってフィルターされてもよい。位置情報は、本来のスプレッドシートの数式に統合され、計算を実行し、警告をトリガーし、又はその他のスプレッドシートビジネスロジックを駆動してもよい。位置情報を利用して、スプレッドシートを使用するユーザーの近くで公開された近くのデータソースを検知及び使用してもよい。
【図面の簡単な説明】
【０００４】
【図１】例示的なコンピューティング環境を図示する。
【図２】位置検知型スプレッドシートの動作のためのシステムを示す。
【図３】ロケーションフィルタリングが有効にされた状態の例示的なスプレッドシートを示す。
【図４】ロケーションフィルタリングユーザーインターフェースを備えた例示的なスプレッドシートを示す。
【図５】位置情報をスプレッドシートに統合する例示的なプロセスを示す。
【発明を実施するための形態】
【０００５】
図面を参照して、図面において同様の参照符号は、類似する要素を示し、様々な実施の形態が開示される。特に、図１及び対応する説明部分は、本発明の実施が推奨されるコンピューティング環境についての簡潔で一般的な説明を提供するためのものである。
【０００６】
一般的に、プログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造、及びその他のタイプの構造体であって特定のタスクを実行し、又は、特定の抽象データタイプを実装するものを含む。その他のコンピューターシステムコンフィグレーションが利用されてもよく、例えば、ハンドヘルドデバイス、マルチプロセッサーシステム、マイクロプロセッサベース、又は、プログラマブル消費者向け電気機器、ミニコンピューター、メインフレームコンピュータ、等でもよい。同様に、分散コンピューティング環境が用いられてもよく、すなわち、通信ネットワークを介してつながっている、リモートプロセッシングデバイスでタスクが実行される。分散コンピューティング環境においては、プログラムモジュールは、ローカル及びリモート両方のメモリ記憶デバイスに置くことができる。
【０００７】
図１には、様々な実施例で利用されるコンピューター１００のための、例示的なコンピューター環境が示されている。図１で開示されるコンピューター環境は、サーバー、デスクトップ又はモバイルコンピューター、又はその他のタイプのコンピューティングデバイスとして設定され得るコンピューティングデバイス、そして、中央処理装置５（ＣＰＵ）、ランダムアクセスメモリ９（ＲＡＭ）及び読み取り専用メモリ（ＲＯＭ）１０を含むシステムメモリ７、そして、メモリをＣＰＵ５に結合させるシステムバス１２を含む。
【０００８】
基本ルーチンを含むＢＩＯＳは、起動中等に、コンピューター内の要素間の情報を転送するのに役立ち、ＲＯＭ１０内に保存されている。コンピューター１００はさらに、オペレーティングシステム１６、スプレッドシートアプリケーション２４、その他プログラムモジュール２５、そして以下により詳細に説明される位置管理部２６を保存するための大容量記憶装置１４を含む。
【０００９】
大容量記憶装置１４は、バス１０に接続される大容量記憶コントローラー（図示されていない）を介して、ＣＰＵ５に接続される。大容量記憶装置１４及び関連するコンピューター可読媒体は、コンピューター１００に対する不揮発性のストレージを提供する。本明細書において用いられている、コンピューター可読媒体という用語は、コンピューター記憶媒体を含む。本明細書における、コンピューター可読媒体についての説明は、ハードディスク、又は、ＣＤ−ＲＯＭドライブ等の大容量記憶装置について言及されているが、コンピューター可読媒体は、コンピューター１００がアクセスし得る、あらゆる利用可能な媒体であってもよい。
【００１０】
例示であって、限定ではないが、コンピューター可読媒体は、コンピューター記憶媒体、通信媒体を含む。コンピューター記憶媒体は、コンピューター可読処理命令、データ構造、プログラムモジュール又はその他のデータ等の情報を保存するための、あらゆる手段又は技術で実装された、揮発性及び不揮発性、リムーバブル及びノンリムーバブルの媒体を含む。コンピューター記憶媒体は、限定ではないが、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（ｅｌｅｃｔｒｉｃａｌｌｙ  ｅｒａｓａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、フラッシュメモリ又はその他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋｓ）又はその他の光学式ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ又はその他の磁気ストレージデバイス、又はその他の媒体、すなわち、情報を保存することに用いられ、且つ、コンピューター１００によってアクセスされ得るあらゆる媒体を含み得る。
【００１１】
コンピューター１００は、インターネット等のネットワーク１８を介した、リモートコンピューターへの論理的な接続を利用したネットワーク環境において動作する。コンピューター１００は、バス１２に接続されるネットワークインターフェースユニット２０を介して、ネットワーク１８に接続してもよい。ネットワーク接続は、無線及び／又は有線であってもよい。ネットワークインターフェースユニット２０はまた、その他のタイプのネットワーク及びリモートコンピューティングシステムに接続するために利用されてもよい。コンピューター１００はまた、キーボード、マウス、ペン、スタイラス（図１において、図示されていない）を含む、いくつかのその他のデバイスからの入力を受信及び処理するための入力／出力コントローラー２２を含む。同様に、入力／出力コントローラー２２はまた、ＩＰ電話、ディスプレイスクリーン２３、プリンター、又はその他のタイプの出力デバイス（図示されていない）に対して、入力／出力を提供し得る。
【００１２】
通信事業者ネットワーク２８は、モバイルデバイス２９との通信のためのネットワークである。通信事業者ネットワーク２８は、無線及び有線コンポーネントを含む。例えば、通信事業者ネットワーク２８は、有線の電話ネットワークにつながれた携帯基地局を含む。典型的には、セルラー基地局は、携帯電話、ノートブック、ポケットＰＣ、長距離通信リンク等、モバイルデバイスとの間で、通信を行う。通信のうちのいくつかは、メッセージである。例えば、メッセージはショートメッセージサービス（ＳＭＳ）のメッセージや、Ｅｎｈａｎｃｅｄ  Ｍｅｓｓａｇｉｎｇ  Ｓｅｒｖｉｃｅ  （ＥＭＳ）メッセージや、マルチメディアメッセージングサービス（ＭＭＳ）等であってもよい。本明細書において、「テキストメッセージ」とは、ＳＭＳメッセージ、ＭＭＳメッセージ及びＥＭＳメッセージ及びその他のタイプのショートメッセージを意味する。ゲートウェイ２７は、通信事業者ネットワーク２８及びＩＰネットワーク１８間のメッセージをルーティングする。
【００１３】
上記で簡潔に説明されているように、コンピューターの操作制御に適した、マイクロソフト社の、ＷＩＮＤＯＷＳ  ＳＥＲＶＥＲ（登録商標）又はＷＩＮＤＯＷＳ７（登録商標）といったオペレーションシステムを含む、いくつかのプログラムモジュール及びデータファイルは、コンピューター１００の大容量記憶装置１４及びＲＡＭ９に保存されていてもよい。大容量記憶装置１４及びＲＡＭ９は、また、一つ以上のプログラムモジュールを保存し得る。特に、大容量記憶装置１４及びＲＡＭ９は、スプレッドシートアプリケーション２４及びプログラムモジュール２５を含む一つ以上のアプリケーションプログラムを保存し得る。あらゆるスプレッドシートアプリケーションが利用され得る。実施例においては、ＭＩＣＲＯＳＯＦＴ  ＥＸＣＥＬ（登録商標）が利用される。
【００１４】
位置管理部２６は、スプレッドシートアプリケーション２４等の、スプレッドシートアプリケーションに関連づけられた位置情報を管理するように構成されている。位置情報は、１または複数の情報源から取得されてもよい。例えば、位置情報は、位置センサー１１又はそれ以外の位置情報源から取得してもよい。位置センサーは、位置ベースの情報を提供するあらゆるセンサーであってもよく、例えば、ＧＰＳ（ｇｌｏｂａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｓｙｓｔｅｍ）であってもよい。位置情報はまた、コンピューティングデバイスの外部から取得されてもよい。この位置情報は、ユーザーの位置の推測であってもよく（すなわち、ＩＰアドレス、最後に検知された位置等に基づく）、又はより正確な情報（すなわち、移動体通信サービスから提供された位置情報）であってもよい。全般的に、位置情報を決定するあらゆる方法が利用され得る。
【００１５】
位置情報を使用して、スプレッドシートアプリケーション２４における、データのフィルタリング、データソースの検出、計算の実行等を行ってもよい。データは、位置、個人、場所、及びその他の位置ベース情報によってフィルタリングされてもよい。位置情報は、本来のスプレッドシートの数式に統合され、計算を実施し、警告をトリガーし、又はその他のスプレッドシートのビジネスロジックを駆動する。位置情報を利用して、スプレッドシートを使用するユーザーの近くで公開された近くのデータソースを検知及び使用してもよい。
【００１６】
図２は、位置検知型スプレッドシート動作のためのシステムを開示する。開示されているように、システム２００は、コンピューティングデバイス１（２４０）、コンピューティングデバイス２（２２０）、コンピューティングデバイス３（２３０）、サービス２１０及びデータソース２５０を含む。コンピューティングデバイス１から３は、ネットワーク２０１を介してつながっている。コンピューティングデバイス各々は、位置検知型のスプレッドシートアプリケーションを含む。コンピューティングデバイス１のみ位置管理部２４４を含んで開示されているが、コンピューティングデバイス各々は、位置管理部の機能を含んでいてもよい。位置管理部は、スプレッドシートアプリケーションの一部であってもよいし、又は、位置管理部の機能がスプレッドシートアプリケーションの外部にあってもよい。コンピューティングデバイスは、位置検知型スプレッドシートアプリケーションと連携するその他のアプリケーションプログラムを含んでいてもよい。例えば、コンピューティングデバイスは、ｅ−ｍａｉｌプログラム、テキストメッセージングプログラム、インスタントメッセージングプログラム、Ｗｅｂブラウザー、マッピングプログラム、スプレッドシート表示プログラム等を含んでいてもよい。
【００１７】
位置情報は、例えば、位置センサー２４６といった位置センサー及び／又はその他の方法を使用することによって、コンピューティングデバイスに対して提供されてもよい。例えば、コンピューティングデバイスは、サービス２１０によって提供されるロケーションサービス等の、コンピューティングサービスにアクセスして、位置情報（例えば、携帯電話会社がデバイスに対して位置情報を提供する）を取得するかもしれない。コンピューティングデバイスはまた、その位置を推測してもよい。位置情報を、ＩＰアドレス、最後に検知した位置、ユーザーが入力した位置等を基準として推測してもよい。実施の形態によれば、コンピューティングデバイスがＧＰＳセンサーを使用して、位置情報を取得する。
【００１８】
サービス２１０は、コンピューティングデバイスによって利用され得る種々のサービス群を備えていてもよい。サービスには、サーチサービス、クラウドベースサービス（例えば、オンラインスプレッドシートサービス）、ロケーションベースのサービス、又はその他のサービスが含まれる。例えば、コンピューティングデバイス３等のコンピューティングデバイスは、オンラインサービスのデータストアに保存されたスプレッドシートにアクセスしてもよい。
【００１９】
スプレッドシートアプリケーション２４２等の、位置検知型スプレッドシートは、位置情報をその他の位置表示表現に変換するように構成される。例えば、ＧＰＳ座標は、場所の名前（すなわち、通り、建物、国、都市、州、公園その他同種類のもの）に変換されてもよい。変換は、コンピューティングデバイスのローカルで、及び／又はコンピューティングデバイス（すなわち、ロケーションベースのサービスが利用される）の外部で実施されてもよい。
【００２０】
位置検知型スプレッドシートアプリケーションはまた、人々の位置を決定するように構成される。例えば、コンピューティングデバイス１のユーザーは、位置情報を知りたい人々及び情報を共有したい人々のリストを保存してもよい。たくさんのあらゆる方法で位置データを取得する対象の人々を決定してもよい。例えば、スプレッドシート中に含まれる名前を決定したり、ユーザーが定義したリストから名前を決定したり、コンピューティングデバイスの連絡先にアクセスしたり、ＩＭクライアントの連絡先にアクセスしたり、ユーザーに関連づけられたその他の連絡先リストにアクセスしたり、又は、連絡先リストを保持するあらゆるソフトウェア又はハードウェア（例えば、ソーシャルネットワーキングサイト）を介して名前を決定してもよい。
【００２１】
ロケーションベースのサービス、ウェブサイト、携帯電話会社、ユーザーが入力した位置情報等を介して、リスト中の人々の位置が提供されてもよい。位置検知型スプレッドシートアプリケーションは、ある人が指定されたエリア中に存在するときに通知を受け、及び／又は人々が位置を移動するのに従い更新を受けてもよい。その他のスプレッドシートユーザーの位置を取得するための数式は、プッシュ又はプル方式を利用して行われてもよい。
【００２２】
位置検知型スプレッドシートアプリケーションは、位置情報を自動的に組み込むように構成され、ユーザーがより容易に位置コンテキストに関連付けられた有益な操作を実施できるようにする。本来のロケーション数式２４３のセットは、例えば、スプレッドシートアプリケーション２４２等の、位置検知型スプレッドシートアプリケーションによって利用される。ロケーション数式は、様々な異なるタイプの数式を有する。例えば、位置データをあるタイプからその他のタイプ（すなわち、ＧＰＳから都市、建物からＧＰＳ）に変換する変換数式のセット、デバイスから直接又は離れたところから位置情報を取得する数式、他の人々を探す数式、スプレッドシート上のオペレーションをトリガーする数式、データソースを検出する数式、ユーザーインターフェースのフィルタリング及びソーティング数式、ユーザーインターフェースの表示に関わる数式等がある。例えば、ロケーション数式は、ユーザーがオレゴンにいるときに、スプレッドシート中の３つの数字の合計が計算され、ユーザーがオレゴンにいないときに、列の数字の平均が計算されることを指定してもよい。ロケーション数式は、スプレッドシートに関連づけられた値／オブジェクトに利用されてもよい。
【００２３】
接続するデータソースが指定されてもよい。例えば、ユーザーインターフェースを利用して、利用可能なデータソースを提示し、一つ以上の利用可能なデータソースに接続してもよい。データソースが利用可能になったとき（例えば、データソースがユーザーの現在の位置の近くにある）に、ユーザーインターフェース内に、データソースが提示されてもよい。
【００２４】
位置情報に基づき動作をトリガーする数式は、位置情報があらかじめ定められた条件を満たした際に、ある操作を実施するように構成されている。ロジックは、どのような場合にアクションが実行されるかを特定する（すなわち、ユーザーが予め定義された位置にいる、予め定義された位置外にいる、他のユーザーが指定された位置にいる、データソースがユーザーの近くの位置で公開された等）ロケーション数式に関連付けられていてもよい。トリガーされる動作は、多数の異なるタイプのイベントであってもよい。例えば、ユーザーが予め定められた位置の範囲内又は範囲外を移動するとき、一人以上の他のユーザーとの通信（例えば、ｅｍａｉｌの送信、テキスト、ネットワークへのメッセージのポスティング）が自動的にトリガーされる。トリガーされる動作は、データの保存、その位置において公開されたデータソースへのアクセス、予め定められた距離内にいる他のユーザーのスプレッドシートへのアクセス、又は数式に含まれるビジネスロジックで定義されているかもしれないその他のオペレーションの実施に関するものでもよい。これらの動作は、同様に、さらなるスプレッドシートロジックに基づき、条件付きで実施されてもよい。ロケーションベースの数式はまた、数式のシンタックス及びその他のスプレッドシートの数式と関連づけられたふるまいを利用して、その他あらゆるスプレッドシートの数式と組み合わされてもよい。
【００２５】
データソース検知数式は、位置検知型スプレッドシートアプリケーションによって利用されるデータソースが、どのような場合に利用可能か決定するように構成されている。例えば、ユーザーは、ミーティングの他のユーザーが、ミーティングに関連するデータソースを公開したミーティングルームに、ミーティングのために入るかもしれない。ユーザーはゲームの統計に関するデータソースを公開するスポーツイベントに参加するかもしれない。ユーザーは、協議会が１つ以上のデータソースを公開した協議会に参加するかもしれない。これらのデータソースは、ユーザーが利用可能なネットワークを通じて公開されてもよい。
【００２６】
データソース表示（ｓｕｒｆａｃｅ）機能は、ユーザー及びその他のユーザーの位置を基準とするその他のデータソースを表示させ得る。例えば、ユーザーは、他のユーザーのスプレッドシートであって近くのスプレッドシートにおいて保存された値を、連携させ及び利用するかもしれない（すなわち、あるスプレッドシートユーザーは、他のスプレッドシートユーザーのスプレッドシート中のデータを利用するかもしれない。）。
【００２７】
位置フィルタリング機能は、ユーザーの位置に基づき、自動的にデータをフィルタリングする。位置情報に基づき、スプレッドシート中のある値／行／列を表示、又は非表示としてもよい。例えば、スプレッドシートは、ワシントン、オレゴン、そして、カリフォルニアに位置する異なる顧客の元に出張する営業マンに利用されてもよい。営業マンが顧客を訪問するために、ワシントンにいるとき、フィルタリング機能が自動的にスプレッドシートをフィルタリングして、ワシントンに関連するデータだけ表示させてもよい。フィルタリングは、種々の細分化レベルに基づきフィルタリングするように設定されてもよい。例えば、フィルタリングは、会社、建物、都市、州、国、国等毎に行われてもよい。表示される細分化レベルは、ユーザー定義及び／又は自動的に選択されたものであってもよい。例えば、一番細やかな細分化レベルが自動的に選択されていてもよいし、及び／又は利用可能な細分化レベルの部分が利用されてもよい。
【００２８】
実施形態に従えば、スプレッドシート自体は、位置検知型の方法で作成される必要はない。例えば、位置を示す列／行は、特に“ｌｏｃａｔｉｏｎ”列として有効にされる必要はない。代わりに、スプレッドシートアプリケーション２４２は、例えば、スプレッドシート２４８等のスプレッドシートにアクセスし、そして、位置の値（例えば、市、州、地域、人、その他同種類のものを表す文字列）に関連付けられた識別子をサーチし、そして、位置情報に基づき自動的にこれらの行／列をフィルタリングするようにする。位置管理部が、スプレッドシート中の、文字列又はその他のデータタイプ（例えば、経度／緯度）が位置に関連しているかを決定し、この値／行／列が、位置情報を利用して、自動／手動でフィルター／ソートされる。スプレッドシートに、明示的に位置情報を利用可能としてもよい。例えば、ユーザーが新たな値を作成するとき、ユーザーはその値が位置情報を利用することを指定してもよい。値／行／列に対して、位置タイプ（例えば、ＧＰＳタイプ）を指定することができる。
【００２９】
説明されているように、位置検知型スプレッドシートはまた、コンピューティングデバイスの近くにいる他のスプレッドシートユーザーを検知することができる。ユーザーは、あらかじめ定められた位置内にいるスプレッドシートユーザーと共同作業することができる。各ユーザー又は人々の集合に対して、位置を判定してもよい。例えば、ある人物が、予め定められたエリアの外である、かなり距離がある場所にいると認識されているとき、その人物は一定の時間の間追跡されない。
【００３０】
図３は、位置フィルタリングが有効にされた例示的なスプレッドシート３００を開示する。図示されているように、スプレッドシート３００は、ワシントン、オレゴン、そして、カリフォルニアの異なる州の情報を表示する。上記で説明したように、スプレッドシートはまた、位置情報に基づき、自動的にフィルターを行う。例えば、ユーザーがワシントンにいるとき、スプレッドシート３００において、その他の州の情報は表示させずに、ワシントン情報（３１０）が表示される。ユーザーの位置が変更すると、スプレッドシートは自動的に再フィルターされ、そして、ビューが自動的に更新される。例えば、ユーザーがワシントンからオレゴンに移動したとき、他の州の情報は表示せずにオレゴン情報（３０６）が表示される。
【００３１】
フィルタリングは、人、場所、及び／又はその他の物理的なオブジェクトに関連させてもよい。例えば、スプレッドシートは、スプレッドシートユーザーのリストを含むユーザー列を有するかもしれない。ユーザーが、リスト中のその他のユーザーに対して、予め定められた近接度の範囲内に位置するとき、近接度の範囲内のユーザーを表示するようにスプレッドシートはフィルタリングされ得る。スプレッドシートフィルタリングは、あらゆる細分化のレベルで実施されてもよい。例えば、特定の距離、特定の建物、地域、都市、州、等に対してフィルタリングが指定されてもよい。
【００３２】
スプレッドシートはまた、位置情報に基づき、自動的にソートされてもよい。例えば、ユーザーに対して、最も近くにいる人が最初に表示され、最も遠くにいる人がリストの最後に表示されてもよい。同様に、ユーザーが種々の州に移動するにつれて、一番近い州がスプレッドシート中で一番初めに表示され、次に近い州がその後に続く等でもよい。フィルタリングとソーティングの組み合わせもまた定義されてもよい。
【００３３】
図４は、ロケーションフィルタリングユーザーインターフェースを有する例示的なスプレッドシート４００を開示する。例示されているように、スプレッドシート４００は、ワシントン、オレゴン、カリフォルニア、アリゾナの情報を明示する。スプレッドシート４００はまた、例えば、フィルターユーザーインターフェース（ＵＩ）４１０、フィルターメニュー４１２及びメニュー４１４等の、位置を基準としたオプションを設定するために使用される、例示的なユーザーインターフェースを表示する。様々なオプションを取り扱うために、様々な異なるタイプのユーザーインターフェースが使用され得る。例えば、ユーザーインターフェースは、コンテキストメニュー、メニューバー内のメニュー、リボンユーザーインターフェースから選択されたメニューアイテム、グラフィカルなメニュー等であってもよい。図示されているように、フィルターユーザーインターフェース４１０は、スプレッドシート４００内に含まれる列の上に表示されるユーザーインターフェースである。フィルターユーザーインターフェース４１０は、すべての列にわたって表示されてもよいし、列の一部に表示されてもよいし、又は、一つ以上の列の上に表示されてもよい（例えば、フィルターメニュー４１２）。フィルターメニューが選択されたとき、様々なフィルタリングのオプションが選択のために利用可能となる。例えば、フィルタリングオプションは、例えば、メニュー４１４等のメニュー内に提示されてもよい。フィルタリングオプションは、様々なオプション、例えば、位置（例えば、現在位置又は選択された位置）に対するフィルター、近接度に対するフィルター（例えば、予め定義されたエリア内の対象のみ表示）、距離による並び替え及びその他のオプションを含んでもよい。例えば、その他のオプションは、フィルタリングに利用される距離、提示の詳細レベル、位置情報の取得頻度等に関するユーザー設定オプションを含んでもよい。同様に、コンテキストメニューを利用して、フィルタリングオプションを取り出してもよい。例えば、ユーザーはセル上で右クリックして、ポイントされた位置でコンテキストメニューを表示させてもよい。コンテキストメニューは、メニュー４１４に類似するものである。ユーザーは、次に、フィルタリングオプションを選択し得る。
【００３４】
図５は、スプレッドシートに位置情報を統合するための例示的なプロセス５００を表示する。本明細書において提示されているルーチンについての説明を読めば、様々な実施例の論理的なオペレーションは、（１）コンピューティングシステム上で動作する、一連のコンピューターに実装された動作又はプログラムモジュール及び／又は（２）コンピューターシステム内で相互接続されたマシン論理回路又は回路モジュールとして実装されることが理解され得る。実装は、発明を実施するコンピューティングシステムのパフォーマンス要求に依存した、選択の余地の問題である。したがって、例示され、本明細書において説明される実施の形態を構成する論理的なオペレーションは、多様に、オペレーション、構造的なデバイス、動作又はモジュールと呼ばれる。これらのオペレーション、構造的なデバイス、動作及びモジュールは、ソフトウェア、ファームウェア、特殊目的デジタル論理及びここにおけるあらゆる組み合わせによって実装可能である。
【００３５】
スタートブロックから、プロセスは、オペレーション５１０に移行し、位置情報が取得される。位置情報は、ユーザーの位置又はその他のユーザーの位置に関連する。例えば、ユーザーの位置が取得され、一人以上のその他のユーザーの位置もまた取得されるかもしれない。位置情報は、ユーザーから取得され、デバイスの及び／又はその他の場所のセンサーから提供されるかもしれない。例えば、ロケーションサービスが、ユーザー又はその他のユーザーの位置情報を提供してもよい。位置情報は、様々な正確性のレベルを有していてもよい（例えば、ＧＰＳによる位置情報がとても正確である一方で、ＩＰアドレスによる位置情報はラフな推測でしかない）。位置情報はまた、ユーザーから取得してもよい。例えば、ユーザーは自身の位置情報を、ユーザーインターフェースを利用して入力してもよい。
【００３６】
ブロック５２０に移行して、位置情報は、スプレッドシートで利用される。位置情報を用いて、ユーザー及び／又はその他のユーザーの位置を基準として、スプレッドシートを、フィルター／ソートしてもよい。スプレッドシート中の数式は、位置情報を利用して、その他のオペレーションを実施又はトリガーしてもよい。位置情報を用いて、そのエリア内の公開されたデータソースを検索してもよい。ユーザーの周辺地域内にいる他のユーザーもまた検索されてもよい。位置情報を利用する数式のうちいくつかは、取得した位置情報を他のロケーションフォーマットに変更することを指定してもよい。例えば、ＧＰＳ座標を、位置の名称、ブロック、都市、その他同種類のものに変換してもよい。
【００３７】
オペレーション５３０に移行すると、位置情報によりトリガーされるオペレーションの実行がされる。例えば、メッセージの送信、共同作業の開始、フィルタリング、データソースの表示に係る動作、スプレッドシートのビューの変更等が実施される。
【００３８】
オペレーション５４０に移行すると、スプレッドシートが表示される。説明されているように、スプレッドシートの表示は、ユーザー及び／又はその他のユーザーの位置に基づき自動的に変更されてもよい。例えば、ユーザーが位置を移動すると、スプレッドシート内でユーザーに表示されるデータが変わってもよい。
【００３９】
プロセスはエンドブロックに到達し、他の処理の実行のために戻される。
【００４０】
上記の詳細な説明、例示及びデータは、本発明の構成要素の生産及び利用についての完全な説明を提供する。本発明の精神及び範囲に逸脱することなく、多様に本発明の実施の形態がなされ得ることから、本発明は、本明細書に添付される特許請求の範囲に記載された事項の範囲内にあるといえる。
【図１】
0005944407.tif 000002
【図２】
0005944407.tif 000003
【図３】
0005944407.tif 000004
【図４】
0005944407.tif 000005
【図５】
0005944407.tif 000006