(57)【要約】  【課題】結合セルを用いて階層構造を持つようにつくられている表であってもデータ検出できるようにする。  【解決手段】  行列で区画される複数のセルのそれぞれを単位として数値データが入力される店舗別売上げ表は，小項目と小項目が属する大項目とを含む。大項目は結合セルに入力されており，数値データは階層構造を持つ複数の項目で特定される。インデックス作成装置は結合セルを検出し（ステップ11），検出された結合セルの文字列を取得し（ステップ12），結合セルの結合を解除し（ステップ13），結合解除されたセルのすべてに取得文字列を割り当て（ステップ14），数値データのそれぞれに行列方向の複数の項目名のすべてを対応づけた固有インデックスを作成する。上記固有インデックスに基づいて，店舗別売上げ表に含まれる特定セルの数値データが検索される。【選択図】図２
2016038844.tif 000002
【特許請求の範囲】
【請求項１】
行および列によって区画される複数のセルのそれぞれを単位として検索対象データが入力される表形式データであって，行方向および列方向の小項目が入力されたセルと，上記小項目が属する大項目が入力された結合セルとを含み，上記検索対象データのそれぞれが階層構造を持つ複数の項目によって特定される表形式データの入力を受け付ける表形式データ入力手段，
受け付けられた表形式データに含まれる結合セルを検出する結合セル検出手段，
検出された結合セルの大項目を表す文字列を取得する項目取得手段，
検出された結合セルの結合を解除する解除手段，
結合が解除されたセルのすべてに，上記項目取得手段によって取得された大項目を割り当てる割り当て手段，ならびに
検索対象データのそれぞれに，行方向および列方向の複数の項目のすべてを対応づけたインデックス・データを作成するインデックス・データ作成手段，
を備えるインデックス作成装置。
【請求項２】
上記インデックス・データ作成手段によって作成されるインデックス・データを記憶するメモリを備えている，
請求項１に記載のインデックス作成装置。
【請求項３】
行および列によって区画される複数のセルのそれぞれを単位として検索対象データが入力される表形式データであって，行方向および列方向の小項目が入力されたセルと，上記小項目が属する大項目が入力された結合セルとを含み，上記検索対象データのそれぞれが階層構造を持つ複数の項目によって特定される表形式データの入力をデータ入力手段によって受け付け，
受け付けられた表形式データに含まれる結合セルを結合セル検出手段によって検出し，
検出された結合セルの大項目を表す文字列を項目取得手段によって取得し，
検出された結合セルの結合を解除手段によって解除し，
結合が解除されたセルのすべてに，上記項目取得手段によって取得された大項目を割り当て手段によって割り当て，
検索対象データのそれぞれに，行方向および列方向の複数の項目のすべてを対応づけたインデックス・データをインデックス・データ作成手段によって作成する，
インデックス作成方法。
【請求項４】
行および列によって区画される複数のセルのそれぞれを単位として検索対象データが入力される表形式データであって，行方向および列方向の小項目が入力されたセルと，上記小項目が属する大項目が入力された結合セルとを含み，上記検索対象データのそれぞれが階層構造を持つ複数の項目によって特定される表形式データの入力を受け付けるデータ入力処理，
受け付けられた表形式データに含まれる結合セルを検出する結合セル検出処理，
検出された結合セルの大項目を表す文字列を取得する項目取得処理，
検出された結合セルの結合を解除する解除処理，ならびに
結合が解除されたセルのすべてに，上記取得された大項目を割り当てる割り当て処理，
検索対象データのそれぞれに，行方向および列方向の複数の項目名のすべてを対応づけたインデックス・データを作成するインデックス・データ作成処理をコンピュータに実行させる，
コンピュータ読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は，表形式で表されたデータについてのデータ検索（データ抽出を含む。以下同じ）に用いられるインデックスを作成する装置に関する。また，この発明は，表形式で表されたデータについてのデータ検索に用いられるインデックスを作成する方法，およびインデックスを作成するようにコンピュータを制御するプログラムに関する。
【背景技術】
【０００２】
表計算ソフトウエアは，一般に行および列によって区画されるセルを単位として入力される複数の数値データを，あらかじめ設定される計算式にしたがって自動計算してその結果を表示する数値計算機能を備えている。数値計算機能のみならず，複数のデータの中から抽出条件に沿うデータを抽出したり，データの順番を並べ替えたりするデータベース機能も表計算ソフトウエアには備えられているのが一般的である。
【０００３】
表示される表（シート）を見やすくするために，大項目，中項目，小項目などを使って項目を階層構造で作成することがある（特許文献１参照）。階層構造は，一般に隣接する複数のセルを結合して結合セルを作成し，この結合セルに，大項目名称，中項目名称を入力する（対応づける）ことで実現される。
【０００４】
結合セルを用いて階層構造の項目を持つ表を表現することで，たとえば各セルに入力されている数値が何を意味する値であるのかを，小項目のみならず，中項目，大項目から把握することができ，分かりやすい表となる。しかしながら，見る者が把握しやすい表は，コンピュータによるデータ検索に適さないものとなることがある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−２５９５８４号公報
【発明の開示】
【０００６】
この発明は，結合セルを用いて階層構造を持つようにつくられている表であっても，データ検索できるようにすることを目的とする。
【０００７】
この発明によるインデックス作成装置は，行および列によって区画される複数のセルのそれぞれを単位として検索対象データ，たとえば数値データが入力される表形式データであって，行方向および列方向の小項目が入力されたセルと，上記小項目が属する大項目が入力された結合セルとを含み，上記検索対象データのそれぞれが階層構造を持つ複数の項目によって特定される表形式データの入力を受け付けるデータ入力手段，受け付けられた表形式データに含まれる結合セルを検出する結合セル検出手段，検出された結合セルの大項目を表す文字列を取得する項目取得手段，検出された結合セルの結合を解除する解除手段，結合が解除されたセルのすべてに，上記項目取得手段によって取得された大項目を割り当てる割り当て手段，ならびに検索対象データのそれぞれに，行方向および列方向の複数の項目のすべてを対応づけたインデックス・データを作成するインデックス・データ作成手段を備えている。
【０００８】
この発明によるインデックス作成方法は，行および列によって区画される複数のセルのそれぞれを単位として検索対象データが入力される表形式データであって，行方向および列方向の小項目が入力されたセルと，上記小項目が属する大項目が入力された結合セルとを含み，上記検索対象データのそれぞれが階層構造を持つ複数の項目によって特定される表形式データの入力をデータ入力手段によって受け付け，受け付けられた表形式データに含まれる結合セルを結合セル検出手段によって検出し，検出された結合セルの大項目を表す文字列を項目取得手段によって取得し，検出された結合セルの結合を解除手段によって解除し，結合が解除されたセルのすべてに，上記項目取得手段によって取得された大項目を割り当て手段によって割り当て，検索対象データのそれぞれに，行方向および列方向の複数の項目のすべてを対応づけたインデックス・データをインデックス・データ作成手段によって作成する。
【０００９】
この発明はインデックス・データの作成処理をコンピュータに実行させるコンピュータ読み取り可能なプログラムも提供する。
【００１０】
この発明によると，検索対象データのそれぞれを階層構造を持つ複数の項目によって特定する結合セルを含む表形式データが入力されると，上記結合セルの結合が解除され，結合が解除されたセルのすべてに結合セルの大項目が割り当てられる。項目の階層構造は，小項目および大項目の２階層のみならず，小項目，中項目および大項目の３階層，それ以上の階層であってもよい。いずれにしても結合セルの結合が解除され，結合が解除されたセルには結合セルの項目（中項目，大項目）が割り当てられる。
【００１１】
検索対象データに対して，行方向および列方向に並ぶ複数の項目が対応づけられたインデックス・データが作成される。上述のように，結合セルの結合が解除され，結合が解除された複数のセルには大項目が格納されているので，検索対象データが格納されているセルを含むレコード（行データ）に含まれる複数の項目（小項目および大項目）と，そのセルを含むフィールド（列データ）に含まれる複数の項目（小項目および大項目）とを抽出し，それを検索対象データに対応づければよい。結合セルを含んで作成されている表形式データではなく，表形式データから作成されるインデックス・データを用いて上記表形式データに含まれる検索対象データの検索処理が行われる。インデックス・データを用いることで，結合セルを含んで作成されている表形式データであっても，特定の（検索条件にしたがう）検索対象データを検索することができる。
【００１２】
好ましくは，上記インデックス・データ作成手段によって作成されるインデックス・データを記憶するメモリを備えている。メモリに記憶されるインデックス・データが用いられることで，上述のように検索条件にしたがう検索対象データを即座に検索することができる。インデックス・データのメモリへの記憶は，結合セルを含む表形式データが入力されたときに行ってもよいし，データ検索処理の実行時に行ってもよい。
【図面の簡単な説明】
【００１３】
【図１】店舗別売上げ表を示す。
【図２】インデックス作成用表の作成処理を示すフローチャートである。
【図３】インデックス作成用表を示す。
【図４】固有インデックスを示す。
【図５】インデックス作成装置のハードウエア構成を示すブロック図である。
【実施例】
【００１４】
図１は店舗別売上げ表（データシート，スプレッドシート）の一例を示している。
【００１５】
店舗別売上げ表10は，店舗ごとの月別売上げ金額を一覧に示すものである。分かりやすくするために，店舗別売上げ表10の欄外（枠外）に，行ごとに１から８の行番号が，列ごとにＡからＪのアルファベット文字（列記号）が，それぞれ示されている。
【００１６】
店舗別売上げ表10は表計算ソフトウエアを用いて作成されたもので，第１行から第８行の８つのレコード（行データ）を含み，各レコードはＡからＪの１０個のフィールド（列データ）を含む。行および列が交差する区画を「セル」と呼び，行番号および列記号の組合せによって各セルを特定する。たとえばセルＡ４は，第１列（Ａ列）の４行目に位置するセルを意味する。セルＢ４は第２列（Ｂ列）の４行目に位置するセルであって，セルＡ４のすぐ右のセルを意味する。セルＡ５は第１列（Ａ列）の４行目に位置するセルであって，セルＡ４の直下のセルを意味する。
【００１７】
各セルには数字，文字等を入力することができる。後述するように，隣接する複数のセルをまとめたセルの集合に，数字，文字等を入力することもできる。隣接する複数のセルをまとめた複数のセルの集合を「結合セル」と呼ぶ。
【００１８】
店舗別売上げ表10には，店舗ごとの月別売上金額が数値データによって入力されている。Ｄ列の４行〜８行の各セルに店舗名（文字列）が項目名として入力されており，各店舗名の右がわのＥ列からＪ列の各セルに，月別の，ここでは３月から８月までの店舗ごとの売上金額（数値データ）が入力されている。
【００１９】
店舗名が入力されているＤ列の左隣のＣ列にはさらに，各店舗が所在する都道府県名が項目名として入力されている。Ｃ列の左隣のＢ列にはさらに各都道府県の地域名（九州，中国，東海など）が項目名として入力されている。Ｂ列の左隣のＡ列にはさらに各地域の東西別（東日本であるか，西日本であるか）が項目名として入力されている。
【００２０】
たとえば飯塚店と穂波店はいずれも福岡県の店舗である。Ｃ列において飯塚店および穂波店が所在する地域名（福岡県）を入力するセルＣ４とセルＣ５とが結合され，この結合セルに「福岡県」の文字列が入力されている。同様にして，福岡県と熊本県は九州地域であるから，Ｂ列においてセルＢ４，Ｂ５およびＢ６が結合され，この結合セルに「九州」の文字列が入力されている。さらに九州地域と中国地域は西日本であるから，Ａ列においてセルＡ４，Ａ５，Ａ６，Ａ７が結合され，この結合セルに「西日本」の文字列が入力されている。このように，店舗名（小分類項目）に加えて，その店舗が所在する都道府県名（中分類項目），地域名（大分類項目），および東西区別（最大分類項目）を階層構造で示すことで，各店舗の所在が分かりやすく示されている。
【００２１】
３月から８月までの月が項目名として入力されている第３行の上の第２行には，各月が属する四半期名が項目名として入力されている。第１行にはさらに第２行の四半期が属する半期名が項目名として入力されている。
【００２２】
１２月１日から１１月３０日が１会計年度であるすると，１２月から５月が上半期，６月から１１月が下半期となる。さらに１２月から２月が第１四半期，３月から５月が第２四半期，６月から８月が第３四半期，９月から１１月が第４四半期となる。この場合３月，４月および５月は第２四半期に相当するので，第２行において３月，４月および５月に対応するセルＥ２，セルＦ２およびセルＧ２が結合され，この結合セルに「第２四半期」の文字列が入力されている。同様にして６月，７月および８月は第３四半期であるから，第２行において６月，７月および８月に対応するセルＨ２，セルＩ２およびセルＪ２が結合され，この結合セルに「第３四半期」の文字列が入力されている。第１行では，セルＥ１，Ｆ１，Ｇ１，Ｈ１，Ｉ１およびＪ１が結合され，この結合セルに「２００８年下半期」の文字列が入力されている。このように月（小分類項目）に加えて，その月が属する四半期（中分類項目）および半期（大分類項目）を階層構造で示すことで，売上金額を表す数値がいつの金額であるのかが分かりやすく示される。
【００２３】
上述のように，結合セルを用いて階層構造を持つ複数の項目によって数値データを特定し，かつ重複した項目を表示しないようにすると，見た目のよい，分かりやすい店舗別売上げ表10となる。しかしながら，結合セルを用いると特定のデータを検索することが難しくなる。たとえば，店舗別売上げ表10から「西日本の九州の福岡県の穂波店の２００８年下半期の第２四半期の４月の売上げ」がいくらであるかを検索しようとしても，結合セルには入力データが一つしか存在しないことから，コンピュータ（表計算ソフトウエア）は正しくデータ検索することができない，またはデータ検索処理が拒否されることがある。
【００２４】
この実施例のインデックス作成装置は，上述のような結合セルを含む表から所望のデータを正しく検索することができるようにする装置である。
【００２５】
図２は，インデックス作成装置によって実行される，結合セルを含む表データに対する処理を表すフローチャートである。インデックス作成装置は次の処理を行う。
【００２６】
（１）結合セルを検出する（ステップ11）。
（２）結合セルの文字列（中項目，大項目など）を取得する（ステップ12）。
（３）結合セルの結合を解除する（ステップ13）。
（４）結合が解除されたセルのすべてに上記ステップ12で取得した文字列を割り当てる（ステップ14）。
【００２７】
複数の結合セルを含む表データについては，結合セルのそれぞれに対して上記ステップ11からステップ14の処理が行われ，表データに含まれる結合セルのすべての結合が解除される。
【００２８】
図３は，図１に示す店舗別売上げ表10に対して上述のステップ11からステップ14の処理を行ったものを示している。すべての結合セルの結合が解除され，解除されたセルのそれぞれに結合セルの文字列が入力されている。図３に示す表を，以下，インデックス作成用表20と呼ぶ。なお，セルＡ１，Ｂ１，Ｃ１，Ｄ１，Ａ２，Ｂ２，Ｃ２およびＤ２に文字列は入力されていない。これらの８つのセルのもともとの結合セルに文字列が入力されていないからである。もっとも，文字列（項目）が入力されていない結合セル（ステップ12において文字列を取得できなかった結合セル）については，結合の解除処理（ステップ13）および結合が解除されたセルへの文字列の割当て処理（ステップ14）をスキップしてもよい。
【００２９】
インデックス作成装置はさらに，インデックス作成用表20に含まれる数値データ（店舗ごとの月別売上げ金額）のそれぞれに対して，以下に示す固有インデックスを付与する処理を行う。
【００３０】
図４は，数値データのそれぞれに対して付与される固有インデックス30を示している。
【００３１】
固有インデックス30は，インデックス作成用表20において，数値データが格納されているセルを含むレコード（行データ）に含まれる複数の文字列（項目名）と，そのセルを含むフィールド（列データ）に含まれる複数の文字列（項目名）とをすべて抽出し，数値データに関連づけたものである。図４に示す固有インデックス30では，分かりやすくするために，図３に示すインデックス作成用表20において行（横）方向に並ぶ文字列（インデックス）と，列（縦）方向に並ぶ文字列（インデックス）とを区別して示している。
【００３２】
図３および図４を参照して，たとえば図３に示すインデックス作成用表20のセル４Ｅには数値データ「１０００」が格納されている。この数値データ「１０００」が格納されているセル４Ｅを含むレコード（第４行の行データ）は，「西日本」，「九州」，「福岡県」および「飯塚店」の４つの文字列（項目）を含み，セル４Ｅを含むフィールド（第Ｅ列の列データ）は，「２００８年下半期」，「第２四半期」および「３月」の３つの文字列（項目）を含む。図４を参照して，セル４Ｅの数値データ「１０００」に対しては，これらの文字列（項目），すなわち，「西日本」，「九州」，「福岡県」，「飯塚店」，「２００８年下半期」，「第２四半期」および「３月」の７つの文字列（項目）が固有インデックス30とされる。インデックス作成用表20には３０個の数値データ（売上げ金額）が含まれているので，これら３０個の数値データのそれぞれに，上述のような固有インデックスが付与（関連づけ）される。固有インデックスはインデックス作成装置のメモリに一時的に記憶される。
【００３３】
図４に示す数値データごとの固有インデックス30を作成することで，図１に示す店舗別売上げ表10について，特定店舗の特定月の売上げ金額を即座に検索することができる。検索条件は店舗別売上げ表10に基づいて入力すればよい。店舗別売上げ表10は結合セルを用いてわかりやすく整理されているから，入力すべき検索条件は分かりやすい。
【００３４】
たとえば，「西日本の九州の熊本県の熊本店の２００８年下半期の第２四半期の３月」が検索条件として指定されると，インデックス作成装置は，図１の店舗別売上げ表10ではなく，図４の固有インデックス30を参照して，「９００」の数値データ（売上げ金額）を返答する（表示画面に表示する）。同様にして，「西日本の九州の熊本県の熊本店の２００８年下半期の第２四半期の３月から５月」が検索条件として指定されると，インデックス作成装置は，図４の固有インデックス30を参照して，「９００」，「１１００」および「１３００」を返答する。このように店舗別売上げ表10から固有インデックス30を作成することで，店舗別売上げ表10が結合セルを含んでいるとしても，検索条件にしたがうデータを即座に検索することができる。なお，検索条件としては，固有インデックス30に含まれる全ての項目名を常に指定する必要は必ずしもなく，その一部であってもよい。
【００３５】
検索によって見つかった複数の数値データに対して，所定の（指定された）数値演算または論理演算を行ない，その結果を出力（表示画面に表示）するようにしてもよい。たとえば，上述した「西日本の九州の熊本県の熊本店の２００８年下半期の第２四半期の３月から５月」が検索条件とされたときの検索結果（「９００」，「１１００」，「１３００」）の合計値（「３３００」），平均値（「１１００」），最大値（「１３００」），最小値（「９００」）などが出力される。
【００３６】
図５はインデックス作成装置のハードウエア構成を示している。インデックス作成装置40は，パーソナル・コンピュータ，スマートフォン，タブレットＰＣなどの汎用のコンピュータ装置によって実現される。インデックス作成装置40は中央演算処理装置（ＣＰＵ）41，ハードディスク42，メモリ43，入力装置44および表示装置45を備えている。ハードディスク42にオペレーティング・システム，表計算ソフトウエア，上述した結合セルの検出処理，結合セルの文字列取得処理，結合セルの解除処理，結合解除セルへの文字列割り当て処理，固有インデックス30の作成処理等を実行するプログラムなどが記憶（インストール）される。入力装置44が用いられて表計算ソフトウエアが起動され，店舗別売上げ表10，検索条件などが入力される。中央演算処理装置41が結合セルの検出，結合セルの文字列取得，結合セルの解除，結合解除セルへの文字列の割当て，固有インデックス30の作成等を実行する。店舗別売上げ表10および検索結果等は表示装置45に表示される。上記固有インデックス30は，店舗別売上げ表10を表すデータが読み込まれた（入力された）とき，または店舗別売上げ表10に対してデータ検索処理を行うときに作成されて，メモリ43に一時的に記憶される。
【符号の説明】
【００３７】
10  店舗別売上げ表
20  インデックス作成用表
30  固有インデックス
40  インデックス作成装置
41  中央演算処理装置
42  ハードディスク
43  メモリ
44  入力装置
45  表示装置
【図１】
2016038844.tif 000003
【図２】
2016038844.tif 000004
【図３】
2016038844.tif 000005
【図４】
2016038844.tif 000006
【図５】
2016038844.tif 000007