(57)【特許請求の範囲】
【請求項１】
表形式のデータベースに格納されている各レコードのそれぞれのフィールドのデータを、前記データベースのテーブルの各フィールドに対応するスプレッドシート上のデータ表におけるデータ項目に属するセルに書き込むためのマッピング装置であって、
同一のデータ項目に属する各データがそれぞれ書き込まれる複数のセルを含んでなるセル範囲を、複数配置して構成される前記データ表のセルのおのおのについて、前記データ項目毎にインデクスを付与する第１のインデクス手段と、
前記データベースのテーブルに格納されている各レコードをコピーした後、前記コピーされた各レコードを、各レコードのデータおのおのに、引数指定がされているマッピング定義に従ってペーストする場合には下記（１）にしたがって、前記引数指定がされていないマッピング定義に従ってペーストする場合には下記（２）にしたがって、インデクスを付与する第２のインデクス手段であって、（１）前記マッピング定義の引数において、前記データ表のセルの値を参照することが指定されているフィールドの場合、前記第1のインデクス手段で付与されたインデクスと同じインデクス番号を付与され、前記マッピング定義の引数が、固定値または指定された値であるフィールドのデータ及び引数の指定がされていないフィールドのデータは、同じレコードの前記データ表のセルの値を参照することが指定されているフィールドと同じインデクス番号を付与し、（２）前記マッピング定義の引数の指定がない場合、前記データベースのテーブルから取得したレコードを取得した順番に各フィールドにインデクスを付与する、第２のインデクス手段と、
前記データベースのテーブルに格納されている各レコードのそれぞれのデータを、定義されたマッピング定義によって決定されている前記テーブルのフィールドと前記データ表の各データ項目との対応関係に基づき、前記データ表における対応するデータ項目が有するセルのうち、当該レコードと同一のインデクスを付与されたセルに書き込むことによって、前記データ表を作成するデータ作成手段と、
を備えるマッピング装置。
【請求項２】
前記データ表のレイアウトに基づいて、前記データベースのテーブルの構成を定義するメタ定義データを作成するメタ定義データ作成手段、をさらに備えた請求項１に記載のマッピング装置。
【請求項３】
前記データ作成手段によって決定された順序にしたがって、データ項目毎に、レコードからセルへのデータの書き込みを行うデータ書込手段、をさらに備えた請求項１に記載のマッピング装置。
【請求項４】
最初にデータの書き込みを行うと決定されたデータ項目に属するセルに対して、前記データ書込手段によって書き込まれたデータは、次にデータの書き込みを行うと決定されたデータ項目に属するセルに対して、前記データ書込手段によって書き込まれるデータのための引数となる、請求項３に記載のマッピング装置。
【請求項５】
前記データ表が、複数のデータ項目に属するデータが書き込まれたセルを有する場合、前記データ表を、マトリクス型であると判定するタイプ判定手段をさらに備え、
前記タイプ判定手段は、
（Ａ）前記複数のセル範囲が、以下に示す（１）乃至（３）のうちの何れに属するのか否かを判定し、
（１）セルが複数配置されており、これら複数のセルが左右方向×上下方向からなる２次元状に配置されており、前記左右方向に配置されているセルの数が、前記上下方向に配置されているセルの数よりも多い場合、
（２）セルが複数配置されており、これら複数のセルが前記２次元状に配置されており、前記上下方向に配置されているセルの数が、前記左右方向に配置されているセルの数よりも多い場合、
（３）セルが複数配置されており、これら複数のセルが前記２次元状に配置されており、前記上下方向に配置されているセルの数と、前記左右方向に配置されているセルの数とが等しい場合、
（Ｂ）前記１または複数のセル範囲のうち、最も多くのセルが配置されているセル範囲を判定し、
（Ｃ）前記（Ｂ）において、最も多くのセルが配置されていると判定されたセル範囲以外のセル範囲のうち、前記（１）の場合に属するセル範囲のうち、最も少ないセルが配置されているセル範囲を判定し、
（Ｄ）前記（Ｂ）において、最も多くのセルが配置されていると判定されたセル範囲以外のセル範囲のうち、前記（２）の場合に属するセル範囲のうち、最も少ないセルが配置されているセル範囲を判定し、
（Ｅ）前記（Ｃ）において判定されたセル範囲に配置されているセルの数と、前記（Ｄ）において判定されたセル範囲に配置されているセルの数との積が、前記（Ｂ）において判定されたセル範囲に配置されているセルの数に等しく、前記（Ｃ）において判定されたセル範囲に配置されているセルの数と、前記（Ｂ）において判定されたセル範囲において前記左右方向に配置されているセルの数とが等しく、前記（Ｄ）において判定されたセル範囲に配置されているセルの数と、前記（Ｂ）において判定されたセル範囲において前記上下方向に配置されているセルの数とが等しい場合、前記データ表のタイプが前記マトリクス型であると判定し、それ以外の場合、テーブル型であると判定する、請求項１乃至４のうち何れか１項に記載のマッピング装置。
【請求項６】
前記第１のインデクス手段は、複数のセル範囲のおのおのについて、最上行の左端のセルへインデクスとして０を付与し、当該セルと同一行における右方向のセルに対して、当該左端のセルからのセル移動量に応じて１ずつインクリメントされるインデクスを付与し、当該行のすべてのセルへのインデクスの付与が完了すると、次の行の左端のセルに対し、前の行において最後に付与されたインデクスから１つインクリメントされたインデクスを付与し、当該セルと同一行における右方向のセルに対して、当該セルからの移動量に応じて１ずつインクリメントされるインデクスを付与するという規則にしたがって、前記データ表のセルのおのおのについて、前記データ項目毎にインデクスを付与する、請求項１乃至５のうち何れか１項に記載のマッピング装置。
【請求項７】
前記データ表に含まれている複数のセル範囲を定義するためのセル範囲定義手段であって、前記データ表において、複数のセル範囲を含む領域がユーザによって指定されると、この指定された領域を、行単位または列単位で分割することによって、前記複数のセル範囲から、各セル範囲を定義するようにしたセル範囲定義手段、をさらに備える請求項１乃至６のうち何れか１項に記載のマッピング装置。
【請求項８】
表形式のデータベースに格納されている各レコードのそれぞれのフィールドのデータを、前記データベースのテーブルの各フィールドに対応するスプレッドシート上のデータ表におけるデータ項目に属するセルに書き込むためのマッピング方法であって、
同一のデータ項目に属する各データがそれぞれ書き込まれる複数のセルを含んでなるセル範囲を、複数配置して構成される前記データ表のセルのおのおのについて、前記データ項目毎にインデクスを付与する工程と、
前記データベースのテーブルに格納されている各レコードをコピーした後、前記コピーされた各レコードを、各レコードのデータおのおのに、引数指定がされているマッピング定義に従ってペーストする場合には下記（１）にしたがって、前記引数指定がされていないマッピング定義に従ってペーストする場合には下記（２）にしたがって、インデクスを付与することであって、（１）前記マッピング定義の引数において、前記データ表のセルの値を参照することが指定されているフィールドの場合、前記付与されたインデクスと同じインデクス番号を付与され、前記マッピング定義の引数が、固定値または指定された値であるフィールドのデータ及び引数の指定がされていないフィールドのデータは、同じレコードの前記データ表のセルの値を参照することが指定されているフィールドと同じインデクス番号を付与し、（２）前記マッピング定義の引数の指定がない場合、前記データベースのテーブルから取得したレコードを取得した順番に各フィールドにインデクスを付与する工程と、
前記データベースのテーブルに格納されている各レコードのそれぞれのデータを、定義されたマッピング定義によって決定されている前記テーブルのフィールドと前記データ表の各データ項目との対応関係に基づき、前記データ表における対応するデータ項目が有するセルのうち、当該レコードと同一のインデクスを付与されたセルに書き込むことによって、前記データ表を作成する工程と、
を備えるマッピング方法。
【請求項９】
前記データ表のレイアウトに基づいて、前記データベースのテーブルの構成を定義するメタ定義データを作成する工程をさらに備えた、請求項８に記載のマッピング方法。
【請求項１０】
前記データ表を作成する工程において決定された順序にしたがって、データ項目毎に、レコードからセルへのデータの書き込みを行う工程、をさらに備えた請求項８に記載のマッピング方法。
【請求項１１】
最初にデータの書き込みを行うと決定されたデータ項目に属するセルに対して、前記書き込みを行う工程において書き込まれたデータは、次にデータの書き込みを行うと決定されたデータ項目に属するセルに対して、前記書き込みを行う工程において書き込まれるデータのための引数となる、請求項１０に記載のマッピング方法。
【請求項１２】
前記データ表が、複数のデータ項目に属するデータが書き込まれたセルを有する場合、前記データ表を、マトリクス型であると判定することをさらに備え、
前記判定することは、
（Ａ）前記複数のセル範囲が、以下に示す（１）乃至（３）のうちの何れに属するのか否かを判定し、
（１）セルが複数配置されており、これら複数のセルが左右方向×上下方向からなる２次元状に配置されており、前記左右方向に配置されているセルの数が、前記上下方向に配置されているセルの数よりも多い場合、
（２）セルが複数配置されており、これら複数のセルが前記２次元状に配置されており、前記上下方向に配置されているセルの数が、前記左右方向に配置されているセルの数よりも多い場合、
（３）セルが複数配置されており、これら複数のセルが前記２次元状に配置されており、前記上下方向に配置されているセルの数と、前記左右方向に配置されているセルの数とが等しい場合、
（Ｂ）前記１または複数のセル範囲のうち、最も多くのセルが配置されているセル範囲を判定し、
（Ｃ）前記（Ｂ）において、最も多くのセルが配置されていると判定されたセル範囲以外のセル範囲のうち、前記（１）の場合に属するセル範囲のうち、最も少ないセルが配置されているセル範囲を判定し、
（Ｄ）前記（Ｂ）において、最も多くのセルが配置されていると判定されたセル範囲以外のセル範囲のうち、前記（２）の場合に属するセル範囲のうち、最も少ないセルが配置されているセル範囲を判定し、
（Ｅ）前記（Ｃ）において判定されたセル範囲に配置されているセルの数と、前記（Ｄ）において判定されたセル範囲に配置されているセルの数との積が、前記（Ｂ）において判定されたセル範囲に配置されているセルの数に等しく、前記（Ｃ）において判定されたセル範囲に配置されているセルの数と、前記（Ｂ）において判定されたセル範囲において前記左右方向に配置されているセルの数とが等しく、前記（Ｄ）において判定されたセル範囲に配置されているセルの数と、前記（Ｂ）において判定されたセル範囲において前記上下方向に配置されているセルの数とが等しい場合、前記データ表のタイプが前記マトリクス型であると判定し、それ以外の場合、テーブル型であると判定する、請求項８乃至１１のうち何れか１項に記載のマッピング方法。
【請求項１３】
前記データ表のセルのおのおのについて、前記データ項目毎にインデクスを付与することは、複数のセル範囲のおのおのについて、最上行の左端のセルへインデクスとして０を付与し、当該セルと同一行における右方向のセルに対して、当該左端のセルからのセル移動量に応じて１ずつインクリメントされるインデクスを付与し、当該行のすべてのセルへのインデクスの付与が完了すると、次の行の左端のセルに対し、前の行において最後に付与されたインデクスから１つインクリメントされたインデクスを付与し、当該セルと同一行における右方向のセルに対して、当該セルからの移動量に応じて１ずつインクリメントされるインデクスを付与するという規則にしたがって、前記データ表のセルのおのおのについて、前記データ項目毎にインデクスを付与する、請求項８乃至１２のうち何れか１項に記載のマッピング方法。
【請求項１４】
前記データ表に含まれている複数のセル範囲を定義することであって、前記データ表において、複数のセル範囲を含む領域がユーザによって指定されると、この指定された領域を、行単位または列単位で分割することによって、前記複数のセル範囲から、各セル範囲を定義すること、をさらに備える請求項８乃至１３のうち何れか１項に記載のマッピング方法。
【請求項１５】
表形式のデータベースに格納されている各レコードのそれぞれのフィールドのデータを、前記データベースのテーブルの各フィールドに対応するスプレッドシート上のデータ表におけるデータ項目に属するセルに書き込むためのプログラムを記録したコンピュータ読取可能な記録媒体であって、コンピュータに、
同一のデータ項目に属する各データがそれぞれ書き込まれる複数のセルを含んでなるセル範囲を、複数配置して構成される前記データ表のセルのおのおのについて、前記データ項目毎にインデクスを付与する機能と、
前記データベースのテーブルに格納されている各レコードをコピーした後、前記コピーされた各レコードを、各レコードのデータおのおのに、引数指定がされているマッピング定義に従ってペーストする場合には下記（１）にしたがって、前記引数指定がされていないマッピング定義に従ってペーストする場合には下記（２）にしたがって、インデクスを付与する機能であって、（１）前記マッピング定義の引数において、前記データ表のセルの値を参照することが指定されているフィールドの場合、前記付与されたインデクスと同じインデクス番号を付与され、前記マッピング定義の引数が、固定値または指定された値であるフィールドのデータ及び引数の指定がされていないフィールドのデータは、同じレコードの前記データ表のセルの値を参照することが指定されているフィールドと同じインデクス番号を付与し、（２）前記マッピング定義の引数の指定がない場合、前記データベースのテーブルから取得したレコードを取得した順番に各フィールドにインデクスを付与する機能と、
前記データベースのテーブルに格納されている各レコードのそれぞれのデータを、定義されたマッピング定義によって決定されている前記テーブルのフィールドと前記データ表の各データ項目との対応関係に基づき、前記データ表における対応するデータ項目が有するセルのうち、当該レコードと同一のインデクスを付与されたセルに書き込むことによって、前記データ表を作成する機能と
を実現させるためのプログラムを記録したコンピュータ読取可能な記録媒体。
【請求項１６】
表形式のデータベースに格納されている各レコードのそれぞれのフィールドのデータを、前記データベースのテーブルの各フィールドに対応するスプレッドシート上のデータ表におけるデータ項目に属するセルに書き込むためのプログラムであって、コンピュータに、
同一のデータ項目に属する各データがそれぞれ書き込まれる複数のセルを含んでなるセル範囲を、複数配置して構成される前記データ表のセルのおのおのについて、前記データ項目毎にインデクスを付与する機能と、
前記データベースのテーブルに格納されている各レコードをコピーした後、前記コピーされた各レコードを、各レコードのデータおのおのに、引数指定がされているマッピング定義に従ってペーストする場合には下記（１）にしたがって、前記引数指定がされていないマッピング定義に従ってペーストする場合には下記（２）にしたがって、インデクスを付与する機能であって、（１）前記マッピング定義の引数において、前記データ表のセルの値を参照することが指定されているフィールドの場合、前記付与されたインデクスと同じインデクス番号を付与され、前記マッピング定義の引数が、固定値または指定された値であるフィールドのデータ及び引数の指定がされていないフィールドのデータは、同じレコードの前記データ表のセルの値を参照することが指定されているフィールドと同じインデクス番号を付与し、（２）前記マッピング定義の引数の指定がない場合、前記データベースのテーブルから取得したレコードを取得した順番に各フィールドにインデクスを付与する機能と、
前記データベースのテーブルに格納されている各レコードのそれぞれのデータを、定義されたマッピング定義によって決定されている前記テーブルのフィールドと前記データ表の各データ項目との対応関係に基づき、前記データ表における対応するデータ項目が有するセルのうち、当該レコードと同一のインデクスを付与されたセルに書き込むことによって、前記データ表を作成する機能と
を実現させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば表計算ソフトにおけるスプレッドシート内のセルと、例えばリレーショナルな表形式のデータベースのレコードとの紐付けを行う、いわゆるマッピングのための装置、方法、プログラム、および記録媒体に関する。
【背景技術】
【０００２】
従来、例えば表計算ソフトにおけるスプレッドシート上に入力されたデータを、データベースに集めることや、データベースに集めたデータをスプレッドシート上にレポーティングすることを目的として、マッピングが広く行われている。
【０００３】
ユーザは、表計算ソフトを用いて、スプレッドシート上に、データ表を作成することができる。
【０００４】
この場合、データ表から、表形式のデータベースへのマッピング（以下、このようなマッピングを「アウトマッピング」と称する）のために、データベースの構造を意識してデータ表のレイアウトを決定する必要がある。
【０００５】
一方、データベースからデータ表へのマッピングもある。このようなマッピングは、「アウトマッピング」に対して「インマッピング」と呼ばれる。
【０００６】
これらアウトマッピングよびインマッピングともに、専用のパッケージソフトウェアを用いてなされている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０００−４８０４２号公報
【特許文献２】特開２００９−２２３６４４号公報
【特許文献３】特開２００５−２５１１３６号公報
【特許文献４】特開２００５−３８４０４号公報
【特許文献５】特開２００４−２５９０７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、このような従来のマッピングの場合、以下のような問題がある。
【０００９】
前述したように、アウトマッピングの場合、データ表から、表形式のデータベースへのマッピングのために、ユーザは、データベースの構造を意識してデータ表のレイアウトを決定する必要がある。
【００１０】
しかしながら、情報処理技術に詳しくないユーザにとっては、表計算ソフトを用いてデータ表のレイアウトを作成する場合、このようにデータベースの構造をも意識して適切に行うことは容易ではない。
【００１１】
例えば、ユーザは、データベースへの適切なマッピングを可能とするデータ表のレイアウトを決定する際に、マッピングを行うためのマッピングプログラムのルールや、データベースの形式を事前に把握してレイアウトを決定する必要がある。
【００１２】
このようなことは、情報技術に明るくない一般ユーザにとっては酷なことである。
【００１３】
一方、インマッピングの場合、例えば、データ表内の各セルが、複数のデータ項目の組み合わせによって定義されている場合、ユーザは、インマッピングによって実行されるデータベースのレコードからデータ表のセルへ向けてなされるマッピングの順序を設定する必要がある。
【００１４】
この設定もまた複雑であり、情報技術に明るくない一般ユーザにとっては同様に酷なことである。
【００１６】
本発明はこのような事情に鑑みてなされたものであり、その目的は、ユーザが表計算ソフトを用いて作成したデータ表内の各セルに対して、データ表のレイアウトを判定し、データベースから適切なデータを自動的に書き込むようにすることによって、ユーザの負担の軽減を図ることが可能なインマッピングのための装置、方法、プログラム、および記録媒体を提供することにある。
【課題を解決するための手段】
【００１７】
上記の目的を達成するために、本発明では、以下のような手段を講じる。
【００２０】
すなわち、請求項１の発明は、表形式のデータベースに格納されている各レコードのそれぞれのフィールドのデータを、データベースのテーブルの各フィールドに対応するスプレッドシート上のデータ表におけるデータ項目に属するセルに書き込むためのマッピング装置であって、第１のインデクス手段と、第２のインデクス手段と、データ作成手段とを備える。第１のインデクス手段は、同一のデータ項目に属する各データがそれぞれ書き込まれる複数のセルを含んでなるセル範囲を、複数配置して構成されるデータ表のセルのおのおのについて、データ項目毎にインデクスを付与する。第２のインデクス手段は、データベースのテーブルに格納されている各レコードをコピーした後、コピーされた各レコードを、各レコードのデータおのおのに、引数指定がされているマッピング定義に従ってペーストする場合には下記（１）にしたがって、引数指定がされていないマッピング定義に従ってペーストする場合には下記（２）にしたがって、インデクスを付与する。（１）マッピング定義の引数において、データ表のセルの値を参照することが指定されているフィールドの場合、第1のインデクス手段で付与されたインデクスと同じインデクス番号を付与され、マッピング定義の引数が、固定値または指定された値であるフィールドのデータ及び引数の指定がされていないフィールドのデータは、同じレコードのデータ表のセルの値を参照することが指定されているフィールドと同じインデクス番号を付与する。（２）マッピング定義の引数の指定がない場合、データベースのテーブルから取得したレコードを取得した順番に各フィールドにインデクスを付与する。
【００２１】
データ作成手段は、データベースのテーブルに格納されている各レコードのそれぞれのデータを、定義されたマッピング定義によって決定されているテーブルのフィールドとデータ表の各データ項目との対応関係に基づき、データ表における対応するデータ項目が有するセルのうち、当該レコードと同一のインデクスを付与されたセルに書き込むことによって、データ表を作成する。
【００２２】
請求項８は、請求項１に対応する方法であり、請求項１５は、同記録媒体であり、請求項１６は、同プログラムである。
【００２３】
請求項２の発明は、請求項１に記載のマッピング装置においてさらに、データ表のレイアウトに基づいて、データベースのテーブルの構成を定義するメタ定義データを作成するメタ定義データ作成手段を備えている。
【００２４】
請求項９は、請求項２に対応する方法である。
【００２５】
請求項３の発明は、請求項１に記載のマッピング装置において、データ作成手段によって決定された順序にしたがって、データ項目毎に、レコードからセルへのデータの書き込みを行うデータ書込手段をさらに備える。
【００２６】
請求項１０は、請求項３に対応する方法である。
【００２７】
請求項４の発明は、請求項３に記載のマッピング装置において、最初にデータの書き込みを行うと決定されたデータ項目に属するセルに対して、データ書込手段によって書き込まれたデータは、次にデータの書き込みを行うと決定されたデータ項目に属するセルに対して、データ書込手段によって書き込まれるデータのための引数となる。
【００２８】
請求項１１は、請求項４に対応する方法である。
【００２９】
請求項５の発明は、請求項１乃至４のうち何れか１項に記載のマッピング装置に対してさらに、データ表が、複数のデータ項目に属するデータが書き込まれたセルを有する場合、データ表を、マトリクス型であると判定するタイプ判定手段を備える。そして、タイプ判定手段は、
（Ａ）複数のセル範囲が、以下に示す（１）乃至（３）のうちの何れに属するのか否かを判定し、
（１）セルが複数配置されており、これら複数のセルが左右方向×上下方向からなる２次元状に配置されており、左右方向に配置されているセルの数が、上下方向に配置されているセルの数よりも多い場合、
（２）セルが複数配置されており、これら複数のセルが２次元状に配置されており、上下方向に配置されているセルの数が、左右方向に配置されているセルの数よりも多い場合、
（３）セルが複数配置されており、これら複数のセルが２次元状に配置されており、上下方向に配置されているセルの数と、左右方向に配置されているセルの数とが等しい場合、
（Ｂ）１または複数のセル範囲のうち、最も多くのセルが配置されているセル範囲を判定し、
（Ｃ）（Ｂ）において、最も多くのセルが配置されていると判定されたセル範囲以外のセル範囲のうち、（１）の場合に属するセル範囲のうち、最も少ないセルが配置されているセル範囲を判定し、
（Ｄ）（Ｂ）において、最も多くのセルが配置されていると判定されたセル範囲以外のセル範囲のうち、（２）の場合に属するセル範囲のうち、最も少ないセルが配置されているセル範囲を判定し、
（Ｅ）（Ｃ）において判定されたセル範囲に配置されているセルの数と、（Ｄ）において判定されたセル範囲に配置されているセルの数との積が、（Ｂ）において判定されたセル範囲に配置されているセルの数に等しく、（Ｃ）において判定されたセル範囲に配置されているセルの数と、（Ｂ）において判定されたセル範囲において左右方向に配置されているセルの数とが等しく、（Ｄ）において判定されたセル範囲に配置されているセルの数と、（Ｂ）において判定されたセル範囲において上下方向に配置されているセルの数とが等しい場合、データ表のタイプがマトリクス型であると判定し、それ以外の場合、テーブル型であると判定する。
【００３０】
請求項１２は、請求項５に対応する方法である。
【００３１】
請求項６の発明は、請求項１乃至５のうち何れか１項に記載のマッピング装置において、第１のインデクス手段は、複数のセル範囲のおのおのについて、最上行の左端のセルへインデクスとして０を付与し、当該セルと同一行における右方向のセルに対して、当該左端のセルからのセル移動量に応じて１ずつインクリメントされるインデクスを付与し、当該行のすべてのセルへのインデクスの付与が完了すると、次の行の左端のセルに対し、前の行において最後に付与されたインデクスから１つインクリメントされたインデクスを付与し、当該セルと同一行における右方向のセルに対して、当該セルからの移動量に応じて１ずつインクリメントされるインデクスを付与するという規則にしたがって、データ表のセルのおのおのについて、データ項目毎にインデクスを付与する。
【００３２】
請求項１３は、請求項６に対応する方法である。
【００３３】
請求項７の発明は、請求項１乃至６のうち何れか１項に記載のマッピング装置においてさらに、データ表に含まれている複数のセル範囲を定義するためのセル範囲定義手段であって、データ表において、複数のセル範囲を含む領域がユーザによって指定されると、この指定された領域を、行単位または列単位で分割することによって、複数のセル範囲から、各セル範囲を定義するようにしたセル範囲定義手段を備える。
【００３４】
請求項１４は、請求項７に対応する方法である。
【発明の効果】
【００３５】
本発明によれば、ユーザが表計算ソフトを用いて作成したデータ表のレイアウトに基づいて、データベースに書き込むための適切な構成のレコードを自動的に作成することによって、ユーザの負担の軽減を図ることが可能となる。
【００３６】
また、ユーザが表計算ソフトを用いて作成したデータ表内の各セルに対して、データベースから適切なデータを自動的に書き込むようにすることによって、ユーザの負担の軽減を図ることが可能となる。
【図面の簡単な説明】
【００３７】
【図１】リレーショナルデータベースにおけるテーブルの例を示す図である。
【図２】図１における２つのテーブルが結合されることにより作成される１つのテーブルの例を示す図である。
【図３】住所録テーブルの一例を示す図である。
【図４】図１に示されるテーブルを用いてプライマリキー（ＰＫ）を説明した図である。
【図５】タイプＩのアウトマッピングを説明するための図である。
【図６】タイプＩＩのアウトマッピングを説明するための図である。
【図７】タイプＩＩＩのインマッピングを説明するための図である。
【図８】タイプＩＶのインマッピングを説明するための図である。
【図９】タイプＶのインマッピングを説明するための図である。
【図１０】タイプＩＶのインマッピングを説明するための図である。
【図１１】本願の実施形態に係るマッピング方法が適用されたマッピング装置の構成例を示すブロック図である。
【図１２】マッピング定義の作成を説明するための図である。
【図１３】列分割機能を用いたマッピング定義の作成を説明するための図である。
【図１４】メタ定義データの作成を説明するための図である。
【図１５】アウトマッピング設定を説明するための図である（グループが１つの場合）。
【図１６】アウトマッピング設定を説明するための図である（グループが２つの場合）。
【図１７】インマッピング設定を説明するための図である。
【図１８】データ表の型式を判定するための判定フロー図である。
【図１９】図１８の判定フローに適用されるための一例であるデータ表と、そのマッピング定義を示す図である（テーブル型のデータ表の場合）。
【図２０】図１８の判定フローに適用されるための一例であるデータ表と、そのマッピング定義を示す図である（マトリクス型のデータ表の場合）。
【図２１】アウトマッピング処理によってインデクスが付与されたデータ表とデータベースとの一例を示す図である（テーブル型のシンプルなデータ表の場合）。
【図２２】アウトマッピング処理によってインデクスが付与されたデータ表とデータベースとの一例を示す図である（テーブル型の複雑なデータ表の場合）。
【図２３】アウトマッピング処理によってインデクスが付与されたデータ表とデータベースとの一例を示す図である（マトリクス型のシンプルなデータ表の場合）。
【図２４】アウトマッピング処理によってインデクスが付与されたデータ表とデータベースとの一例を示す図である（マトリクス型の複雑なデータ表の場合）。
【図２５】図２３および図２４のようなマトリクス型のデータ表に対応するデータベースに対してインデクスを付与する処理の一例を示すフローチャートである。
【図２６】図２５に示すフローチャートを用いてインデクスを付与するために行う処理の具体例を示す図である。
【図２７】インマッピング処理によってインデクスが付与されたデータベースとデータ表との一例を示す図である（テーブル型のシンプルなデータ表の場合）。
【図２８】インマッピング処理によってインデクスが付与されたデータベースとデータ表との一例を示す図である（テーブル型の複雑なデータ表の場合）。
【図２９】インマッピング処理によってインデクスが付与されたデータベースとデータ表との一例を示す図である（マトリクス型のシンプルなデータ表の場合）。
【図３０】インマッピング処理によってインデクスが付与されたデータベースとデータ表との一例を示す図である（マトリクス型の複雑なデータ表の場合）。
【図３１】重複削除のインマッピングの例を説明するための図である。
【図３２】２段階インマッピングの第２の類型を説明するための図である。
【発明を実施するための形態】
【００３８】
以下に、本発明の実施形態を、図面を参照して説明する。
【００３９】
本発明は、ユーザが表計算ソフトを用いて作成したデータ表のレイアウトに基づいて、データベースに書き込むための適切な構成のレコードを自動的に作成することによって、ユーザの負担の軽減を図ることが可能なアウトマッピングのための装置、方法、プログラム、および記録媒体に関する。また、ユーザが表計算ソフトを用いて作成したデータ表内の各セルに対して、データベースから適切なデータを自動的に書き込むようにすることによって、ユーザの負担の軽減を図ることが可能なインマッピングのための装置、方法、プログラム、および記録媒体に関する。
【００４０】
このような本発明の具体的な構成を説明する前に、まず、関連する技術について簡単に説明する。
【００４１】
（リレーショナルデータベース）
リレーショナルデータベース（ＲＤＢ）とは、データをテーブルといわれる表形式の構造で管理するデータベースのことを言う。リレーショナルデータベースでは、図１に示すように、複雑なデータ構造を複数のテーブル（例えば、テーブル１００およびテーブル２００）に分解して、それらをデータの関係性で組み合わせて利用する。
【００４２】
リレーショナルデータベースでは、すべてのデータを表形式で表現する。表は列と行で構成され、列は必ず１つの意味を持つ。例えば、社員表を表わす図１のテーブル１００では、第１列が社員番号１２０を、第２列が社員名１４０を、第３列が給与１６０を、第４列が部門番号１８０を示している。部門表を表わすテーブル２００では、第１列が部門番号２２０を、第２列が部門名２４０を、第３列が所在地２６０を示している。
【００４３】
社員表を表わすテーブル１００によって、社員名「松田」の部門番号１８０が「２０」であることが分かり、部門表を表わすテーブル２００によって、部門番号１８０が「２０」である部門名が「営業」であることが分かる。
【００４４】
リレーショナルデータベースのもう１つの大きな特徴は、ＳＱＬというデータベース言語を用いて、複数のテーブルを結合（リレーション）して利用することである。図２は、テーブル１００とテーブル２００とを結合することにより作成されるテーブル３００を示している。テーブル１００もテーブル２００も部門番号という同じ情報を有しているので、同じ部門番号を有するデータ同士が結び付けられることによって、テーブル３００が作成される。すなわち、テーブル３００における部門番号は、テーブル１００における部門番号１８０でも、テーブル２００における部門番号２２０でもあるので、図２では、部門番号１８０（２２０）として示している。
【００４５】
次に、リレーショナルデータベースで使用されている主な用語について、図３に示す住所録テーブル４００を例に用いて説明する。
【００４６】
住所録テーブル４００のような「テーブル」とは、データを格納する場所の基本単位であり、原則としてすべてのデータは何らかのテーブルに保管される。
【００４７】
レコード４２０とは、住所録テーブル４００における表の行（横）に相当し、１件のデータが１つの「レコード」に該当する。
【００４８】
フィールド４４０とは、住所録テーブル４００における表の列（縦）に相当し、各レコード４２０を構成する。なお、フィールドは、当該指摘技術分野において、カラムとも称される。
【００４９】
このような住所録テーブル４００を作成する場合、設計時にフィールド４４０の構成を決定し、レコード４２０単位でデータを記録して行く。
【００５０】
また、テーブルの各行を一意に識別する値が格納された単一のフィールドまたは複数のフィールドの組み合わせのことを「プライマリーキー（ＰＫ）」という。例えば、図１でも示したテーブル１００およびテーブル２００が示されている図３を用いて説明すると、社員表を表わすテーブル１００の場合、社員番号１２０が、部門表を表わすテーブル２００の場合、部門番号２２０が、それぞれＰＫに相当する。
【００５１】
（マッピング）
前述したように、マッピングとは、表計算ソフト（例えばマイクロソフト社のＥｘｃｅｌ（登録商標）や、Ｇｏｏｇｌｅ社のＳｐｒｅａｄＳｈｅｅｔ等）におけるスプレッドシート内のセルと、例えばリレーショナルな表形式のデータベース（例えば、マイクロソフト社のＡｃｃｅｓｓ（登録商標）等）のレコードとの紐付けを行うことである。
【００５２】
そして、マッピングには２種類あり、データ表から、データベースのテーブルへのマッピングである「アウトマッピング」と、その逆に、データベースのテーブルからデータ表へのマッピングである「インマッピング」とがある。なお、本願発明は、前述したようなリレーショナルデータベースに限らず、それ以外のタイプのデータベースにも適用可能である。
【００５３】
以下に、図５乃至図１０を用いて、マッピングについて具体的に説明する。
【００５４】
マッピングは大きく分けて６つのタイプに分類される。図５乃至６に示すタイプＩ乃至ＩＩは、アウトマッピングに関するものであり、図７乃至１０に示すタイプＩＩＩ乃至ＶＩは、インマッピングに関するものである。
【００５５】
図５に示すタイプＩは、データ表５００からデータベースのテーブル６００へなされるアウトマッピングである。例示するデータ表５００は、科目コード５１０、科目名称５２０、金額５３０、備考５４０、年度５５０、期間５６０からなるデータ項目を備えている。セル範囲５１５内の各セルには、科目コード５１０に属するデータが表示される。同様に、セル範囲５２５内の各セルには、科目名称５２０に属するデータが、セル範囲５３５内の各セルには、金額５３０に属するデータが、セル範囲５４５内の各セルには、備考５４０に属する各データが表示されている。セル範囲５２５には、セル範囲５１５に示される科目コードのデータに応じた科目名称のデータが表示されている。
【００５６】
また、データ表５００内の上側にある年度５５０および期間５６０もまたデータ項目である。そして、年度５５０および期間５６０のセル範囲５５５，５６５にはそれぞれ１つのセルしか含まれていない。このように、データ項目に１つのセルしか含まれていない場合、このセルに表示されているデータの内容は、対応するデータベースのテーブル６００に書き込みを行う全レコードに適用される。このような構成のデータ表５００は、「テーブル型」のデータ表と呼ばれる。
【００５７】
例えば、年度５５０のセル範囲５５５が有する唯一のセルに「２０１４年度」が表示されている場合、データベースのテーブル６００に書き込むすべてのレコードの年度６１０というフィールドのデータ６１５が「２０１４年度」となる（Ａ１１０）。
【００５８】
同様に、セル範囲５６５の唯一のセルに「第４四半期」が表示されている期間５６０についても、データベースのテーブル６００に書き込むすべてのレコードにおいて、対応するフィールドである期間６２０のデータ６２５が「第４四半期」となる（Ａ１２０）。
【００５９】
データベースのテーブル６００におけるその他のデータ項目である科目コード６３０、金額６４０、および備考６５０は、それぞれデータ表５００における科目コード５１０、金額５３０、および備考５４０に対応しており、データ６３５，６４５，６５５はそれぞれ、セル範囲５１５，５３５，５４５内のセルに表示されているデータである（Ａ１３０，Ａ１４０，Ａ１５０）。
【００６０】
タイプＩは、Ａ１１０〜Ａ１５０に示すように、データ表５００からデータベースのテーブル６００にレコードを作成するアウトマッピングである。
【００６１】
図６に示すタイプＩＩもまた、アウトマッピングである。このアウトマッピングの例を、データ表７００とデータベースのテーブル８００とを用いて説明する。
【００６２】
タイプＩＩのアウトマッピングでは、データ表７００のような「マトリクス型」と呼ばれるデータ表からデータベースのテーブル８００へのマッピングがなされる。マトリクス型のデータ表は、複数のデータ項目に属するデータが書き込まれたセルを有する。図６の例では、セル範囲５３５内のセルは、科目コード５１０と、相手コード５８０との両方に属している。
【００６３】
例えば、セル５３５（＃１）は、セル５１５（＃１）とセル５８５（＃１）とに属する。セル５１５（＃１）は、科目コード５１０に属するデータであり、図６に示す例では、「ＡＣ００１０」となっている。この科目コードに対応する科目名称５２０は、売上高５２５（＃１）である。また、セル５８５（＃１）は、相手コード５８０に属するデータであり、図６に示す例では「Ｃ２０００」となっている。この相手コードに対応するセル５９５（＃１）に書き込まれたデータは「アバントン」となっている。
【００６４】
すなわち、セル５３５（＃１）に表示されているデータ「１００，０００」は、相手コード「Ｃ２０００」である「アバントン」の、売上高（科目コード５１０＝ＡＣ０００１０）を示している。
【００６５】
図６に示すデータ表７００は「マトリクス型」である。なお、データ表７００について補足すると、セル範囲に１つのセルしか含まれていないデータ項目として、年度５５０および期間５６０に加えて、自社５７０も設けられている。自社５７０には、唯一のセル５７５が含まれ、自社５７０はデータベースのテーブル８００における自社コード６６０が対応し、自社５７０に含まれるセル５７５に表示されているデータは、データベースのテーブル８００におけるデータ６６５に対応する（Ａ１６０）。
【００６６】
また、データ表７００における相手コード５８０はデータベースのテーブル８００における相手コード６７０に、相手コード５８０に含まれるセル範囲５８５に書き込まれるデータは、相手コード６７０におけるデータ６７５となる（Ａ１７０）。図６に示されたデータ表７００とデータベースのテーブル８００との関係に関連するその他については、上記説明および図５を用いて既に行った説明から明らかであるので、同一の構成および処理については、同一の符号を付し、説明を省略する。
【００６７】
タイプＩＩは、Ａ１１０〜Ａ１４０，Ａ１６０〜Ａ１７０に示すようにデータ表７００からデータベースのテーブル８００のレコードを作成するアウトマッピングである。
【００６８】
図７に示すタイプＩＩＩは、データベースのテーブル６００からデータ表５００へなされるインマッピングの一例である。データ表５００は、テーブル型であり、図５に示すものと同じ構成をしているので、図５と同一符号を付すことによって、その構成の説明を省略する。また、データベースのテーブル６００もまた、図５に示すものと同じ構成をしているので、同様に、図５と同一符号を付すことによって、その構成の説明を省略する。
【００６９】
ユーザが、表計算ソフトを用いて、スプレッドシート上に、図７に示すようなデータ表５００を作成したものとする。さらに、年度５５０としてセル範囲５５５に「２０１４年度」が書き込まれ、期間５６０としてセル範囲５６５に「第４四半期」が書き込まれているものとする。これによって、データベースのテーブル６００において、年度６１０として「２０１４年度」に該当し、期間６２０として「第４四半期」に該当するデータがインマッピングの対象として絞り込まれる（Ａ２００，Ａ２１０）。
【００７０】
データ表５００ではさらに科目コード５１０の具体的なデータがセル範囲５１５に表示されている。これによって、データ表５００の金額５３０のセル範囲５３５には、データベースのテーブル６００に書き込まれているデータのうち、年度６１０が「２０１４年度」であって、期間６２０が「第４四半期」であるデータのうち、科目コード５１０に含まれるデータと同一のデータを有する科目コード６３０が検索される（Ａ２２０）。さらに、Ａ２２０で検索された科目コード６３０のデータに対応する金額６４０のデータおよび備考６５０のデータが検索され、これらデータが、データ表５００における対応するセル範囲５３５およびセル範囲５４５に表示される（Ａ２３０，Ａ２４０）。
【００７１】
例えば、データ表５００は、年度５５０が「２０１４年度」、期間５６０が「第４四半期」を対象としているので、データ表５００における科目コード５１０が「ＡＣ００１０」である場合、データベースのテーブル６００における「第１レコード」が対応する。「第１レコード」の金額６４０は「５，０００，０００」であり、備考６５０は「１２％増加」であるので、データ表５００の科目コード５１０の「ＡＣ００１０」の行には、金額５３０として「５，０００，０００」、備考５４０は「１２％増加」が書き込まれる。
【００７２】
タイプＩＩＩでは、科目コード５１０のように、あるデータ項目のデータがすでに固定情報として表示されており、これらをキー情報として、対応するデータを、データベースのテーブル６００から検索しているので、テーブル型かつ検索型のインマッピングとして分類される。
【００７３】
それに対して、図８に示すようなタイプＩＶは、テーブル型のインマッピングであるものの、このような検索を行わずになされる、非検索型のものである。すなわち、テーブル型かつ非検索型のインマッピングとして分類される。
【００７４】
図８に示すデータ表５００およびデータベースのテーブル６００は、図７に示すデータ表５００およびデータベースのテーブル６００と同じ構成をしているので、図７と同一符号を付し、異なる点のみを説明する。
【００７５】
すなわち、図８では、図７とは異なり、科目コード５１０のデータが決められておらず、データベースのテーブル６００からは、年度６１０が「２０１４年度」であり、期間６２０が「第４四半期」である科目コード６３０のデータ６３５がすべてデータ表５００によって取得され、取得された順に表示される（Ａ２２５）。さらに、科目コード６３０のデータ６３５に対応している金額６４０のデータ６４５がデータ表５００によって取得され、既に表示されている科目コード５１０のセル範囲５１５のデータと並ぶように表示される（Ａ２３０）。同様に、科目コード６３０のデータ６３５または金額６４０のデータ６４５に対応している備考６５０のデータ６５５がデータ表５００によって取得され、既に表示されている科目コード５１０のセル範囲５１５のデータおよび金額５３０のセル範囲５３５のデータと並ぶように表示される（Ａ２４０）。
【００７６】
次に、図９を用いて、タイプＶについて説明する。タイプＶは、データ表７００がマトリクス型である場合におけるインマッピングである。
【００７７】
図９に示すタイプＶは、データベースのテーブル８００からデータ表７００へなされるインマッピングの一例である。データ表７００は、マトリクス型であり、図６に示すものと同じ構成をしているので、図６と同一符号を付すことによって、その構成の説明を省略する。また、データベースのテーブル８００もまた、図６に示すものと同じ構成をしているので、同様に、図６と同一符号を付すことによって、その構成の説明を省略する。
【００７８】
ユーザが、表計算ソフトを用いて、スプレッドシート上に、図９に示すようなデータ表７００を作成したものとする。さらに、年度５５０としてセル範囲５５５に「２０１４年度」が指定され、期間５６０としてセル範囲５６５に「第４四半期」５６５が指定され、自社５７０としてセル範囲５７５に「Ｃ１０００」が指定されている。これによって、データベースのテーブル８００において、年度６１０として「２０１４年度」であり、期間６２０として「第４四半期」であり、自社コード６６０として「Ｃ１０００」のものがインマッピングの対象として絞り込まれる（Ａ３００，Ａ３１０，Ａ３２０）。データ表７００ではさらに、相手コード５８０のセル範囲５８５に、「Ｃ２０００」、「Ｃ３０００」、および「Ｃ４０００」が指定されている。これらは検索のためのキー情報として使用される（Ａ３３０）。
【００７９】
これによって、データ表７００のセル範囲５１５には、データベースのテーブル８００に書き込まれているデータのうち、科目コード６３０に含まれるデータ６３５が取得される（Ａ３４０）。そして、セル範囲５３５には、年度６１０が「２０１４年度」であって、期間６２０が「第４四半期」であって、自社コード６６０が「Ｃ１０００」であるデータのうち、セル範囲５８５に指定されている相手コード６７０に対応する金額６４０が、セル範囲５１５に指定された科目コード毎に表示される（Ａ３５０）。
【００８０】
最後に、図１０を用いて、タイプＶＩについて説明する。タイプＶＩもまた、データ表７００がマトリクス型であるインマッピングであるが、２つのデータベースのテーブル８００，９００から１つのデータ表７００へのインマッピングである。このため、インマッピング処理を、２段階に分けて行う。このようなインマッピングは２段階マッピングと称される。
【００８１】
図１０におけるデータ表７００は、マトリクス型であり、図６に示すものと同じ構成をしているので、図６と同一符号を付すことによって、その構成の説明を省略する。また、データベースのテーブル８００もまた、図６に示すものと同じ構成をしているので、同様に、図６と同一符号を付すことによって、その構成の説明を省略する。タイプＶＩでは、内部取引明細に関するデータベースのテーブル８００に加えて、さらにもう１つのデータベースのテーブル９００が存在する。図１０に示す例では、データベースのテーブル９００は、会社マスタに関するものであり、フィールドとして会社コード９１０と会社名称９２０とがあり、それぞれ対応するデータ９１５，９２５が書き込まれている。
【００８２】
データ表７００の年度５５０、期間５６０、自社５７０のセル範囲５５５，５６５，５７５がそれぞれ有する単一のセルには、図９と同様に、「２０１４年度」、「第４四半期」、「Ｃ１０００」が表示されている（Ａ３００，Ａ３１０，Ａ３２０）。また、科目コード５１０のセル範囲５１５には、図９と同様に対応するデータが既に表示されている（Ａ３４０）。
【００８３】
まず１段階目のインマッピングとして、データ表７００の相手コード５８０のセル範囲５８５に、データベースのテーブル９００の会社コード９１０に書き込まれているデータ９１５が表示される（Ａ３４５）。また、会社コード９１０のデータ９１５に対応する会社名称９２０のデータ９２５が、セル範囲５９５に表示される。このインマッピングは、前述したタイプＩＶに該当する。
【００８４】
このように１段階目でセル範囲５８５に表示されたデータがキー情報とされ、Ａ３５０の処理が実行されることによって、データベースのテーブル８００から、データ表７００のセル範囲５３５に、対応するデータが書き込まれることによって、２段階目のインマッピングが実行される。このインマッピングは、前述したタイプＶに該当する。
【００８５】
なお、ここでは、１段階目がタイプＩＶのインマッピングであり、２段階目がタイプＶのインマッピングである例を示したが、タイプＶＩのインマッピングは、このような組み合わせに限定されるものではなく、タイプＩＩＩ〜Ｖのマッピングのうちの何れか２つのタイプを、任意の順序で実行することができる。また、例えば、１段階目でタイプＩＩＩのインマッピングがなされ、２段階目でもタイプＩＩＩのインマッピングがなされるように、１段階目でインマッピングされるタイプと２段階目でインマッピングされるタイプとが同じである場合もある。
【００８６】
（マッピング装置の概要）
以上のような背景説明を踏まえ、以下に、本願の実施形態に係るマッピング方法が適用されたマッピング装置について説明する。
【００８７】
図１１は、本願の実施形態に係るマッピング方法が適用されたマッピング装置１０００の構成例を示すブロック図である。
【００８８】
マッピング装置１０００は、パソコン、タブレット端末、スマートフォン等のコンピュータにインストールされることによって実現される。
【００８９】
したがって、図１に示す入力部１０２０は、例えばマッピング装置１０００が、パソコンであればマウスやキーボード等であり、タブレット端末やスマートフォンであればタッチパネル等であり、表示部１０３０は、例えばディスプレイである。
【００９０】
マッピング装置１０００は、全体の処理を司る全体制御部１０４０と、全体制御部１０４０によって動作制御されるマッピング定義部１０５０、メタ定義データ作成部１０６０、アウトマッピング設定部１０７０、インマッピング設定部１０８０、データ表判定部１０９０、アウトマッピング・インデクス付与部１１００、レコード構成決定部１１１０、インマッピング・インデクス付与部１１２０、データ表作成部１１３０、データ書込部１１４０、記憶装置２０２０、および明細テーブル作成プロシージャ２０６０とを備えている。
【００９１】
明細テーブル２０８０は、例えば前述したデータベースのテーブル６００，８００，９００等に相当し、記憶装置２０２０は、メタ定義テーブル２０４０や明細テーブル２０８０を格納するための例えばハードディスクである。
【００９２】
（マッピング定義作成）
マッピング定義部１０５０は、図１２の右に示すようなマッピング定義１２００を作成する。マッピング定義１２００は、インマッピングおよびアウトマッピングを行うために必要な情報である。
【００９３】
図１２の左に示すデータ表５００は、Ｅｘｃｅｌシートで表示されているセルアドレス表示（（Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，・・・）×（１，２，３，４，５，６，７，８，・・・））が記載されている点を除いて図５で説明したものと同一である。図１２の右に示すマッピング定義１２００は、セル範囲名称１２１０と、セル範囲１２２０とをデータ項目として備えたテーブル構造をしている。セル範囲名称１２１０のデータ１２１５には、図１２の例では、「年度のエリア」、「期間のエリア」、「科目のエリア」、「金額のエリア」、および「備考のエリア」が記載されている。これらはそれぞれデータ表５００における年度５５０、期間５６０、科目コード５１０、金額５３０、および備考５４０に対応させて、ユーザが決定して入力したものである（Ｇ１００〜Ｇ１４０）。
【００９４】
ユーザはさらに、データ１２１５に入力されている項目に応じたデータ表５００におけるセル範囲を、マッピング定義部１０５０の機能を使って、セル範囲１２２０のデータ１２２５として書き込む。例えば、「年度のエリア」であれば、データ表５００におけるセルＥ２である。「科目のエリア」であれば、データ表５００におけるＢ６：Ｂ９９となる。
【００９５】
図１２では、マッピング定義１２００を、マッピング定義部１０５０の機能を使って、ユーザが作成するものとして説明した。しかしながら、マッピング定義部１０５０は、マッピング定義１２００の作成を半自動化した機能も備えることができる。これを図１３を用いて説明する。
【００９６】
まず、ユーザは、マッピング定義部１０５０を起動し、図１３の左に示すデータ表５００のうちのセル範囲５９８のように、大きなセル範囲をセル範囲１２２０として設定する。すなわち、図１３の右上に示すように、セル範囲１２２０のデータ１２２０ａとしてＢ６：Ｅ９９を書き込む（Ｇ１５０）。
【００９７】
マッピング定義部１０５０は、起動されると、前述したような半自動化機能を実現するための、図示しない列分割ボタンを表示する。この列分割ボタンをユーザが、入力部１０２０を用いて押下すると、マッピング定義１２００ａのセル範囲１２２０のデータ１２２０ａとして設定されたセル範囲Ｂ６：Ｅ９９が、列単位に分割される（Ｇ１６０）。
【００９８】
これによって、図１３の右下のデータ１２２５ｂに示すように、セル範囲Ｂ６：Ｅ９９が、列単位に分割されることにより、Ｂ６：Ｂ９９、Ｃ６：Ｃ９９、Ｄ６：Ｄ９９、Ｅ６：Ｅ９９からなる４つのセル範囲が生成されたマッピング定義１２００ｂが生成される。
【００９９】
さらに、データ表５００における各セル範囲の上に隣接するセルに記載されている名称（すなわち、「科目コード」、「科目名称」、「金額」、「備考」）が、セル範囲名称１２１０のデータ１２１５ｂとして自動的に取得される。なお、重複した名称が使用されている可能性もあるので、初出のセル範囲名称については、末尾に＿００１と付し、同じセル範囲名称が再出した場合には、以降、＿００２，＿００３，・・・と付すようにしている。
【０１００】
この機能にしたがい、マッピング定義１２００ｂでは、データ表５００における科目コード５１０、科目名称５２０、金額５３０、および備考５４０が、それぞれ末尾に＿００１が付されてデータ１２１５ｂとして書き込まれる。
【０１０１】
このようにして、ユーザは、マッピング定義部１０５０の半自動化機能を用いることにより、データ表５００からマッピング定義１２００ｂをより効率的に作成することができる。
【０１０２】
上記では一例として列分割について説明したが、当業者であれば、行分割についても同様に実施できることを理解できるであろう。なお、行分割の場合、マッピング定義１２００ａで指定した大きなセル範囲１２２０を示すデータ１２２０ａの各列の上に隣接するセルに代えて、各行の左に隣接するセルに記載されている名称が、セル範囲名称１２１０のデータ１２１５ｂに自動的に取得される。
【０１０３】
なお、マッピング定義部１０５０は、このような半自動化機能を有する場合であっても、手動による機能を排除するものではない。したがって、図１２を用いて説明したように、セル範囲名称１２１０に属するデータ１２１５と、対応するセル範囲１２２０に属するデータ１２２５とを、ユーザ入力にしたがって作成することもできる。例えば、データ表５００におけるセル範囲５５５（Ｅ２）およびセル範囲５６５（Ｅ３）は、セル範囲５９８（Ｂ６：Ｅ９９）とは離れているので、マッピング定義１２００ａにおいて、大きなセル範囲１２２０のデータ１２２０ａに含めることはできない。よって、セル範囲５５５（Ｅ２）およびセル範囲５６５（Ｅ３）は、ユーザ入力にしたがって個別に設定することによって、図１３に示すようなマッピング定義１２００ｂから、図１２に示すようなマッピング定義１２００を作成する。なお、図１２に示すマッピング定義１２００は、セル範囲名称１２１０の中に、「科目名称」に関するデータは含まれていないので、図１３に示すようなマッピング定義１２００ｂから、図１２に示すようなマッピング定義１２００を作成する場合には、図１３のマッピング定義１２００ｂのセル範囲名称１２１０に含まれている「科目名称＿００１」のレコードを削除する。
【０１０４】
（メタ定義データ作成）
ユーザは、メタ定義データ作成部１０６０の機能を使って、マッピング定義１２００から、メタ定義データ１３００を作成する。
【０１０５】
図１４は、メタ定義データ１３００の一例を示しており、データ項目として、フィールド論理名称１３１０、データ型１３２０、データ長１３３０、小数桁１３４０、ＰＫ  １３５０、および必須１３６０を備えている。
【０１０６】
ユーザは、メタ定義データ作成部１０６０の機能を使って、マッピング定義１２００で定義されているセル範囲名称１２１０のうち、後述する明細テーブル２０８０（前述したデータベースのテーブル６００，８００，９００に相当）に書き込みたいセルを、例えばマウスのクリックによって指定する。
【０１０７】
すると、クリックされたセルが、メタ定義データ１３００のフィールド論理名称１３１０に、反映されるようになる。例えば、マッピング定義１２００のセル範囲名称１２１０に属するデータ１２１５のうち、「年度のエリア」がクリックされると、図１４の右図に示すように、メタ定義データ１３００のフィールド論理名称１３１０に属するレコード１３１５の先頭に示されているように「年度」と表示される（Ｇ２００）。ユーザは、このようにメタ定義データ作成部１０６０の機能を使って、メタ定義データ１３００のフィールド論理名称１３１０に属するデータ１３１５として、マッピング定義１２００のセル範囲名称１２１０の内容を反映させていく（Ｇ２１０〜２４０）。図１４では、マッピング定義１２００のセル範囲名称１２１０に属するデータ１２１５のうち、「年度のエリア」、「期間のエリア」、「科目名称のエリア」、「金額のエリア」、および「備考のエリア」が、メタ定義データ１３００のフィールド論理名称１３１０のデータ１３１５として反映された例を示している。なお、フィールド論理名称１３１０のデータ１３１５として「科目コードのエリア」は反映されていないように、必ずしもマッピング定義１２００のセル範囲名称１２１０のすべてが、メタ定義データ１３００のフィールド論理名称１３１０のデータ１３１５として反映される必要はない。
【０１０８】
メタ定義データ１３００はさらに、データ項目として、データ型１３２０、データ長１３３０、小数桁１３４０、ＰＫ  １３５０、および必須１３６０を備えているが、これらは、ユーザが入力する項目である。データ長１３３０は、データ型１３２０が文字の場合には文字列長を、データ型１３２０が数値の場合には整数部の桁数を意味する。小数桁は、数値の場合の小数部（精度）を意味する。ＰＫ  １３５０は、プライマリーキーおよびインデクスであることを意味する。必須１３６０は、ＮｏｔＮｕｌｌ制約（データの空白を認めない）がかかることを意味する。
【０１０９】
（明細テーブル作成）
このように作成されたメタ定義データ１３００は、全体制御部１０４０によって、メタ定義データ作成部１０６０からメタ定義テーブル２０４０に送られ、メタ定義テーブル２０４０に格納される。
【０１１０】
メタ定義テーブル２０４０にメタ定義データ１３００が格納されると、明細テーブル作成プロシージャ２０６０が起動する。明細テーブル作成プロシージャ２０６０は、メタ定義データ１３００に定義された各データをパラメータとして受け取り、受け取ったパラメータをＤＤＬ文に当てはめ、動的にＤＤＬ文を発行することによって、明細テーブル２０８０を作成する。
【０１１１】
このように、本実施形態によれば、従来とは逆の発想で、データベースを起点にしてデータ表を設計するのではなく、データ表の設計を起点としてデータベースのテーブルである明細テーブル２０８０を作成することができる。具体的には、セル範囲の組み合わせ明細テーブル２０８０を構成するという設定方法により、作成することができる。
【０１１２】
明細テーブル２０８０は、例えば前述したデータベースのテーブル６００，８００，９００等のように、リレーショナルデータベースにおいて用いられるのに好適なテーブル構造を有している。
【０１１３】
なお、明細テーブル２０８０は、適宜、ユーザによって編集されることが可能となっている。例えば、明細テーブル２０８０に１レコードも存在しない場合には、ユーザが設定内容を編集することで、明細テーブル２０８０が再作成されることによって、編集された内容が反映されるようにしている。また、明細テーブル２０８０に１レコードでもデータが存在する場合には、既存のデータを破壊することなく変更できる内容、つまりデータ長１３３０の拡張、小数桁１３４０の拡張、最後尾へのフィールド追加のみを可能としている。
【０１１４】
記憶装置２０２０は、メタ定義テーブル２０４０および明細テーブル２０８０を格納する。
【０１１５】
（マッピング設定）
アウトマッピング作成部１０７０およびインマッピング作成部１０８０は、全体制御部１０４０を介して明細テーブル２０８０を取得し、マッピング設定を行う。
【０１１６】
図１５は、アウトマッピング設定部１０７０によってなされるアウトマッピング設定を説明するための図である。
【０１１７】
アウトマッピング設定部１０７０は、アウトマッピング設定をしたいマッピング定義１２００を表示部１０３０から表示させるとともに、このマッピング定義１２００に対応する明細テーブル２０８０の明細テーブル構成２０９０を、記憶装置２０２０から取得する。明細テーブル構成２０９０は、図１５の右下に示すように、データ項目としてフィールド論理名称２０９２とデータ型２０９４とを備えている。このような明細テーブル構成２０９０の取得は、テーブル選択ボタン３１００を用いて、所望の明細テーブル２０８０を選択することによって実現する。
【０１１８】
図示していないが、アウトマッピング作成部１０７０が起動されると、表示部１０３０からテーブル選択ボタン３１００が表示されるようになっている。ユーザが入力部１０２０を用いてこのテーブル選択ボタン３１００をクリックすると、記憶装置２０２０に格納されている明細テーブル２０８０の一覧がプルダウン表示されるようになっており、ユーザは、その中から所望の明細テーブル２０８０を選択できるようになっている。そして、選択されると、選択された明細テーブル２０８０の明細テーブル構成２０９０が、図１５の右下図に示すように、表示部１０３０から表示されるようになっている。
【０１１９】
図１４に示すマッピング定義１２００では、データ項目としてセル範囲名称１２１０とセル範囲１２２０しかなかったが、図１５の左に示すマッピング定義１２００では、さらにフィールド論理名称１２３０とグループ１２４０とが追加されている。
【０１２０】
このうち、フィールド論理名称１２３０は、明細テーブル構成２０９０のフィールド論理名称２０９２から引き継がれる（Ｇ３００〜Ｇ３４０）ことにより追加される。
【０１２１】
また、グループ１２４０は、ユーザが、アウトマッピング設定部１０７０を用いることによって、マッピング定義１２００に新たに追加されるデータ項目である。
【０１２２】
グループ１２４０は、同じカラムに複数のセル範囲から書き込む場合に、一緒にレコードを構成するセル範囲の定義である。ユーザは、グループ１２４０に、一緒にレコードを構成するセル範囲に対して、同じグループ番号を付すことによって、グループ定義を行う。例えば、図１５の場合、セル範囲Ｅ２、Ｅ３、Ｂ６：Ｂ９９、Ｄ６：Ｄ９９、およびＥ６：Ｅ９９が、グループ１という同一のグループに属していることを意味する。
【０１２３】
図１６は、同じ明細テーブル２０８０に書き込むデータ表が２つあり、２つのグループを定義する場合におけるマッピング定義１２００（＃１），１２００（＃２）を示している。マッピング定義１２００（＃１）はグループ１のためのものであり、マッピング定義１２００（＃２）はグループ２のためのものである。
【０１２４】
図１７は、インマッピング設定部１０８０によってなされるインマッピング設定を説明するための図である。
【０１２５】
インマッピング設定部１０８０は、インマッピング設定をしたいマッピング定義１２００を表示部１０３０から表示させるとともに、このマッピング定義１２００に対応する明細テーブル２０８０の明細テーブル構成２０９０を、記憶装置２０２０から取得する。この手順は、アウトマッピング設定部１０７０によってなされるものと同じであるので説明を省略する。
【０１２６】
図１４に示すマッピング定義１２００では、データ項目としてセル範囲名称１２１０とセル範囲１２２０しかなかったが、図１７の左上に示すマッピング定義１２００では、さらにフィールド論理名称１２３０とグループ１２４０と引数設定１２５０が追加されている。フィールド論理名称１２３０は、明細テーブル構成２０９０のフィールド論理名称２０９２のデータ２０９３から引き継がれたものである（Ｇ３５０〜Ｇ３６０）。グループ１２４０については、説明済みであるので、ここでは更なる説明をしない。
【０１２７】
引数設定１２５０とはデータの絞り込みのための条件設定のことであり、引数設定１２５０の設定内容１２５５に「引数設定」と指定すると、図１７の左下に示すような引数設定画面３１２０が表示装置３０２０から表示されるようにしている。
【０１２８】
ユーザは、この引数設定画面３１２０にしたがって条件を入力することによって、データの絞り込みのための条件を設定する。引数の指定が求められるのは、メタ定義データ１３００においてＰＫ  １３５０に指定されている項目である。
【０１２９】
図１４の右に示すように、本例では、メタ定義データ１３００において、フィールド論理名称１３１０のデータ１３１５のうちの「年度」、「期間」、「科目コード」についてＰＫ  １３５０が指定されている。したがって、引数設定画面３１２０では、年度３１２２、期間３１２４、科目コード３１２６について、絞り込みパターンの設定３１２３，３１２５，３１２７が要求される。
【０１３０】
絞り込みパターンとしては、以下の４パターンがある。第１のパターンは、絞り込まないことである。これは、当該ＰＫをデータの絞り込みに利用しないことを意味する。データを一覧表示するだけの目的でデータ表を利用する場合、第１のパターンが適用される。
【０１３１】
第２のパターンは、「メニューで絞る」ことである。これは、明細テーブル２０８０からデータを取得する際に、ユーザが操作するシステム内のメニューにおいて、選択した情報で絞り込んでデータを取得するためのものである。
【０１３２】
第３のパターンは、「固定値で絞る」ことである。これは、明細テーブル２０８０が指定した特定の１つの値で、明細テーブル２０８０から取得したデータをさらに絞り込むために利用するためのものである。
【０１３３】
第４のパターンは、「セルの値で絞る」ことである。これは、ユーザが予めセルに書き込んだ値で、明細テーブル２０８０から取得したデータをさらに絞り込むためのものである。
【０１３４】
図１７の左下の図では、年度３１２２に対する設定３１２３が「メニューで絞る」であり、期間３１２４に対する設定３１２５が「メニューで絞る」であり、科目コード３１２６に対する設定３１２７が「セルの値で絞る」であり、さらに、「セルの値で絞る」セル範囲としてＢ６：Ｂ９９が指定されている例を示すものである。
【０１３５】
このような引数設定が同じであるフィールドは、同じグループに属し、インマッピング時に、データ表に対して同時にデータの書き込みが行われるようになる。例えば、図１７の左上のマッピング定義１２００では、「金額のエリア」と「備考のエリア」とがともに「引数設定１」に設定されている。このように同一の引数設定がなされているフィールドは同じグループとみなされるので、図１７の左上のマッピング定義１２００では、「金額のエリア」、「備考のエリア」ともにグループ１となる。
【０１３６】
このようなグループ設定により、同じグループに属するデータについては、データ表への書き込みが同時に行われるようになる。これによって、本装置の処理の高速化を図ることが可能となる。
【０１３７】
（データ表のタイプ判定）
前述したように、グループ設定がなされたマッピング定義１２００を用いて、データ表判定部１０９０は、アウトマッピングのため、およびインマッピングのため、それぞれについて、データ表が、前述したテーブル型であるか、マトリクス型であるかを判定する。先ず、アウトマッピングためのデータ表の判定フローを図１８に示す。
【０１３８】
データ表判定部１０９０は、アウトマッピングのためのマッピング定義１２００のうち、同一のグループに属するセル範囲を抽出する（Ｓ１００）。
【０１３９】
次に、Ｓ１００で抽出されたセル範囲を以下の４つの分類のうちの何れかに振り分ける（Ｓ１０２）。  
（１）セル数が１つしかないセル範囲。  
（２）左から右へのセル範囲の広がりが、上から下へのセル範囲の広がりよりも１以上上回っているセル範囲（横方向のセル範囲）。  
（３）上から下へのセル範囲の広がりが、左から右へのセル範囲の広がりよりも１以上上回っているセル範囲（縦方向のセル範囲）。  
（４）セル数が１より大きく、左から右へのセル範囲の広がりと、上から下へのセル範囲の広がりが同じ数のセル範囲。
【０１４０】
次に、Ｓ１００で抽出されたセル範囲のうち、セル数が最大のセル範囲を抽出する（Ｓ１０４）。なお、ここで抽出されるセル範囲は、複数あっても構わない。
【０１４１】
次に、最大セル数のセル範囲以外のもので、（２）のセル範囲のうち、セル数が最小のセル範囲を抽出する（Ｓ１０６）。なお、ここで抽出されるセル範囲は、複数あっても構わない。
【０１４２】
さらに、最大セル数のセル範囲以外のもので、（３）のセル範囲のうち、セル数が最小のセル範囲を抽出する（Ｓ１０８）。なお、ここで抽出されるセル範囲は、複数あっても構わない。
【０１４３】
最後に、以下の（ａ）〜（ｃ）に示す３つの判定がなされ（Ｓ１１０）、３つすべてが成立している場合（Ｓ１１０：Ｙｅｓ）、このデータ表はマトリクス型であると判定され（Ｓ１１２）、そうではない場合（Ｓ１１０：Ｎｏ）、このデータ表はテーブル型であると判定される（Ｓ１１４）。  
（ａ）「Ｓ１０６で抽出されたセル範囲のセル数」×「Ｓ１０８で抽出されたセル範囲のセル数」＝「Ｓ１０４で抽出された、セル数が最大のセル範囲のセル数」  
（ｂ）「Ｓ１０６で抽出されたセル範囲のセル数」＝「Ｓ１０４で抽出された、セル数が最大のセル範囲の列数」  
（ｃ）「Ｓ１０８で抽出されたセル範囲のセル数」＝「Ｓ１０４で抽出された、セル数が最大のセルセル範囲の行数」。
【０１４４】
このような判定フローによってなされる判定例を以下に示す。
【０１４５】
図１９（ａ）は、図１２の左に示すものと同じテーブル型のデータ表５００であり、図１９（ｂ）は、このデータ表５００に対応するマッピング定義１２００（＃ＯＵＴ）である。
【０１４６】
この場合、Ｓ１００では、セル範囲Ｅ２、セル範囲Ｅ３、セル範囲Ｂ６：Ｂ９９、セル範囲Ｄ６：Ｄ９９、およびセル範囲Ｅ６：Ｅ９９が抽出される。
【０１４７】
Ｓ１０２では、（１）にセル範囲Ｅ２およびセル範囲Ｅ３が、（３）にセル範囲Ｂ６：Ｂ９９、セル範囲Ｄ６：Ｄ９９、およびセル範囲Ｅ６：Ｅ９９が振り分けられる。なお、（２）および（４）に該当するセル範囲はない。
【０１４８】
Ｓ１０４では、セル範囲Ｂ６：Ｂ９９、セル範囲Ｄ６：Ｄ９９、およびセル範囲Ｅ６：Ｅ９９が抽出される。
【０１４９】
Ｓ１０６では、該当するセル範囲はない。
【０１５０】
Ｓ１０８では、セル範囲Ｂ６：Ｂ９９、セル範囲Ｄ６：Ｄ９９、およびセル範囲Ｅ６：Ｅ９９が抽出される。
【０１５１】
Ｓ１１０では、（ａ）に関し、「０×９４＝９４」となるので成立しない。（ｂ）に関し、「０＝１」となるので成立しない。（ｃ）に関し、「９４＝９４」となり成立する。
【０１５２】
このように、（ａ）、（ｂ）、（ｃ）のすべてが成立している訳ではないので、Ｓ１１４に進み、このデータ表５００は、テーブル型であると判定される。
【０１５３】
図２０（ａ）は、図６のデータ表７００に示すものとほぼ同じ（図６のデータ表７００で定義されている自社５７０およびそのセル範囲５７５が、定義されていない点が異なる）マトリクス型のデータ表７０２であり、図２０（ｂ）は、このデータ表７０２に対応するマッピング定義１２０２（＃ＯＵＴ）である。また、図２０（ａ）に示すデータ表７０２は、図６の左図では記載されていないかったＥｘｃｅｌシートのセルアドレス表示（（Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，・・・）×（１，２，３，４，５，６，７，８，・・・））が記載されている。
【０１５４】
この場合、Ｓ１００では、セル範囲Ｅ２、セル範囲Ｅ３、セル範囲Ｂ７：Ｂ９９、セル範囲Ｄ５：Ｆ５、およびセル範囲Ｄ７：Ｆ９９が抽出される。
【０１５５】
Ｓ１０２では、（１）にセル範囲Ｅ２およびセル範囲Ｅ３が、（２）にセル範囲Ｄ５：Ｆ５が、（３）にセル範囲Ｂ７：Ｂ９９が、（４）にセル範囲Ｄ７：Ｆ９９が振り分けられる。
【０１５６】
Ｓ１０４では、セル範囲Ｄ７：Ｆ９９が抽出される。
【０１５７】
Ｓ１０６では、セル範囲Ｂ７：Ｂ９９が抽出される。
【０１５８】
Ｓ１０８では、セル範囲Ｂ７：Ｂ９９が抽出される。
【０１５９】
Ｓ１１０では、（ａ）に関し、「３×９３＝２７９」となり成立する。（ｂ）に関し、「３＝３」となり成立する。（ｃ）に関し、「９３＝９３」となり成立する。
【０１６０】
このように、（ａ）、（ｂ）、（ｃ）のすべてが成立しているので、Ｓ１１２に進み、このデータ表７０２は、マトリクス型であると判定される。
【０１６１】
（アウトマッピング処理）
前述したように、データ表判定部１０９０によって、データ表のタイプが判定されると、アウトマッピング・インデクス付与部１１００が、データ表のセルのおのおのについて、データ項目毎にインデクスを付与する。
【０１６２】
すなわち、アウトマッピング・インデクス付与部１１００は、データ表に含まれる複数のセル範囲に含まれるセルのおのおのについて、最上行の左端のセルへインデクスとして０を付与し、当該セルと同一行における右方向のセルに対して、当該左端のセルからのセル移動量に応じて１ずつインクリメントされるインデクスを付与し、当該行のすべてのセルへのインデクスの付与を完了すると、次の行に移動し、当該行の左端のセルに対し、前の行において最後に付与されたインデクスから１つインクリメントされるインデクスを付与し、当該セルと同一行における右方向のセルに対して、当該左端のセルからの移動量に応じて１ずつインクリメントされるインデクスを付与するという規則にしたがって、データ表に含まれる複数のセル範囲に含まれるセルのおのおのについて、データ項目毎にインデクスを付与する。
【０１６３】
具体例を、図面を用いて以下に説明する。
【０１６４】
図２１の左は、テーブル型であるシンプルなデータ表５０００のセルのおのおのについて、データ項目毎にインデクスが付与された例を示す図である。
【０１６５】
図２１の左に示すデータ表５０００には５つのデータ項目が含まれ、第１のデータ項目がセル範囲５０２０、第２のデータ項目がセル範囲５０４０、第３のデータ項目がセル範囲５０６０、第４のデータ項目がセル範囲５０８０、第５のデータ項目がセル範囲５１００を有する。
【０１６６】
セル範囲５０２０に属する唯一のセルにはインデクスとして０が付与される。セル範囲５０４０，５０６０，５０８０，５１００はともに縦方向に展開されている。したがって、それぞれ、１行目のセルにはインデクスとして０が付与され、２行目のセルには１が、３行目のセルには２が、４行目のセルには３が、最終行のセルには４が付与される。
【０１６７】
図２２の左は、テーブル型である複雑なデータ表５２００のセルのおのおのについて、データ項目毎にインデクスが付与された例を示す図である。
【０１６８】
図２２の左に示すデータ表５２００にも５つのデータ項目が含まれ、第１のデータ項目がセル範囲５２２０、第２のデータ項目がセル範囲５２４０、第３のデータ項目がセル範囲５２６０、第４のデータ項目がセル範囲５２８０、第５のデータ項目がセル範囲５３００を有する。
【０１６９】
セル範囲５２２０に属する唯一のセルにはインデクスとして０が付与される。セル範囲５２４０，５２８０はそれぞれ縦方向に展開されている。したがって、それぞれ、１行目のセルにはインデクスとして０が付与され、２行目のセルには１が、３行目のセルには２が、４行目のセルには３が、５行目のセルには４が付与される。セル範囲５３００は、２行目と３行目との間にブランクのセルが存在するものの、やはり縦方向に展開されている。この場合、１行目のセルにはインデクスとして０が付与され、２行目のセルには１が、４行目のセルには２が、５行目のセルには３が、６行目のセルには４が付与される。
【０１７０】
一方、セル範囲５２６０は、２列にまたがっている。このようなセル範囲５２６０に対しては先ず、最上行の左端のセルへインデクスとして０を付与する。当該セルと同一行には他のセルはないので、２行目に移動し、２行目の左端のセルに対して、インデクスとして１を付与する。２行目には左端のセルの右側に１つのセルがある。このセルに対して、インデクスとして２を付与する。２行目にはさらなるセルはないので、３行目に移動する。２乃至４行目は、縦方向に展開されているのみであるので、３行目のセルのインデクスは３となり、４行目のセルのインデクスは４となる。
【０１７１】
図２３の左は、マトリクス型であるシンプルなデータ表５４００のセルのおのおのについて、データ項目毎にインデクスが付与された例を示す図である。
【０１７２】
図２３の左に示すデータ表５４００にも５つのデータ項目が含まれ、第１のデータ項目がセル範囲５４２０、第２のデータ項目がセル範囲５４４０、第３のデータ項目がセル範囲５４６０、第４のデータ項目がセル範囲５４８０、第５のデータ項目がセル範囲５５００を有する。
【０１７３】
セル範囲５４２０に属する唯一のセルにはインデクスとして０を付与する。セル範囲５４４０は縦方向に展開されている。したがって、１行目のセルにはインデクスとして０を付与し、２行目のセルには１を、３行目のセルには２を、４行目のセルには３を、５行目のセルには４を付与する。セル範囲５４６０は横方向に展開されている。したがって、１列目のセルにはインデクスとして０を付与し、２例目のセルには１を、３列目のセルには２を、４列目のセルには３を、５列目のセルには４を、６列目のセルには５を付与する。
【０１７４】
セル範囲５４８０は、２次元状に展開されている。したがって、最上行の左端のセルへインデクスとして０を付与し、当該セルと同一行における右方向のセルに対して、左端セルからのセル移動量に応じて１ずつインクリメントされるインデクスを付与する。これによって、１行目のセルに対して、左から０，１，２，３，４，５のようにインデクスを付与する。１行目のすべてのセルへのインデクスの付与が完了すると、２行目の左端のセルに対し、１行目において最後に付与されたインデクスから１つインクリメントされたインデクスである６を付与する。そして、２行目の残りのセルに対しても、左端のセルから右側に移動するにしたがって、セル移動量に応じて１ずつインクリメントされるインデクスを付与する。これによって、２行目のセルに対して、左から６，７，８，９，１０，１１のようにインデクスを付与する。同様なインデクス付けを、残りの行のセルに対しても行うことによって、３行目のセルに対して左から１２，１３，１４，１５，１６，１７のようにインデクスを付与し、４行目のセルに対して左から１８，１９，２０，２１，２２，２３のようにインデクスを付与し、５行目のセルに対して左から２４，２５，２６，２７，２８，２９のようにインデクスを付与する。
【０１７５】
セル範囲５５００もセル範囲５４８０と同様に２次元状に展開されているので、セル範囲５４８０と同様にしてインデクスを付与する。
【０１７６】
図２４の左は、マトリクス型である複雑なデータ表５６００のセルのおのおのについて、データ項目毎にインデクスを付与する例を示す図である。
【０１７７】
図２４の左に示すデータ表５６００にも５つのデータ項目が含まれ、第１のデータ項目がセル範囲５６２０、第２のデータ項目がセル範囲５６４０、第３のデータ項目がセル範囲５６６０、第４のデータ項目がセル範囲５６８０、第５のデータ項目がセル範囲５７００を有する。
【０１７８】
セル範囲５６２０，５６４０に属する唯一のセルにはインデクスとして０を付与する。
【０１７９】
セル範囲５６６０は、２列にまたがっており、しかも１列目の１行目と２行目との間にブランクのセルが存在する。これは、セル範囲５２６０と、セル範囲５３００との組み合わせの一種として考えることできる。したがって、当業者であれば、セル範囲５６６０に対して、図２４に示されるようにインデクスが付与されることを理解することができるであろう。
【０１８０】
セル範囲５６８０は、２行にまたがっており、しかも２列目と３列目との間にブランクのセルが存在する。これは、セル範囲５６６０を９０度回転させたパターンであると考えることができる。したがって、当業者であれば、図２４に示されるようにインデクスが付与されることを理解することができるであろう。
【０１８１】
セル範囲５７００は、３列目と４列目との間にブランクの列があるものの、２次元状に展開されている。したがって、当業者であれば、図２４に示されるようにインデクスが付与されることを理解することができるであろう。
【０１８２】
次に、レコード構成決定部１１１０が、データ表に配置された各セルに書き込まれたデータをデータベースに格納するために、マッピング定義によって決定されているデータベースのテーブルのフィールドとデータ表の各データ項目の対応関係に基づき、適切なレコードのデータ構成を決定する。
【０１８３】
例えば、図２１の左のようなデータ表５０００の場合、５つのセル範囲５０２０，５０４０，５０６０，５０８０，５１００を有するので、格納されるデータが属するフィールドも５つとなる。
【０１８４】
セル範囲５０２０は１つのセルしかないが、セル範囲５０４０，５０６０，５０８０，５１００はそれぞれ５つのセルを有する。したがって、データ表５０００に対応するデータベースのテーブル６０００のレコードの構成は、図２１の右に示すように、セル範囲５０２０に対応するフィールド６０２０（列１）、セル範囲５０４０に対応するフィールド６０４０（列２）、セル範囲５０６０に対応するフィールド６０６０（列３）、セル範囲５０８０に対応するフィールド６０８０（列４）、およびセル範囲５１００に対応するフィールド６１００（列５）で構成され、データベースのテーブル６０００には５つのレコードが書き込まれる。
【０１８５】
セル範囲５０２０については、データ表５０００では、唯一のセルしか示されていないものの、セル範囲５０２０はすべてのセル範囲５０４０，５０６０，５０８０，５１００に対して共通していることから、データベースのテーブル６０００では、フィールド６０２０については、５つのレコードすべてに対してセル範囲５０２０に書かれている値を付与する。
【０１８６】
この説明により、当業者であれば、図２２の左に示すような複雑なテーブル型のデータ表５２００に対するデータベースのテーブル６２００では、図２２の右に示すように、データ項目６２２０，６２４０，６２６０，６２８０，６３００にインデクスが付与されることを理解することができるであろう。
【０１８７】
図２３の右に示すデータベースのテーブル６４００は、図２３の左のデータ表５４００に対して作成されたものである。
【０１８８】
図２３の左のようなデータ表５４００の場合、５つのセル範囲５４２０，５４４０，５４６０，５４８０，５５００が存在するので、格納されるデータが属するデータ項目も５つとなる。これに従って、データベースのテーブル６４００にも、列１〜５のように５つのフィールド６４２０，６４４０，６４６０，６４８０，６５００が設けられる。
【０１８９】
さらに、レコード構成決定部１１１０が、マッピング定義によって決定されているデータベースのテーブルのフィールドとデータ表の各データ項目の対応関係に基づき、適切なレコードのデータ構成を決定する。図２３の左のデータ表５４００の場合、セル範囲５４８０，５５００に３０のセルが含まれることから、レコード数は３０となる。よって、図２３の右に示すように、データベースのテーブル６４００に書き込まれるレコードは、５列の３０レコードとなる。
【０１９０】
このようにして、図２３の左に示すデータ表５４００から、図２３の右に示されるようにデータベースのテーブル６４００に書き込むレコードのデータを作成する。
【０１９１】
この説明により、当業者であれば、図２４の左に示すような複雑なマトリクス型のデータ表５６００に対するデータベース６６００では、図２４の右に示すように、フィールド６６２０，６６４０，６６６０，６６８０，６７００にインデクスが付与されることを理解することができるであろう。
【０１９２】
図２５は、図２３および図２４のようなマトリクス型のデータ表の各セルに対して付与されたインデクスから、データベースのテーブルに書き込む各レコードの構成を決定する処理の具体的な一例を示すフローチャートである。
【０１９３】
先ず、図１８を用いて説明したステップＳ１０２において、（３）として振り分けられたセル範囲のうち、Ｓ１０８で抽出されたセル範囲のセル数をｍとする（Ｓ２００）。次に、同ステップＳ１０２において、（２）として振り分けられたセル範囲のうち、Ｓ１０６で抽出されたセル範囲のセル数をｎとする（Ｓ２０２）。
【０１９４】
行番号ｒ＝０とし（Ｓ２０４）、列番号ｃ＝０とする（Ｓ２０６）。
【０１９５】
ｃ＋（ｎ×ｒ）となっているセル範囲のセルを取得し、この時のｒ，ｃのセルと合わせてレコードを作成する（Ｓ２０８）。
【０１９６】
ｃを１つインクリメントし（Ｓ２１０）、ｃ＜ｎならば（Ｓ２１２：Ｙｅｓ）、ステップ２０８に戻って、レコード作成を繰り返す。
【０１９７】
一方、ステップＳ２１２においてｃ≧ｎならば（Ｓ２１２：Ｎｏ）、ｒを１つインクリメントする（Ｓ２１４）。
【０１９８】
その結果、ｒ＜ｍならば（Ｓ２１６：Ｙｅｓ）、同ステップＳ２０６に戻って、ｃ＝０とし、ステップＳ２０８〜Ｓ２１４を繰り返す。
【０１９９】
一方、ステップＳ２１６においてｒ≧ｍならば（Ｓ２１６：Ｎｏ）レコード作成を終了する。
【０２００】
図２６は、図２５に示すフローチャートを用いて、データ表５８００のセル範囲５８２０，５８４０，５８６０の各々にインデクスを付与するために行う処理を、具体例を用いて説明するための図である。
【０２０１】
データ表５８００は、ステップＳ２００においてｍ＝３となり、ステップＳ２０２においてｎ＝２となり、ステップＳ２０４においてｒ＝０となり、ステップＳ２０６においてｃ＝０となり、ステップＳ２０８において０，０，０のレコードができる。データ表５８００における実際のセルの値がデータ表５９００の通りであるとすると、０，０，０のレコードの値は、Ａ０１，Ｃ１０，１００となる。ここで、Ａ０１はセル範囲５９２０に属し、Ｃ１０はセル範囲５９４０に属し、１００はセル範囲５９６０に属している。
【０２０２】
以下、図２６に示すように、０，１，１のレコードの値は、Ａ０１，Ｃ０２，１１０となり、１，０，２のレコードの値は、Ａ０２，Ｃ０１，２００となり、１，１，３のレコードの値は、Ａ０２，Ｃ０２，２１０となり、２，０，４のレコードの値は、Ａ０３，Ｃ０１，３００となり、２，０，５のレコードの値は、Ａ０３，Ｃ０２，３１０となる。
【０２０３】
本実施形態によれば、このようにして、データ表の構造に基づいてデータベースに書き込むレコードの構成を適切に自動的に決定するアウトマッピング処理を行うことが可能となる。
【０２０４】
（インマッピング処理）
前述したように、データ表判定部１０９０によって、データ表のタイプが判定されると、インマッピング・インデクス付与部１１２０は、データ表のセルのおのおのについて、データ項目毎にインデクスを付与する。
【０２０５】
図２７、図２８、図２９、図３０の左はそれぞれ、テーブル型のシンプルな形式のデータ表５０００、テーブル型の複雑な形式のデータ表５２００、マトリクス型のシンプルな形式のデータ表５４００、マトリクス型の複雑な形式のデータ表５６００に対してインデクスが付与された状態の例を示している。これらデータ表５０００，５２００，５４００，５６００については、図２１、図２２、図２３、図２４を用いて既に説明済みであるので、ここでは詳細な説明を省略する。
【０２０６】
インマッピング・インデクス付与部１１２０はまた、データベースのテーブルに格納されている各レコードをコピーした後、コピーされた各レコードを、各レコードのデータおのおのに、引数指定がされているマッピング定義に従ってペーストする場合には下記（１）にしたがって、引数指定がされていないマッピング定義に従ってペーストする場合には下記（２）にしたがって、インデクスを付与する。
【０２０７】
（１）マッピング定義の引数において、スプレッドシート上のデータ表のセルの値を参照することが指定されているフィールドの場合、データ表に付与されたインデクスと同じインデクス番号を付与される。マッピング定義の引数が固定値またはシステムのメニューの値が指定されているフィールドのデータ及び引数の指定がされていないフィールドのデータは、同じレコードのスプレッドシート上のデータ表のセルの値を参照することが指定されているフィールドと同じインデクス番号を付与する。
【０２０８】
（２）マッピング定義の引数の指定がない場合、データベースのテーブルから取得したレコードを取得した順番に各フィールドにインデクスを付与する。
【０２０９】
図２７、図２８、図２９、図３０の右はそれぞれ、データ表５０００，５２００，５４００，５６００に対応するデータベースのテーブル６０００，６２００，６４００，６６００を示している。データベースのテーブル６０００，６２００，６４００，６６００の各レコードには、データ表５０００，５２００，５４００，５６００における対応するセルと同じインデクスが付与されている。これらデータベースのテーブル６０００，６２００，６４００，６６００については、図２１、図２２、図２３、図２４を用いて既に説明済みであるので、ここでは詳細な説明を省略する。
【０２１０】
次に、データ表作成部１１３０が、データベースにおいて各データ項目に属する各レコードに格納されているそれぞれのデータを、データ表における対応するデータ項目が有するセルのうち、当該レコードと同一のインデクスを付与されたセルに書き込むことによって、データ表を作成する。ただし、同時に書き込むデータは、マッピング定義１２００で定義されたグループ毎に行う。このため、データ表作成部１１３０は、図１６や図１７に示されるようなマッピング定義１２００において定義されているグループ１２４０を確認する。グループ設定がない場合には、データ書込部１１４０が、データベースからデータ表へと、すべてのデータを同時に書き込む。
【０２１１】
一方、第１のグループの引数にセル範囲が指定され、かつ第２のグループのインマッピングにその範囲が書き込み範囲として指定されている場合、データ作成部１１３０は、第１のグループの実行順序を１つ下げる。引数にセル範囲が指定され、かつ第１のグループのインマッピングにその範囲が書き込み範囲として指定されている第２のグループのデータを、引数として利用するために第１のグループよりも先にデータ表のセルに書き込む必要があるからである。
【０２１２】
データ表作成部１１３０は、このような実行順序決定処理を繰り返すことにより、すべてのグループに対して、実行順序を決定する。実行順序を後にするか先にするかの判断をできないグループもあるが、その場合、任意の順序としてよい。このような順序決定は、タイプＶＩを行うための判定を自動で行っていることに相当する。そして、決定された実行順序にしたがって、データ書込部１１４０が、データテーブルからデータ表へのデータの書き込みを行う。このように決定された実行順序にしたがってインマッピング処理を行う一例である２段階インマッピングについて、図１０および図９を用いて説明する。
【０２１３】
図１０は、２段階インマッピングの第１の類型を示している。ここでは、この第１の類型を通常パターンと称するものとする。図１０に示すデータ表７００およびデータベースのテーブル８００，９００の構造は、既に説明した通りである。
【０２１４】
図１０に一例を示す通常パターンの２段階インマッピングでは、会社マスタである第１のデータベースのテーブル９００と、内部取引明細である第２のデータベースのテーブル８００との両方からデータ表７００にデータを書き込むように定義されている。
【０２１５】
第１のデータベースのテーブル９００は、フィールドとして会社コード９１０および会社名称９２０を規定しており、会社コード９１０および会社名称９２０に、それぞれデータ９１５，９２５が書き込まれている。
【０２１６】
第２のデータベースのテーブル８００は、フィールドとして年度６１０、期間６２０、自社コード６６０、相手コード６７０、科目コード６３０、金額６４０を規定しており、これら各々に対応するデータ６１５，６２５，６６５，６７５，６３５，６４５がレコードとして書き込まれている。
【０２１７】
一方、データ表７００において、第１のデータベースのテーブル９００における会社コード９１０に対応する相手コード５８０に含まれるセル範囲５８５は、引数となるセル範囲であるので、先ずこのセル範囲５８５に、第１のデータベースのテーブル９００の会社コード９１０に書き込まれているデータ９１５を書き込む。その後、第２のデータベースのテーブル８００の金額６４０に書き込まれたデータ６４５から、データ表７００のセル範囲５３５へのインマッピングが、セル範囲５８５に書き込まれたデータを引数としてなされる。
【０２１８】
このように、金額６４０の引数にセル範囲５８５が指定され、金額６４０のインマッピングにセル範囲５８５が書き込み範囲として指定されている場合、データ表作成部１１３０は、金額６４０に書き込まれたデータ６４５から、セル範囲５３５へのインマッピング処理の実行順序を、会社コード９１０に書き込まれたデータ９１５から、セル範囲５９５へのインマッピング処理よりも１つ下げる。
【０２１９】
このように、本類型では、第１のデータベースのテーブル９００から会社コード９１０に書き込まれたデータ９１５を、データ表７００のセル範囲５８５に書き込む１段階目のインマッピング（Ａ３４５）と、第２のデータベースのテーブル８００の金額６４０に書き込まれたデータ６４５を、データ表７００のセル範囲５３５に書き込む２段階目のインマッピング（Ａ３５０）とによって、インマッピング処理を行う。
【０２２０】
なお、１段階目のインマッピングは、テーブル型の非検索型に、２段階目のインマッピングは、マトリクス型のインマッピングに相当する。
【０２２１】
次に、図３２を用いて、２段階インマッピングの第２の類型について説明する。図３２に示すような第２の類型は、入力キー・パターンと称するものとする。
【０２２２】
図３２に一例を示す入力キー・パターンの２段階インマッピングでは、データベースのテーブル８００からデータ表７００にデータを書き込むように定義されている。図３２に示すデータ表７００およびデータベースのテーブル８００の構造は、図９を用いて既に説明した通りである。
【０２２３】
データ表７００における相手コード５８０として、セル範囲５８５に、データベースのテーブル８００の相手コード６７０に書き込まれているデータ６７５を書き込み、さらに、セル範囲５８５に書き込まれたデータ（相手コード）と、科目コード５１０に属するセル範囲５１５に書き込まれているデータとに応じて、セル範囲５３５の各セルに対応する金額を、データベースのテーブル８００の金額６４０に書き込まれたデータ６４５から書き込むためには、１段階目として、データベースのテーブル８００における相手コード６７０に書き込まれたデータ６７５を、データ表７００における相手コード５８０のセル範囲５８５に書き込むインマッピング（Ａ３３０）を行い、２段階目として、データベースのテーブル８００における金額６４０に書き込まれたデータ６４５を、データ表７００における対応するセル範囲５３５に書き込むインマッピング（Ａ３５０）とを行う必要がある。
【０２２４】
２段階目のインマッピングでは、セル範囲５８５に書き込まれたデータを引数として行う。そのため、１段階目のインマッピングにおいて、データ表７００のセル範囲５８５に、データベースのテーブル８００の相手コード６７０に書き込まれているデータ６７５を書き込む。
【０２２５】
この場合、金額６４０の引数としてセル範囲５８５が指定され、セル範囲５３５へのインマッピングがなされるので、金額６４０に書き込まれたデータ６４５の、セル範囲５３５へのインマッピング処理の実行順序を、相手コード６７０に書き込まれたデータ６７５のセル範囲５８５へのインマッピング処理の実行順序よりも１つ下げる。ここで、１段階目のインマッピング（Ａ３３０）はテーブル型かつ非検索型のインマッピングに、２段階目のインマッピング（Ａ３５０）は、マトリクス型のインマッピングに該当する。
【０２２６】
さらに、第２の類型に属する２段階インマッピングでは、１段階目のインマッピングと、２段階目のインマッピングとが、以下の３つの条件、すなわち、（１）実行順序が２番目以降とされたグループのインマッピングについて、データ表のタイプ判定において、マトリクス型と判定された場合、（２）引数に指定されている横方向のセル範囲、または縦方向のセル範囲が、他グループのインマッピングの書き込み範囲に指定されている場合、（３）次グループと同じデータベースからインマッピングする場合、を満たしている場合、１段階目のインマッピングについて、重複削除のインマッピングを行う。このような重複削除のインマッピングによってなされるデータの書き込みを、図３１を用いて説明する。
【０２２７】
図３１は、重複削除のインマッピングを説明するために、図９におけるＡ３３０の処理が、相手コード６７０に書き込まれたデータ６７５を認識する処理Ａ３３０−１と、重複が省かれたデータ６７７を得る処理Ａ３３０−２と、データ６７７のデータ表７００への書き込みを行う処理Ａ３３０−３とを備えていることを示している。
【０２２８】
すなわち、データベースのテーブル８００に書き込まれたままの状態では、相手コード６７０に書き込まれたデータ６７５の中には、同じデータが何度も登場する（Ａ３３０−１）。したがって、このままの状態でデータを書き込むと、ユーザが所望するデータ表７００が得られない。したがって、データ６７７に示すように、相手コード６７０に含まれるデータ６７５から、重複するものを除く処理を行う（Ａ３３０−２）。実際、相手コード６７０に書き込まれたデータ６７５の中には３種類のデータ、すなわち、「Ｃ２０００」、「Ｃ３０００」、および「Ｃ４０００」しか存在しないので、重複するものが除かれた結果、データ６７７に示されるように、３つのデータに集約される。このように集約された３つのデータがデータ表７００のセル範囲５８５に書き込まれる（Ａ３３０−３）。
【０２２９】
本実施形態によれば、このようにして、適切にインマッピング処理を行うようにしている。
【０２３０】
上述したように、本願の実施形態に係るマッピング方法が適用されたマッピング装置によれば、アウトマッピング時に、セル範囲とテーブルのフィールド名の紐づけだけの情報から、表の形式を自動判定し、レコードを適切に自動で作成することができる。
【０２３１】
また、データ表の型式がテーブル型であるかマトリクス型であるかに基づいて、アウトマッピング時におけるデータベースへ格納するレコードの作成方法や、インマッピング時におけるデータベースからデータ表へのデータの書き込み方法の判断を、プログラムが自動的に行うことができる。
【０２３２】
さらには、複数のグループを含むインマッピング処理の場合であっても、どのグループからインマッピング処理を実施するのかを自動的に判断することができる。
【０２３３】
以上のことから、ユーザは、データベースの構成を気にすることなく、データ表を直観的に自由に設計することが可能となる。
【０２３４】
また、本願の実施形態に係るマッピング方法が適用されたマッピング装置によれば、データベースに書き込まれたデータを、データ表のセルに書き込むインマッピング処理を行う場合、データ項目とインデクスに基づいてデータの書き込みがなされる。
【０２３５】
このような書き込み方式によって、データ表におけるセルの位置情報（行、列）に基づいてデータの書き込みを行う従来方式よりも、より高速にデータの書き込みを行うことが可能となる。
【０２３６】
これによって、ユーザは、従来よりも短時間で、必要な情報をデータベースに収集したり、所望する目的に適した構成を有するデータ表を、より容易に作成することが可能となり、集計作業の効率化や、分析効率の向上を図ることが可能となる。
【０２３７】
これらのことにより、ユーザの利便性の向上のみならず、データ収集効率および生産性の向上にも寄与することができ、もって、ユーザは、データの利活用により資源（時間・人）を投入することが可能となり、ビジネス等の業務をより分析的、効果的、かつ経済的に実施することが可能となる。
【０２３８】
以上、本発明を実施するための最良の形態について、添付図面を参照しながら説明したが、本発明はかかる構成に限定されない。特許請求の範囲の発明された技術的思想の範疇において、当業者であれば、各種の変更例及び修正例に想到し得るものであり、それら変更例及び修正例についても本発明の技術的範囲に属するものと了解される。
【産業上の利用可能性】
【０２３９】
業務用ソフトウェアで、データを多数の人から集めるシステム。例えば連結会計システム。
【符号の説明】
【０２４０】
１００  テーブル
１４０  社員名
１６０  給与
２００  テーブル
２２０  部門
２４０  部門名
２６０  所在地
３００  テーブル
４００  住所録テーブル
４２０  レコード
４４０  フィールド
５００  データ表
５１０  科目コード
５１５  セル範囲
５２０  科目名称
５２５  セル範囲
５３０  金額
５３５  セル範囲
５４０  備考
５４５  セル範囲
５５０  年度
５５５  セル範囲
５６０  期間
５６５  セル範囲
５７０  自社
５７５  セル範囲
５８０  相手コード
５８５  セル範囲
５９５  セル範囲
５９８  セル範囲
６００  データベースのテーブル
６１０  年度
６１５  データ
６２０  期間
６２５  データ
６３０  科目コード
６３５  データ
６４０  金額
６４５  データ
６５０  備考
６５５  データ
６６０  自社コード
６６５  データ
６７０  相手コード
６７５  データ
６７７  データ
７００  データ表
８００  データベースのテーブル
９００  データベースのテーブル
９１０  会社コード
９１５  データ
９２０  会社名
９２５  データ
１０００  マッピング装置
１０２０  入力部
１０３０  表示部
１０４０  全体制御部
１０５０  マッピング定義部
１０６０  メタ定義データ作成部
１０７０  アウトマッピング設定部
１０８０  インマッピング設定部
１０９０  データ表判定部
１１００  アウトマッピング・インデクス付与部
１１１０  レコード構成決定部
１１２０  インマッピング・インデクス付与部
１１３０  データ表作成部
１１４０  データ書込部
１２００  マッピング定義
１２０２  マッピング定義
１２１０  セル範囲名称
１２１５  データ
１２２０  セル範囲
１２２５  データ
１２３０  フィールド論理名称
１２４０  グループ
１２５０  引数設定
１２５５  設定内容
１３００  メタ定義データ
１３１０  フィールド論理名称
１３１５  データ
１３２０  データ型
１３３０  データ長
１３４０  小数桁
１３６０  必須
２０２０  記憶装置
２０４０  メタ定義テーブル
２０６０  明細テーブル作成プロシージャ
２０８０  明細テーブル
２０９０  明細テーブル構成
２０９２  フィールド論理名称
２０９４  データ型
３１００  テーブル選択ボタン
３１２０  引数設定画面
３１２２  年度
３１２３  設定
３１２４  期間
３１２５  設定
３１２６  科目コード
３１２７  設定
５０００  データ表
５０２０  セル範囲
５０４０  セル範囲
５０６０  セル範囲
５０８０  セル範囲
５１００  セル範囲
５２００  データ表
５２２０  セル範囲
５２４０  セル範囲
５２６０  セル範囲
５２８０  セル範囲
５３００  セル範囲
５４００  データ表
５４２０  セル範囲
５４４０  セル範囲
５４６０  セル範囲
５４８０  セル範囲
５５００  セル範囲
５６００  データ表
５６２０  セル範囲
５６４０  セル範囲
５６６０  セル範囲
５６８０  セル範囲
５７００  セル範囲
５８００  データ表
５８２０  セル範囲
５８４０  セル範囲
５８６０  セル範囲
５９００  データ表
５９２０  セル範囲
５９４０  セル範囲
５９６０  セル範囲
６０００  データベースのテーブル
６０２０  データ項目
６０４０  データ項目
６０６０  データ項目
６０８０  データ項目
６１００  データ項目
６２００  データベースのテーブル
６２２０  フィールド
６２４０  フィールド
６２６０  フィールド
６２８０  フィールド
６３００  フィールド
６４００  データベース
６４２０  フィールド
６４４０  フィールド
６４６０  データ項目
６４８０  フィールド
６５００  フィールド
６６００  データベースのテーブル
６６２０  フィールド
６６４０  フィールド
６６６０  フィールド
６６８０  フィールド
６７００  フィールド
【要約】
【課題】ユーザが表計算ソフトを用いて作成したデータ表のレイアウトに基づいて、適切な構造を有するデータベースを自動的に作成すること。
【解決手段】複数のセルを含むセル範囲5220,5240,5260,5280,5300を、複数配置して構成されるデータ表5200のセルの各々について、データ項目毎にインデクス0〜4を付与し、各セルに書き込まれたデータを格納するために、格納されるデータが属する各データ項目が有するレコードの数が全て同一となるようにデータベースのテーブル6200の構造を決定し、テーブル6200において、各レコードに、データ表5200における対応するセルに付与されたインデクスと同じインデクス0〜4を付与し、データ表5200において各セルに書き込まれているデータを、テーブル6200における対応するレコードのうち、当該セルと同一のインデクスを付与されたレコードに書き込むことによって、テーブル6200を構築する。
【選択図】図２２【図１】
0006037577.tif 000002
【図２】
0006037577.tif 000003
【図３】
0006037577.tif 000004
【図４】
0006037577.tif 000005
【図５】
0006037577.tif 000006
【図６】
0006037577.tif 000007
【図７】
0006037577.tif 000008
【図８】
0006037577.tif 000009
【図９】
0006037577.tif 000010
【図１０】
0006037577.tif 000011
【図１１】
0006037577.tif 000012
【図１２】
0006037577.tif 000013
【図１３】
0006037577.tif 000014
【図１４】
0006037577.tif 000015
【図１５】
0006037577.tif 000016
【図１６】
0006037577.tif 000017
【図１７】
0006037577.tif 000018
【図１８】
0006037577.tif 000019
【図１９】
0006037577.tif 000020
【図２０】
0006037577.tif 000021
【図２１】
0006037577.tif 000022
【図２２】
0006037577.tif 000023
【図２３】
0006037577.tif 000024
【図２４】
0006037577.tif 000025
【図２５】
0006037577.tif 000026
【図２６】
0006037577.tif 000027
【図２７】
0006037577.tif 000028
【図２８】
0006037577.tif 000029
【図２９】
0006037577.tif 000030
【図３０】
0006037577.tif 000031
【図３１】
0006037577.tif 000032
【図３２】
0006037577.tif 000033