(57)【要約】【課題】データベースから取得したデータに基づき、自由度の高い表示と、データ量の多少に関わらず良好なレスポンスとを実現して図表作成する。【解決手段】  図表作成装置１の関数処理部４１は、表計算ソフト（アドイン部１４２ａ）のワークシートＡ上のセルＣに入力された関数の命令内容に基づいて得たデータをセルＣに返す。データ処理部４３は、関数の指定するデータと共に、関数の引数を形成するコードを有する時系列データ全体をローカルデータベース１４３から取得し、データキャッシング部１２１に格納させる。ローカルデータベース１４３から取得したデータに所定の演算を行って得た演算データは、演算データキャッシング部１２２に格納する。関数の指定するデータがデータキャッシング部１２１、演算データキャッシング部１２２に存在する場合、データ処理部４３はそれらを優先して取得する。【選択図】図２
2007188235.tif 000002
【特許請求の範囲】
【請求項１】
表計算ソフトのワークシート上のセルに入力された命令データを読み込んで命令内容を解読すると共に、該命令内容に基づいて取得されたデータを前記セルに返す命令処理手段と、
メモリ上に形成されデータベース等から取得された前記データをキャッシュするデータキャッシング手段と、
前記命令処理手段が解読した前記命令内容に基づいて前記データベース又は前記データキャッシング手段を検索し前記命令内容において指定された指定データを前記データベース又は前記データキャッシング手段から取得するデータ取得手段とを備え、
前記データ取得手段は、前記命令内容において取得を求められた前記指定データに含まれる所定の情報を読み込んで、前記指定データと共に、前記データベースに蓄積されたデータのうち前記所定の情報を含む前記指定データの同一系列データを取得して前記指定データ及び前記同一系列データを前記データキャッシング手段に格納し、
かつ、前記データ取得手段は、前記命令内容において取得を求められた前記指定データが前記データキャッシング手段に存在する場合、前記データキャッシング手段の前記指定データを優先して取得することを特徴とする図表作成装置。
【請求項２】
前記データベースから取得された前記データに対し、前記命令内容に基づいて所定の演算処理を行い該演算処理の結果としての演算データを算出する加工・演算手段と、
算出された前記演算データをキャッシュする演算データキャッシング手段とを備え、
前記データ取得手段は、前記命令内容において取得を求められた前記指定データが前記演算データキャッシング手段に存在する場合、前記演算データキャッシング手段の前記指定データを優先して取得することを特徴とする請求項１に記載の図表作成装置。
【請求項３】
前記データ取得手段は、前記命令内容において取得を求められた前記指定データが前記演算データであって前記演算データキャッシング手段に存在せず、かつ前記指定データを形成しうるデータが前記データキャッシング手段に存在する場合、前記データキャッシング手段の前記指定データを形成しうるデータを優先して取得することを特徴とする請求項２に記載の図表作成装置。
【請求項４】
前記命令処理手段が解読しうる前記命令データは、前記表計算ソフト上で動作可能な関数によって形成されるとともに、前記所定のデータは前記関数の所定の引数に基づいて取得される前記データであることを特徴とする請求項１乃至３の何れか一つに記載の図表作成装置。
【請求項５】
前記関数は、時系列データを形成する、数値データ又は前記数値データの属性情報を前記セルに返すことを特徴とする請求項４に記載の図表作成装置。
【請求項６】
コンピュータを請求項１乃至５の何れか一つに記載の図表作成装置として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、いわゆる表計算ソフトを用い、データベースに格納された種々のデータを取得、処理、記憶する技術に関する。
【背景技術】
【０００２】
特定分野の膨大なデータ（例えば経済統計データ）を集積・管理し、インターネット等を介して利用者に提供するデータベースサービスが存在する。このデータベースサービスは、いわゆる時系列データ（時間の経過とともに観測あるいは算出された数値データ群、及びその数値データ群の属性情報のこと。例えば製品の売上高の推移、特定銘柄の株価の推移等のデータ。以下同じ。）を提供することも多い。データベースサービスの利用者は、取得したデータを必要に応じて適宜加工・演算を施し、得られたデータをグラフや表に表して利用する。
【０００３】
そして、従来、データベースサービスが提供するデータをコンピュータ端末を用いて取得し、端末のディスプレイ上にグラフや表として表示する技術として、データベースアクセス用ソフトウェア上に取得したデータを書き出してディスプレイ上に表示させる発明が存在する（例えば特許文献１参照）。
【特許文献１】特開２００１−２６５３１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ここで、データベースサービスが提供するデータ、特に時系列データは、データ量が多く、しかもデータベースから取得した元のデータ全てを対象に所定の演算を行わないと表示するデータが得られない場合（例えば季節調整値を表示するような場合）が多い。
【０００５】
そして、上記特許文献１に記載の発明は、元のデータ全てを対象とした演算は表示するデータの数に関わらず一回の演算処理にて完了させることができるので、レスポンスタイムは短い。しかし、表示態様のバリエーションが乏しいため、多様な表示態様を求める利用者のニーズに応えられないという問題がある。
【０００６】
このような問題を解決するためには、表計算用ソフトウェア（以下「表計算ソフト」と証する。）のセルから直接データベースにアクセスしてデータを取得し、ディスプレイ上に表示させる方法も考えられる。
【０００７】
しかし、この方法によると、演算処理は表計算ソフトの各セルに表示される個々のデータごとに行われることになる。そのため、上述の時系列データのように、表示する個々の値を算出する際にデータ全体に対して演算を行わねばならない場合にこの方法を用いると、データ全体を対象とした重い演算処理をセルの数だけ行わねばならず、演算に膨大な時間を要してレスポンスタイムが長大化するという問題がある。
【０００８】
本発明はこのような問題に基づいてなされたものであり、データベースから取得されたデータに基づく図や表の作成において、自由度の高い表示態様を実現しつつ、データ量の多少に関わらず良好なレスポンスを維持できる図表作成装置を提供することを課題としている。
【課題を解決するための手段】
【０００９】
上記課題に鑑みて、請求項１に記載の発明は、図表作成装置であって、表計算ソフトのワークシート上のセルに入力された命令データを読み込んで命令内容を解読すると共に、該命令内容に基づいて取得されたデータを前記セルに返す命令処理手段と、メモリ上に形成されデータベース等から取得された前記データをキャッシュするデータキャッシング手段と、前記命令処理手段が解読した前記命令内容に基づいて前記データベース又は前記データキャッシング手段を検索し前記命令内容において指定された指定データを前記データベース又は前記データキャッシング手段から取得するデータ取得手段とを備え、前記データ取得手段は、前記命令内容において取得を求められた前記指定データに含まれる所定の情報を読み込んで、前記指定データと共に、前記データベースに蓄積されたデータのうち前記所定の情報を含む前記指定データの同一系列データを取得して前記指定データ及び前記同一系列データを前記データキャッシング手段に格納し、かつ、前記データ取得手段は、前記命令内容において取得を求められた前記指定データが前記データキャッシング手段に存在する場合、前記データキャッシング手段の前記指定データを優先して取得することを特徴とする。
【００１０】
請求項２に記載の発明は、請求項１に記載の構成に加え、前記データベースから取得された前記データに対し、前記命令内容に基づいて所定の演算処理を行い該演算処理の結果としての演算データを算出する加工・演算手段と、算出された前記演算データをキャッシュする演算データキャッシング手段とを備え、前記データ取得手段は、前記命令内容において取得を求められた前記指定データが前記演算データキャッシング手段に存在する場合、前記演算データキャッシング手段の前記指定データを優先して取得することを特徴とする。
【００１１】
請求項３に記載の発明は、請求項２に記載の構成に加え、前記データ取得手段は、前記命令内容において取得を求められた前記指定データが前記演算データキャッシング手段に存在せず、かつ前記指定データを形成しうるデータが前記データキャッシング手段に存在する場合、前記データベースよりも前記データキャッシング手段の前記指定データを形成しうるデータを優先して取得することを特徴とする。
【００１２】
請求項４に記載の発明は、請求項１乃至３の何れか一つに記載の構成に加え、前記命令処理手段が解読しうる前記命令データは、前記表計算ソフト上で動作可能な関数によって形成されるとともに、前記所定のデータは前記関数に基づいて取得される前記データであることを特徴とする。
【００１３】
請求項５に記載の発明は、請求項４に記載の構成に加え、前記関数は、時系列データを形成する、数値データ又は前記数値データの属性情報を前記セルに返すことを特徴とする。
【００１４】
請求項６に記載の発明は、プログラムであって、コンピュータを請求項１乃至５の何れか一つに記載の図表作成装置として機能させることを特徴とする。
【発明の効果】
【００１５】
請求項１に記載の発明によれば、データベース等から取得された各種のデータをキャッシュするデータキャッシング手段をメモリ上に形成し、表計算ソフトのワークシート上のセルに入力された命令データに基づいてデータを取得する際に、取得を求められた指定データがデータキャッシング手段に存在する場合、データ取得手段はデータキャッシング手段の指定データを優先して取得することにより、データベースアクセスの回数やデータベースとのデータ送受信に要するＣＰＵのコストを減少させることができる。これにより、表計算ソフトのセルに命令データが入力されたときのレスポンスタイムが短くなる。そして、データベースから取得されたデータに基づく図や表の作成において、自由度の高い表示態様を実現しつつ、データ量の多少に関わらず良好なレスポンスを維持することができる。
【００１６】
また、請求項１に記載の発明によれば、データベースから指定データを取得する際、指定データと共に、データベースに蓄積されたデータのうち所定の情報を含む指定データの同一系列データを取得して指定データと共にデータキャッシング手段に格納することにより、データベースから取得を求められたデータと同一系列のデータを取得する際にデータキャッシング手段から取得することが可能になる。これにより、当該同一系列のデータの取得に要するデータベースアクセスの回数やＣＰＵのコストを減少させることができる。そして、データベースから取得されたデータに基づく図や表の作成において、自由度の高い表示態様を実現しつつ、データ量の多少に関わらず良好なレスポンスを維持することができる。
【００１７】
請求項２に記載の発明によれば、上記効果に加え、データベースから取得したデータに所定の演算処理を行って演算データを算出し、算出した演算データを演算データキャッシング手段にキャッシュし、データ取得手段がキャッシュされた演算データを優先して取得することにより、データベースから取得された後に所定の演算処理を施してセルに返す必要のある数値データについて、演算処理に要するＣＰＵのコストや処理時間を削減することができる。これにより、表計算ソフトのセルに、演算により算出される数値データを取得する命令データが入力されたときのレスポンスタイムが短くなる。そして、自由度の高い表示態様を実現しつつ、データ量の多少に関わらず一層良好なレスポンスを維持できる。
【００１８】
請求項３に記載の発明によれば、上記効果に加え、指定データが演算データであって前記演算データキャッシング手段に存在せず、かつ指定データを形成しうるデータがデータキャッシング手段に存在する場合、データキャッシング手段の当該データを優先して取得することにより、演算データを形成する際のデータベースアクセスの回数やデータベースとのデータ送受信に要するＣＰＵのコストを減少させることができる。これにより、表計算ソフトのセルに、演算により算出される数値データを取得する命令データが入力された場合、数値データがセルに返されるまでのレスポンスが短くなる。そして、自由度の高い表示態様を実現しつつ、データ量の多少に関わらず一層良好なレスポンスを維持できる。
【００１９】
請求項４に記載の発明によれば、上記効果に加え、命令データを表計算ソフト上で動作可能とすることにより、本発明の機能と表計算ソフトの通常の機能とを支障なく併用することができ、本発明を表計算ソフトの利便性を高めるために用いることが可能となる。また、命令データの書式を表計算ソフトにおける通常の命令データと同様に「関数」の書式とすることで、セルに命令を入力する利用者に違和感なく命令データを入力させることができて、表計算ソフト上で本発明を利用する利用者の利便性を高めることができる。さらに、図や表の作成を関数に基づいて行うことにより、引数を変化させることで作成される図や表の態様を容易に変化させることが可能となり、図表作成の自由度を向上させることができる。
【００２０】
請求項５に記載の発明によれば、上記効果に加え、関数は、時系列データを形成する数値データ又は時系列データの属性情報をセルに返すことにより、経済情報や統計情報等における図表作成に本発明を適用することを可能とし、膨大なデータ量を扱うケースの多い当該分野の図表作成において、自由度の高い表示態様を実現しつつ、一層良好なレスポンスを維持できる。
【００２１】
請求項６に記載の発明によれば、多様なコンピュータハードウェア上で本発明を実現させることができる。
【発明を実施するための最良の形態】
【００２２】
以下、この発明の実施の形態を図面を参照して説明する。
【００２３】
図１は、本実施の形態の図表作成システムの構成を示す図である。同図に示す通り、図表作成システム１Ａは、図表作成装置１、第一データベースサーバ２、第二データベースサーバ３を備え、それらがインターネット４に通信可能に接続されている。
【００２４】
図表作成装置１は、パーソナルコンピュータ、携帯情報端末（ＰＤＡ）等の汎用コンピュータであり、ＣＰＵ１１、メインメモリ（ＲＡＭ）１２、ＲＯＭ１３、磁気ディスク１４、入力コントローラ１５、表示コントローラ１６、通信インターフェース部１７がバス接続されている。また、第一データベースサーバ２には第一広域データベース２０が、第二データベース３には第二広域データベース３０がそれぞれ設けられている。
【００２５】
ＣＰＵ１１は、図表作成装置１全体を制御するものであり、ＲＯＭ１３に格納されたプログラムの記述に基づき、メインメモリ１２を作業領域として用いながら各種データ処理を実行する。メインメモリ１２、ＲＯＭ１３は記憶媒体であり、メインメモリ１２はＣＰＵ１１の作業領域として、ＲＯＭ１３はローディングプログラムの格納領域として用いられる。磁気ディスク１４は各種アプリケーションプログラムやデータベース等の格納領域として用いられる。
【００２６】
磁気ディスク１４には、ＯＳ（Operating System）プログラムや、アプリケーションプログラムとしての表計算ソフト１４１、アドインソフト１４２が格納される。また、アドインソフト１４２をＣＰＵ１１において処理した結果、ローカルデータベース１４３が磁気ディスク１４内に、データキャッシング部１２１及び演算データキャッシング部１２２がメインメモリ１２内に、それぞれ形成される。（表計算ソフト１４１、アドインソフト１４２、データキャッシング部１２１、演算データキャッシング部１２２については後述する。）
【００２７】
入力コントローラ１５ａは、操作部１５（キーボードやポインティングデバイス等）の操作をＣＰＵ１１に伝達する。表示コントローラ１６ａは、ＣＰＵ１１が作成した表示データをＬＣＤ（Liquid Crystal Display：液晶ディスプレイ）等の表示部１６に表示させる。通信インターフェース部１７は、所定の通信プロトコルに基づいて、インターネット４を介してデータを送受信するために必要な処理を行う。
【００２８】
第一広域データベース２０、及び第二広域データベース３０はインターネット４を介して利用可能なデータベースであり、それぞれ経済統計データを供給するデータベースサービス会社が保持管理する情報が格納されている。第一広域データベース２０、第二広域データベース３０に格納されたデータ群は、同一の会社が保持管理するデータであってもよいし、別個の会社が保持管理するデータであってもよい。
【００２９】
第一広域データベース２０（又は第二広域データベース３０）には、図２に示すような属性情報テーブル２０ａ（同図ａ）や、数値データテーブル２０ｂ（同図ｂ）が多数格納されている。属性情報テーブル２０ａにおいては各行が一の時系列データの属性情報を形成する。また、属性情報テーブル２０ａには、「期種」「期種変換」という属性情報（図示せず）も含まれている。数値データテーブル２０ｂには、時系列データの数値データを形成する情報が格納されている。なお、「属性情報」「数値データ」「期種」「期種変換」等については後述する。
【００３０】
図３は、このような構成を持つ図表作成装置１の機能ブロック図である。
【００３１】
図表作成装置１は、磁気ディスク１４に格納された表計算ソフト１４１及びアドインソフト１４２の、ＣＰＵ１１における実行結果によって構成される。表計算ソフト１４１は数値データの集計・分析に用いられる作表ソフトウェアである。本実施の形態では、Microsoft社の「Excel」を用いるが、例えばＩＢＭ社の「Lotus1-2-3（登録商標）」等他の表計算ソフトによっても実現可能である。アドインソフト１４２は、表計算ソフト１４１にアドイン（Add-in，アプリケーションソフトに追加される拡張機能のこと）されるソフトウェアである。そして図３に示す通り、図表作成装置１は、表計算ソフト１４１の実行結果としての表計算部１４１ａ、アドインソフト１４２の実行結果であって表計算部１４１ａ上で機能するアドイン部１４２ａによって構成される。
【００３２】
表計算部１４１ａは、表示部１６にワークシートＡを表示させ、セルＣに対するデータの入出力を管理する。
【００３３】
アドイン部１４２ａは、関数処理部（命令処理手段）４１、加工・演算部（加工・演算手段）４２、データ処理部（データ取得手段）４３、演算データキャッッシング処理部４４、外部データ入力制御部４５、ローカルデータベース１４３、データキャッシング部（データキャッシング手段）１２１、演算データキャッシング部（演算データキャッシング手段）１２２を備えている。
【００３４】
関数処理部４１は、セルＣとデータの受け渡しを行い、ワークシートＡのセルＣにテキスト入力された関数（後述）を解読して当該関数の要求する命令を実行し、値をセルＣに返す機能を有する。
【００３５】
データ処理部４３は、関数の命令に基づいてローカルデータベース１４３からのデータの取得やデータキャッシング部１２１等のデータの入出力を行う。
【００３６】
加工・演算部４２は、データ処理部４３が取得したデータに対し、必要な加工や演算処理を施して関数処理部に渡す。
【００３７】
演算データキャッシング管理部４４は、ローカルデータベース１４３やデータキャッシング部１２１から取得されたデータに関数の命令に基づく演算処理を施して演算データキャッシング部１２２に格納し、また演算データキャッシング部に蓄積されたデータの管理を行う。
【００３８】
外部データ入力制御部４５は、操作部１５等からの入力に基づいて第一、第二データベースサーバ２、３からローカルデータベース１４３へのデータ入力を制御する。
【００３９】
ローカルデータベース１４３は、磁気ディスク１４に形成され、時系列データを蓄積する。時系列データの「時間」は、日、週、月、年などの時刻や暦の単位に基づくものも、四半期、上半期等の任意の単位に基づくものも含む。また、属性情報は、例えば「製品の売上高」「株価の推移」といったデータの名称や、「％」「円」といったデータの単位等が相当する。
【００４０】
ローカルデータベース１４３においては、データは時系列データごとのテーブルとして格納されている。
【００４１】
図４に、時系列データテーブル１４３ａのイメージ図を示す。同図に示すのは「全国エアコン販売台数」の時系列データであり、属性情報１４３ａ１、及び数値データ１４３ａ２から形成されている。属性情報には、各データの単位（日、月、年等）の情報としての期種データ１４３ａ１１、関数による「期種」の変換態様の情報としての期種変換データ１４３ａ１２も含まれる。数値データ１４３ａ２は、月毎の全国エアコン販売台数によって形成されている。ローカルデータベース１４３には、このようなテーブルが時系列データ単位で多数格納されている。
【００４２】
データキャッシング部１２１、及び演算データキャッシング部１２２はメインメモリ１２に形成される。
【００４３】
データキャッシング部１２１には生データ（ローカルデータベース１４３から取得された状態でキャッシングされるデータのこと。以下同じ。）のテーブルをキャッシングしたデータキャッシングテーブルが格納される。このデータキャッシングテーブル１２１ａはローカルデータベース１４３に格納された個別の時系列データテーブルと同じものである。即ち、例えば「全国エアコン販売台数」のデータキャッシングテーブル１２１ａは、図４に示す通り、時系列データテーブル１４３ｂと同一のテーブルであって、このデータキャッシングテーブル１２１ａがデータキャッシング部１２１に格納される。
【００４４】
一方、演算データキャッシング部１２２には数値データが演算データ（ローカルデータベース１４３に格納されたデータに対して所定の演算を行って格納されるデータのこと。以下同じ。）である時系列データが格納される。図５に、演算データキャッシングテーブルのイメージ図を示す。同図の演算データキャッシングテーブル１２２ａは、「全国エアコン販売台数」の時系列データであり、属性情報１２２ａ１、及び数値データ１２２ａ２から形成されている。属性情報には、期種データ１２２ａ１１、期種変換データ１２２ａ１２も含まれる。数値データ１２２ａ２は、月毎の全国エアコン販売台数の季節調整値（実際の販売台数を季節指数で割った値）によって形成されている。
【００４５】
前述した通り、ワークシートＡのセルＣには関数がテキスト入力される。この「関数」は、所定の引数を指定して実行すると（アドイン部１４２ａの処理により）所定の演算を実行し、実行結果（以下「値」と称する。）を返す命令のことである。各関数は、複数のアルファベットによって示された関数名と、この関数名に続いて括弧内に示された引数とから成る。この「引数」は、関数の計算に必要とされる値のことであり、必要とされる引数の種類は関数毎に相違する。引数が複数ある場合、各引数はカンマ（，）で区切られて列挙される。いずれの関数も、引数として、定数だけでなく、セル参照（特定のセルに入力された値を、表内での絶対位置又は相対位置を用いて参照する方法）や関数そのものを用いることもできる。引数が複数ある場合、一部の引数を省略することもできる。
【００４６】
例えば、「ＩＮＤＢＺ（“TOPIX”，“名称”）」という関数は、「ＩＮＤＢＺ」が関数名であり、“TOPIX”及び“名称”が引数である。
【００４７】
関数の態様及び機能は多種多様に形成できるが、本実施の形態においては、「属性取得関数」、「数値計算関数」、「時点数値取得関数」の３つを代表例として説明する。各関数の仕様は以下の通りである。
【００４８】
（１）属性取得関数・・・書式：ＩＮＤＢＺ（コード，属性名）
属性取得関数は、指定された（特定の時系列データの）コードの属性情報（名称、単位、出展、開始時期、終了時期等）を取得する。
例えば「ＩＮＤＢＺ（“topix”，“名称”）」という関数は、TOPIXというコードを持つ時系列データの名称（即ち、東証株価指数）を取得する。
【００４９】
（２）数値計算関数・・・書式：ＩＮＤＢＣ（コード、計算方法、開始時点、終了時点）
数値計算関数は、指定されたコードを持つ時系列データの全時点値の平均値を取得する。
例えば「ＩＮＤＢＣ（“topix”，“平均”）」という関数は、TOPIXというコードを持つ時系列データの全時点値の平均値を取得する。
【００５０】
（３）時点数値取得関数・・・書式：ＩＮＤＢＳ（コード，時点，演算方法・・・）
時点数値取得関数は、指定されたコードの指定された時点の数値を取得し、取得した数値に対し指定された演算を行った結果を値として返す。演算方法としては例えば“原数値”“前記比”“移動平均”“期種変換”があり、複数の演算方法を併用できる。
【００５１】
例えば「ＩＮＤＢＳ（“topix”，“1999/11”，“前年比”，“暦年”）」という関数は、月毎に発表されたTOPIXのデータを暦年集計（期種変換）して、1999年期の前年比を取得する。
【００５２】
生データに加工・演算処理を施して値を形成する際、加工・演算部４２にて処理するか演算データキャッシング処理部４４にて処理するかは、関数中の引数により区別する。具体的には、第１引数（一番左側に示された引数）にアンダーバー“_”が表示されているか否かで区別する。
【００５３】
例えば「ＩＮＤＢＳ（“topix”，“2005/11”，“前年比”）」という関数は、「2005年11月のTOPIXデータの前年比を算出する」演算を加工・演算部４２で行わせ、算出結果を値として返す。一方、「ＩＮＤＢＳ（“topix_add”，“2005/11”）」という関数は、「2005年11月のTOPIXデータの季節調整値を算出する」演算を演算データキャッシング処理部４４で行わせ、算出結果を演算データキャッシング部１２２に格納すると共に値として返す。なお、ここでのアンダーバー“_”は直前の引数要素“topix”を季節調整演算させる命令も兼ねており、アンダーバー“_”の直後の“add”は、各種の季節調整パターンの中の“add”パターンが演算に選択されたことを示している。
【００５４】
次に、本実施の形態の動作手順について説明する。
〔１．時系列データテーブル作成・更新手順〕
【００５５】
本実施の形態においては、ローカルデータベース１４３の時系列データテーブル１４３ｂは、図表作成装置１の利用者の要求に基づき、データベースサーバ２（又はデータベースサーバ３）に蓄積されたデータ、又は利用者自身が入力したデータに基づいて作成・更新される。データの取得は、属性情報と数値データとに分けて行われる。
【００５６】
属性情報や数値データの取得・更新の際、利用者は、操作部１５の操作により、表示部１６にメニュー画面を表示する。図６に、ワークシート上に表示されたメニュー画面１６１のイメージ図を示す。
【００５７】
ワークシートのセルに関数が入力された状態で、利用者が操作部１５によりコードブック更新欄１６１ａをクリックすると、外部データ入力制御部４５は、当該関数の指定されたコードに基づいてデータベースサーバ２（又はデータベースサーバ３）に属性情報の送信要求を送る。データベースサーバ２（又はデータベースサーバ３）は、当該関数の指定されたコードに基づいて要求された属性情報テーブル２０ａ（図２の（ａ））を図表作成装置１に送信する。
【００５８】
ワークシートのセルに関数が入力された状態で、利用者が操作部１５により数値更新欄１６１ｂをクリックすると、外部データ入力制御部４５は、当該関数の指定されたコードに基づいて数値データの送信を要求する。データベースサーバ２（又はデータベースサーバ３）は、当該関数の指定されたコードに基づいて要求された数値データテーブル２０ｂ（図２の（ｂ））のうち、差分データを図表作成装置１に送信する。
【００５９】
図表作成装置１は、取得されたこれらのデータに基づき、ローカルデータベース１４３に時系列データテーブル１４３ａを作成し、また、既に作成されたテーブルのデータ更新（数値データは差分データ更新）を行う。
【００６０】
〔２．図表作成の具体的手順〕
図７Ａ、図７Ｂは、本実施の形態の図表作成装置１における図表作成の具体的手順を示すフローチャートである。以下同図に基づいて手順を説明する。なお、主要画面についても図面を用いて説明する。
【００６１】
〔２−１．属性取得関数に基づく図表作成手順〕
まず、表示部１６に表示されたワークシートＡのセルＣに属性取得関数が入力されると、関数処理部４１はこの関数を取得する（ステップＳ１）。図８に、ワークシートＡ１に時系列データ、及び時系列データの属性情報を取得する関数が入力された状態の模式図を示す。同図において、Ｃ２セルＣ００には、全国エアコン販売台数の時系列データを示すデータコード「IMJSLD0011」が入力されている。また、Ｃ４セルＣ０１には属性取得関数「ＩＮＤＢＺ（Ｃ＄２，“名称”）」と入力され、Ｃ５〜Ｃ８セルにも同様の属性取得関数が入力されている。例えばＣ４セルＣ０１の属性取得関数は「Ｃ２セルＣ００に入力されたデータコードを持つデータ（即ち全国エアコン販売台数の時系列データ）の名称」の取得を意味する。
【００６２】
関数処理部４１は、取得した関数の引数を取得して、引数中のコードが生データのコードであるか演算データのコードであるかを判別する（ステップＳ２）。Ｃ４セルＣ００に入力された属性取得関数は、第１引数中にアンダーラインが表示されていないので生データとして扱われる。（Ｃ５〜Ｃ８セルの関数も同様に扱われる。）
【００６３】
コードが生データである場合（ステップＳ２の「生データ」）、関数処理部４１は、データ処理部４３に、データキャッシング部１２１中のデータキャッシングテーブル１２１ａに当該関数が指定する値（即ち、図４中の行１２１ａ１）が存在するか否かを確認させる。値が存在する場合（ステップＳ３の“Ｙｅｓ”）、データ処理部４３は、データキャッシング部１２１から当該関数の指定する値を呼び出して関数処理部４１に渡し（ステップＳ４）、関数処理部４１は呼び出した値をセルＣに返す（ステップＳ７）。
【００６４】
データキャッシング部１２１に当該関数が指定する値が存在しない場合（ステップＳ３の“Ｎｏ”）、データ処理部４３は、引数中に指定されたコードの時系列データ全体をローカルデータベース１４３から取得する（ステップＳ５）。
【００６５】
データ処理部４３が、取得した値をデータキャッシング部１２１に格納する（ステップＳ６）。そののち、上記ステップＳ４、Ｓ７の処理が行われる。
【００６６】
一方、引数中のコードが演算データである場合を考える（ステップＳ２の「演算データ」）。例えば図８のＤ４セルＣ０３がこれに相当する。同セルには属性取得関数「ＩＮＤＢＺ（Ｄ＄２，“名称”）」が入力されており、Ｄ２セルＣ０２には全国エアコン販売台数の“add”パターンの季節調整値を示すデータコード「IMJSLD0011_add」が入力されている。（Ｄ５〜Ｄ８セルにも同様の属性取得関数が入力されている。）データ処理部４３は、演算データキャッシング処理部４４に、演算データキャッシング部１２２に当該関数が指定する値が存在するか否かを確認させる。演算データキャッシング部１２２に値が存在する場合（ステップＳ８の“Ｙｅｓ”）、ステップＳ４、Ｓ７の処理が行われる。
【００６７】
演算データキャッシング部１２２に値が存在しない場合（ステップＳ８の“Ｎｏ”）、データ処理部４３は、生データのコード部分がデータキャッシング部１２１に存在するか否かを確認する。存在する場合（ステップＳ９の“Ｙｅｓ”）、データ処理部４３は、データキャッシング部１２１から値（生データ）を読み込み（ステップＳ１０）、演算データキャッシング処理部４４は、この読み込まれた値（生データ）と関数中のデータコード中のパラメタ（即ち“IMJSLD0011”及び“_”及び“add”）とに基づいて新たな値（時系列データ）を加工・算出し（ステップＳ１１）、加工・算出した値を演算データキャッシング部１２２に格納し（ステップＳ１２）、ステップＳ４、Ｓ７の処理を行う。
【００６８】
一方、生データのコード部分がデータキャッシング部１２１に存在しない場合（ステップＳ９の“Ｎｏ”）、データ処理部４３は、引数中に指定されたコードの時系列データ全体をローカルデータベース１４３から取得し（ステップＳ１３）、取得した値をデータキャッシング部１２１に格納する（ステップＳ１４）。そののち、ステップＳ１０、Ｓ１１、Ｓ１２、Ｓ４、Ｓ７の処理が行われる。
【００６９】
ステップＳ７によって値がセルＣに返されると、セルＣには値が表示される。図９に、全国エアコン販売台数に関する表の完成版が表示されたワークシートのイメージ図を示す。この表は図８にて各セルに入力された関数の値で形成されたものである。図９に示す通り、ワークシートＡ１’において、Ｃ３セルＣ２１には全国エアコン販売台数の時系列データの名称「大型電気店商品別販売台数全国エアコン」が表示され、Ｄ４セルＣ２３には全国エアコン販売台数の“add”パターン季節調整値の時系列データの名称「大型電気店商品別販売台数全国エアコン_ＡＤＤ」が表示されている。また、ワークシートＡ１’（図９）の４〜８行目の他のセルにも、ワークシートＡ１（図８）の４〜８行目に入力された関数に基づく属性情報が表示される。
【００７０】
〔２−２．時点数値取得関数に基づく図表作成手順〕
時点数値取得関数の場合も、属性取得関数と同様の手順により処理される。以下、図７Ａ、図７Ｂ、図８、図９に基づいて手順を説明する。なお、上記の「属性取得関数に基づく作成手順」と手順内容が略同一となる部分は記載を省略する。
【００７１】
表示部１６に、図８に示すワークシートＡ１が表示された場合を考える。同ワークシートＡ１には、例えばＣ１０セルＣ０４に時点取得関数「ＩＮＤＢＳ（Ｃ＄２，＄Ｂ１０，Ｃ＄３，＄Ｂ＄９）」が入力されている。この関数は「Ｂ９セルに入力された期種（即ち暦年）の、Ｃ３セルに入力された値種別（即ち原数値）で、Ｂ１０セルに入力された期間（即ち2000年12月期）の、Ｃ２セルに入力された時系列データ（即ち全国エアコン販売台数）」の取得を命令するものである。Ｃ列〜Ｆ列の１０〜１５行目、１７〜２８行目、３０〜４５行目にも同様の時点取得関数が入力されている。
【００７２】
例えば、図８のＣ列に各セルに入力された関数中のコード（第１引数）はいずれも生データを示すコードである。関数処理部４１が、Ｃ列のセルに入力された関数を取得し生データのコードと判断すると（ステップＳ２の「生データ」）、データ処理部４３は、セルに入力された時点数値取得関数に基づいて、データキャッシング部１２１に当該関数が指定する値が存在するか否かを確認する。このとき、関数中の期種をあらわす引数（図８においては第４引数、カッコ内に列挙されたうち一番右側の引数）がキャッシュされたデータの期種と一致するか否かも確認する。
【００７３】
値がデータキャッシング部１２１に存在し、期種が一致する（例えばＣ３０セルＣ０６に入力された関数がこれに相当する。）場合、データ処理部４３によって値が呼び出され（ステップＳ４）、関数処理部４１は呼び出された値を値としてセルに返す（ステップＳ７）。
【００７４】
値を形成しうるデータがデータキャッシング部１２１に存在し、期種が一致しない場合（例えばＣ１０セルＣ０４やＣ１７セルＣ０５に入力された関数がこれに相当する。）、データ処理部４３はこの値を形成しうるデータをデータキャッシング部１２１から呼び出して加工・演算部４２に送り、加工・演算部４２は期種を一致させる演算を行い（例えば呼び出したデータの期種“月次”で関数の期種が“暦年”の場合、１月〜１２月までの“月次”のデータを加算する演算を行う。）、関数処理部４１は演算結果を値としてセルＣに返す。
【００７５】
データキャッシング部１２１に関数の示す値が存在しない場合（ステップＳ３の“Ｎｏ”）、データ処理部４３はローカルデータベース１４３から引数中に指定されたコードの時系列データ全体を取得する（ステップＳ５）。具体的には、図４に示す時系列データテーブル１４３ａ全体の値をローカルデータベース１４３から取得する。データ処理部４３は、取得した値をデータキャッシング部１２１に格納する（ステップＳ６）。その後上述したステップＳ４、Ｓ７の処理が行われる。
【００７６】
一方、例えば、図８のＤ列に各セルに入力された関数中のコード（第１引数）はいずれも演算データを示すコードである。関数処理部４１が、Ｄ列のセルに入力された関数を取得し演算データのコードと判断すると（ステップＳ２の「演算データ」）、データ処理部４３は、演算データキャッシング管理部４４に、演算データキャッシング部１２２に当該関数が指定する値が存在するか否かを確認させる。このとき、関数中の期種をあらわす引数（第４引数）がキャッシュされたデータの期種と一致するか否かも確認される。
【００７７】
値が演算データキャッシング部１２２に存在する場合（ステップＳ８）、期種が一致するときは（例えばＤ３０セルＣ０９に入力された関数がこれに相当する。）、演算データキャッシング処理部４４によって当該値が呼び出され（ステップＳ４）、関数処理部４１は呼び出された値をセルＣに返す（ステップＳ７）。期種が一致しないときは（例えばＤ１０セルＣ０７やＤ１７セルＣ０８に入力された関数がこれに相当する。）、データ処理部４３はこの値を形成しうるデータを演算データキャッシング部１２２から呼び出して加工・演算部４２に送り、加工・演算部４２は期種を一致させる演算を行い、関数処理部４１は演算結果を値としてセルＣに返す。
【００７８】
演算データキャッシング部１２２に関数の示す値が存在しない場合（ステップＳ８の“Ｎｏ”）、データ処理部４３は、生データのコード部分がデータキャッシング部１２１に存在するか否かを確認する。即ち、データキャッシング部１２１にデータキャッシングテーブル１２１ａ（図４）が存在するか否かを確認する。
【００７９】
値が存在する場合（ステップＳ９の“Ｙｅｓ”）、データ処理部４３は、データキャッシング部１２１から当該値（生データ）を読み込む（ステップＳ１０）。即ち、データキャッシング部１２１のデータキャッシングテーブル１２１ａ（図４）から必要な値を読み出す。読み出された値は演算データキャッシング処理部４４に渡され、演算データキャッシング処理部４４は、この読み込まれた値（生データ）と関数中のデータコード中のパラメタとに基づいて新たな値（時系列データ）を算出する（ステップＳ１１）。
【００８０】
具体的には、例えば、Ｄ３０セルＣ０９の命令に基づいて2004年4月の全国エアコン販売台数の季節調整値を算出する、等の演算処理が行われる。
【００８１】
演算データキャッシング処理部４４は算出された値を演算データキャッシング部１２２に格納する（ステップＳ１２）。これにより、演算データキャッシング部１２２には図５に示す演算データキャッシングテーブル１２２ａが形成される。こののち、ステップＳ４、Ｓ７の処理が行われる。
【００８２】
ステップＳ９において値が存在しない場合（ステップＳ９の“Ｎｏ”）、データ処理部４３は引数中に指定されたコードの時系列データ全体をローカルデータベース１４３から取得する（ステップＳ１３）。具体的には、図４に示すテーブル１４３ｂ全体の値をローカルデータベース１４３から取得する。取得されたデータはデータ処理部４３に渡され、データキャッシング部１２１に格納される（ステップＳ１４）。こののち、ステップＳ１０以降の手順（ステップＳ１０、Ｓ１１、Ｓ１２、・・・）が行われる。
【００８３】
ステップＳ７の手順により値がセルＣに返されると、図９に示す通り、セルＣには値が表示される。同図に示す通り、同ワークシートＡ１’の１０〜１５行目、１７〜２８行目、３０〜４５行目には、販売台数の原数値（無調整値）、原数値（季節調整値）、前年比（無調整）、前期比（季節調整値）の時系列データが、月次ベース、四半期ベース、年次ベースで示されている。例えば、Ｃ３０セルＣ２６には、ワークシートＡ１のＣ３０セルＣ０６に入力された関数の値として、2004年4月の全国エアコン販売台数の原数値（無調整値）である「102,933」が表示されている。同様に、Ｃ１０セルＣ２４にはワークシートＡ１のＣ１０セルＣ０４に入力された関数の値「2,418334」、Ｃ１７セルＣ２５にはワークシートＡ１のＣ１０セルＣ０４に入力された関数の値「245,547」が表示されている。Ｃ列〜Ｆ列の１０〜１５行目、１７〜２８行目、３０〜４５行目にも、上述の処理の結果として、同様の値が表示されている。
【００８４】
〔２−３．数値計算関数に基づく図表作成手順〕
数値計算関数による場合、時点数値取得関数と同様の手順により処理が行われる。即ち、ワークシートＡのセルＣに数値計算関数が入力されると、上記ステップＳ１〜Ｓ１４の手順による処理が行われ、値がセルＣに返されると、セルＣにはこの値が表示される（なお、同関数の場合における図示は省略する）。
【００８５】
以上示した通り、本実施の形態の図表作成装置１は、各種のデータをキャッシュするデータキャッシング部１２１をメインメモリ１２上に形成し、ワークシートＡ上のセルＣに入力された命令データに基づいてデータを取得する際に、取得を求められた指定データがデータキャッシング部１２１に存在する場合、データ処理部４３は、データキャッシング部１２１の指定データを優先して取得する。これにより、ローカルデータベース１４３へのデータベースアクセスの回数やローカルデータベース１４３とのデータ送受信に要するＣＰＵ１１のコストが減少し、レスポンスタイムが短くなる。
【００８６】
本実施の形態の図表作成装置１においては、データ処理部４３は、ローカルデータベース１４３から指定データを取得する際、指定データと共に、ローカルデータベース１４３に蓄積されたデータのうち所定の情報を含む指定データの同一系列データを取得して指定データと共にデータキャッシング部１２１に格納する。これにより、ローカルデータベース１４３から取得を求められたデータと同一系列のデータを取得する際に、当該データをデータキャッシング部１２１から取得することが可能になる。そして、当該同一系列のデータの取得に要するローカルデータベース１４３へのデータベースアクセスの回数やＣＰＵ１１のコストが減少し、レスポンスタイムが短くなる。
【００８７】
本実施の形態の図表作成装置１においては、加工・演算部４２がローカルデータベース１４３から取得したデータに所定の演算処理を行って演算データを算出し、データ処理部４３は、算出した演算データをメインメモリ１２上に形成した演算データキャッシング部１２２にキャッシュすると共に、演算データキャッシング部１２２にキャッシュされた演算データを優先して取得する。これにより、ローカルデータベース１４３から取得された後に所定の演算処理を施してセルＣに返す必要のあるデータについて、演算処理に要するＣＰＵ１１のコストや処理時間を削減することができる。そして、ワークシートＡのセルＣに、演算による算出を要する数値データを取得する関数が入力されたときのレスポンスタイムが短くなる。
【００８８】
本実施の形態の図表作成装置１においては、指定データが演算データであって演算データキャッシング部１２２に存在せず、かつ指定データを形成しうるデータがデータキャッシング部１２１に存在する場合、データ入出力処理部４３は、データキャッシング部１２１の当該データを優先して取得する。これにより、演算データを形成する際のローカルデータベース１４３へのデータベースアクセスの回数やローカルデータベース１４３とのデータ送受信に要するＣＰＵ１１のコストが減少する。そして、ワークシートＡのセルＣに、演算により算出される数値データを取得する命令データが入力されたときのレスポンスタイムが短くなる。
【００８９】
本実施の形態の図表作成装置１においては、命令データを表計算ソフト（表計算部１４１ａ）上で動作可能とすることにより、アドイン部１４２ａの機能と表計算部１４１ａの通常の機能とを支障なく併用することができる。また、命令データの書式をワークシートＡのセルＣに入力される通常の命令データと同様に「関数」の書式とすることで、セルＣに命令を入力する利用者に違和感なく命令データを入力させることができる。さらに、図や表の作成を関数に基づいて行うことにより、引数を変化させることで作成される図や表の態様を容易に変化させることが可能となる。
【００９０】
本実施の形態の図表作成装置１においては、関数は、時系列データを形成する数値データ又は時系列データの属性情報を値としてセルＣに返すことにより、経済情報や統計情報等における図表作成にアドイン部１４２ａの機能を適用することを可能とする。
【００９１】
本実施の形態の図表作成装置１は、大量のデータを用いた図表作成において特に顕著な作用効果を奏する。
【００９２】
例えば、５０年分の月次データを３系列出力し作表する場合を考える。本実施の形態においては、引数中のコードが生データの場合（ステップＳ２の「生データ」）、ローカルデータベース１４３へのデータベースアクセス（ステップＳ５）及びデータキャッシング部１２１へのデータキャッシング（ステップＳ６）は、それぞれ系列数分の３回ずつで済む。一方、従来方式によれば、データベースアクセスは５０（年）×１２（月）×３（系列）＝１８００回必要となるため、データベースアクセスやデータ交信の回数が多くなる。即ち、本実施の形態においては、データベースアクセスやデータ交信に要する時間を短縮し、迅速なレスポンスを実現できる。
【００９３】
また、同事例において、引数中のコードが演算データの場合（ステップＳ２の「演算データ」）、データベースアクセス（ステップＳ１３）、データキャッシング（ステップＳ１４）、新たな時系列データの算出（例えば季節調整値の算出、ステップＳ１１）、算出した値の演算データキャッシング部１２２へのデータキャッシング（ステップＳ１２）は、それぞれ系列数分の３回ずつで済む。一方、従来方式によれば、データキャッシング及び新たな時系列データの算出にそれぞれ５０×１２×３＝１８００回必要となり、データベースアクセスや時系列データの算出の回数が多くなる。特に、上述の季節調整値の算出などは膨大なＣＰＵコストを要し、処理時間が長大化する（例えば上記例の場合だと、市販のパーソナルコンピュータのＣＰＵレベルで、１つの値の算出に１〜２秒程度）ことが多い。それゆえ、本実施の形態においては、データベースアクセスやデータ交信に要する時間を大幅に短縮し、より迅速なレスポンスを実現できる。
【００９４】
なお、上記実施の形態においては、「属性取得関数」、「数値計算関数」、「時点数値取得関数」の３つについて説明したが、図表作成装置１において、他の関数を適用することもできる。
【００９５】
また、上記実施の形態の図表作成装置１においては、データキャッシング部１２１、演算データキャッシング部１２２はメインメモリ１２に形成したが、キャッシュメモリ等、他の記憶手段上に形成することも可能である。
【００９６】
また、上記実施の形態の図表作成装置１においては、アドイン部１４２ａの機能はアドインソフト１４２の実行結果によって実現するものとしたが、同機能をハードウェアロジックによって実現することもできる。
【００９７】
上記実施の形態は例示であり、本発明が上記実施の形態に限定されることを意味するものではないことは、いうまでもない。
【図面の簡単な説明】
【００９８】
【図１】本実施の形態の図表作成システムの構成を示す図である。
【図２】属性情報テーブル、及び数値データテーブルのイメージ図である。
【図３】本実施の形態の図表作成装置の機能ブロック図である。
【図４】同上図表作成装置における、時系列データテーブル（データキャッシングテーブル）のイメージ図である。
【図５】同上図表作成装置における、演算データキャッシングテーブルのイメージ図である。
【図６】ワークシート上に表示されたメニュー画面のイメージ図である。
【図７Ａ】同上図表作成装置における図表作成の具体的手順を示すフローチャートである。
【図７Ｂ】同上図表作成装置における図表作成の具体的手順を示すフローチャートである。
【図８】時系列データを取得する関数が入力されたワークシートのイメージ図である。
【図９】表の完成版が表示されたワークシートのイメージ図である。
【符号の説明】
【００９９】
１・・・図表作成装置
２０・・・第一広域データベース
３０・・・第二広域データベース
４１・・・関数処理部
４２・・・加工・演算部
４３・・・データ処理部
１２１・・・データキャッシング部
１２２・・・演算データキャッシング部
１４１・・・表計算ソフト
１４１ａ・・・表計算部
１４３・・・ローカルデータベース
Ａ、Ａ１、Ａ１’・・・ワークシート
Ｃ、Ｃ００〜Ｃ０９、Ｃ２１、Ｃ２３〜Ｃ２６・・・セル
【図１】
2007188235.tif 000003
【図２】
2007188235.tif 000004
【図３】
2007188235.tif 000005
【図４】
2007188235.tif 000006
【図５】
2007188235.tif 000007
【図７Ａ】
2007188235.tif 000008
【図７Ｂ】
2007188235.tif 000009
【図６】
2007188235.tif 000010
【図８】
2007188235.tif 000011
【図９】
2007188235.tif 000012