(57)【特許請求の範囲】
【請求項１】
流し込み先の表計算データの行ごと及び列ごとに、当該行又は列に含まれるセルのうち流し込み元の表計算データにおいて指定された見出し行の各セルとセル内容が対応するセルの個数を求め、求めた対応するセルの個数が最大の行又は列を前記流し込み先の表計算データの見出し行又は見出し列と判定すると共に、前記流し込み先の表計算データのうち、判定した前記見出し行又は見出し列の次の行又は列をサンプル行又はサンプル列と判定する判定手段と、
前記流し込み先の表計算データの前記サンプル行又はサンプル列の次に、当該サンプル行又はサンプル列をコピーしたコピー行又はコピー列を挿入することにより、サンプル行又はサンプル列とコピー行又はコピー列との合計数が、前記流し込み元の表計算データのデータ行の数と等しくなるようにすると共に、前記流し込み先の表計算データの中に前記サンプル行又はサンプル列より後のセルを参照しているセルがある場合、当該参照しているセルの参照先を、前記挿入したコピー行又はコピー列の数だけ後にずらすコピー手段と、
前記判定手段が判定した見出し行又は見出し列と前記流し込み元の表計算データの前記見出し行との間でセル内容が対応するセルを流し込み対象見出しと判定し、前記流し込み元の表計算データに含まれる各データ行の前記流し込み対象見出しに該当する各セルのセル内容を、前記流し込み先の表計算データ内の前記サンプル行又サンプル列と各コピー行又はコピー列の、対応する前記流し込み対象見出しに該当するセルに流し込む流し込み手段と、
を備える表計算データ処理装置。
【請求項２】
前記流し込み手段は、前記流し込み先の表計算データの前記見出し行又は見出し列にセル内容が空のセルがある場合、当該セルが、当該セルの前の直近の空でないセルのセル内容を有するものとみなして、前記流し込み対象見出しを判定する、ことを特徴とする請求項１に記載の表計算データ処理装置。
【請求項３】
前記判定手段は、流し込み先の表計算データの行ごと及び列ごとに、当該行又は列に含まれるセルのうち流し込み元の表計算データにおける見出し行の各セルとセル内容が一致するセルの個数を求める際に、当該行又は列に含まれるセルが空の場合は、当該セルのセル内容が当該セルの前の直近の空でないセルのセル内容と等しいと取り扱う、ことを特徴とする請求項１又は２に記載の表計算データ処理装置。
【請求項４】
前記コピー手段は、前記流し込み先の表計算データ内において、前記見出し行又は見出し列の後に同じデータ構造のデータ行又はデータ列が１以上あり、計算対象のセル範囲の前端及び後端としてそれら同じデータ構造のデータ行又はデータ列の最初と最後の行又列を指定する範囲指定を含んだ計算式が含まれる場合に、当該計算式における前記範囲指定が示す範囲の後端を、挿入したコピー行又はコピー列の数だけ後にずらす、ことを特徴とする請求項１〜３のいずれか１項に記載の表計算データ処理装置。
【請求項５】
コンピュータを、
流し込み先の表計算データの行ごと及び列ごとに、当該行又は列に含まれるセルのうち流し込み元の表計算データにおいて指定された見出し行の各セルとセル内容が対応するセルの個数を求め、求めた対応するセルの個数が最大の行又は列を前記流し込み先の表計算データの見出し行又は見出し列と判定すると共に、前記流し込み先の表計算データのうち、判定した前記見出し行又は見出し列の次の行又は列をサンプル行又はサンプル列と判定する判定手段、
前記流し込み先の表計算データの前記サンプル行又はサンプル列の次に、当該サンプル行又はサンプル列をコピーしたコピー行又はコピー列を挿入することにより、サンプル行又はサンプル列とコピー行又はコピー列との合計数が、前記流し込み元の表計算データのデータ行の数と等しくなるようにすると共に、前記流し込み先の表計算データの中に前記サンプル行又はサンプル列より後のセルを参照しているセルがある場合、当該参照しているセルの参照先をｍだけ後にずらすコピー手段、
前記判定手段が判定した見出し行又は見出し列と前記流し込み元の表計算データの前記見出し行との間でセル内容が対応するセルを流し込み対象見出しと判定し、前記流し込み元の表計算データに含まれる各データ行の前記流し込み対象見出しに該当する各セルのセル内容を、前記流し込み先の表計算データ内の前記サンプル行又サンプル列と各コピー行又はコピー列の、対応する前記流し込み対象見出しに該当するセルに流し込む流し込み手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表計算データ処理装置及びプログラムに関する。
【背景技術】
【０００２】
マイクロソフト社のＥｘｃｅｌ（登録商標）等の表計算ソフトウエアが普及している。業務遂行にあたり、各種の業務データを表計算ソフトウエアで作成し、作成した表計算データ（スプレッドシートとも呼ばれる）を、後での閲覧、検証、再利用等のために保存することもよく行われている。ここで、保存した表計算データ内のデータの一部を抽出し、表構造の異なる他の表計算データを作成したいというニーズがある。このようなニーズのために、表計算データを、他の表計算データに流し込むための装置が各種提案されている。
【０００３】
特許文献１に記載されるデータ処理装置は、見出しのみ記入した流し込み先の表計算データと、流し込み元の表計算データとを用意しておくことを前提としている。この装置は、流し込み元と流し込み先とで見出しが一致する列について、流し込み元のデータを流し込み先にコピーする。
【０００４】
特許文献２に記載されるデータ処理装置では、流し込み先の表計算データの中のサンプル行をユーザが指定する。データ処理装置は、流し込み先の表計算データにおいて、指定されたサンプル行を、流し込み元の表計算データのデータ行から１を引いた数だけコピーする。このとき、背景色等のスタイル情報はコピーされるが、サンプル行のセルに含まれる計算式等のセル内容はコピーされない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平６−３３２８９０号公報
【特許文献２】特開平６−３３２８９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、ユーザが明示的に指定しなくても流し込み先の表計算データの見出し及びサンプルの行又は列を判定すると共に、流し込み先の表計算データ内に存在するセル参照が流し込み後も有効になるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
請求項１に係る発明は、流し込み先の表計算データの行ごと及び列ごとに、当該行又は列に含まれるセルのうち流し込み元の表計算データにおいて指定された見出し行の各セルとセル内容が対応するセルの個数を求め、求めた対応するセルの個数が最大の行又は列を前記流し込み先の表計算データの見出し行又は見出し列と判定すると共に、前記流し込み先の表計算データのうち、判定した前記見出し行又は見出し列の次の行又は列をサンプル行又はサンプル列と判定する判定手段と、前記流し込み先の表計算データの前記サンプル行又はサンプル列の次に、当該サンプル行又はサンプル列をコピーしたコピー行又はコピー列を挿入することにより、サンプル行又はサンプル列とコピー行又はコピー列との合計数が、前記流し込み元の表計算データのデータ行の数と等しくなるようにすると共に、前記流し込み先の表計算データの中に前記サンプル行又はサンプル列より後のセルを参照しているセルがある場合、当該参照しているセルの参照先を、前記挿入したコピー行又はコピー列の数だけ後にずらすコピー手段と、前記判定手段が判定した見出し行又は見出し列と前記流し込み元の表計算データの前記見出し行との間でセル内容が対応するセルを流し込み対象見出しと判定し、前記流し込み元の表計算データに含まれる各データ行の前記流し込み対象見出しに該当する各セルのセル内容を、前記流し込み先の表計算データ内の前記サンプル行又サンプル列と各コピー行又はコピー列の、対応する前記流し込み対象見出しに該当するセルに流し込む流し込み手段と、を備える表計算データ処理装置である。
【０００８】
請求項２に係る発明は、前記流し込み手段は、前記流し込み先の表計算データの前記見出し行又は見出し列にセル内容が空のセルがある場合、当該セルが、当該セルの前の直近の空でないセルのセル内容を有するものとみなして、前記流し込み対象見出しを判定する、ことを特徴とする請求項１に記載の表計算データ処理装置である。
【０００９】
請求項３に係る発明は、前記判定手段は、流し込み先の表計算データの行ごと及び列ごとに、当該行又は列に含まれるセルのうち流し込み元の表計算データにおける見出し行の各セルとセル内容が一致するセルの個数を求める際に、当該行又は列に含まれるセルが空の場合は、当該セルのセル内容が当該セルの前の直近の空でないセルのセル内容と等しいと取り扱う、ことを特徴とする請求項１又は２に記載の表計算データ処理装置である。
【００１０】
請求項４に係る発明は、前記コピー手段は、前記流し込み先の表計算データ内において、前記見出し行又は見出し列の後に同じデータ構造のデータ行又はデータ列が１以上あり、計算対象のセル範囲の前端及び後端としてそれら同じデータ構造のデータ行又はデータ列の最初と最後の行又列を指定する範囲指定を含んだ計算式が含まれる場合に、当該計算式における前記範囲指定が示す範囲の後端を、挿入したコピー行又はコピー列の数だけ後にずらす、ことを特徴とする請求項１〜３のいずれか１項に記載の表計算データ処理装置である。
【００１１】
請求項５に係る発明は、コンピュータを、流し込み先の表計算データの行ごと及び列ごとに、当該行又は列に含まれるセルのうち流し込み元の表計算データにおいて指定された見出し行の各セルとセル内容が対応するセルの個数を求め、求めた対応するセルの個数が最大の行又は列を前記流し込み先の表計算データの見出し行又は見出し列と判定すると共に、前記流し込み先の表計算データのうち、判定した前記見出し行又は見出し列の次の行又は列をサンプル行又はサンプル列と判定する判定手段、前記流し込み先の表計算データの前記サンプル行又はサンプル列の次に、当該サンプル行又はサンプル列をコピーしたコピー行又はコピー列を挿入することにより、サンプル行又はサンプル列とコピー行又はコピー列との合計数が、前記流し込み元の表計算データのデータ行の数と等しくなるようにすると共に、前記流し込み先の表計算データの中に前記サンプル行又はサンプル列より後のセルを参照しているセルがある場合、当該参照しているセルの参照先をｍだけ後にずらすコピー手段、前記判定手段が判定した見出し行又は見出し列と前記流し込み元の表計算データの前記見出し行との間でセル内容が対応するセルを流し込み対象見出しと判定し、前記流し込み元の表計算データに含まれる各データ行の前記流し込み対象見出しに該当する各セルのセル内容を、前記流し込み先の表計算データ内の前記サンプル行又サンプル列と各コピー行又はコピー列の、対応する前記流し込み対象見出しに該当するセルに流し込む流し込み手段、として機能させるためのプログラムである。
【発明の効果】
【００１２】
請求項１又は５に係る発明によれば、ユーザが明示的に指定しなくても流し込み先の表計算データの見出し及びサンプルの行又は列を判定すると共に、流し込み先の表計算データ内に存在するセル参照が流し込み後も有効になるようにすることができる。
【００１３】
請求項２に係る発明によれば、流し込み先のサンプル行又はコピー行のうち、判定された見出し行又は見出し列内の空のセルに対応するセルに対しても、流し込み元の該当するセルのデータを流し込むことができる。
【００１４】
請求項３に係る発明によれば、この発明を用いない場合と比べて、見出し行又は見出し列を正しく判定することができる。
【００１５】
請求項４に係る発明によれば、流し込み先の見出し行又は見出し列の後に続くデータ行又はデータ列を範囲として指定する範囲指定を、コピー行の挿入に応じて適切に修正することができる。
【図面の簡単な説明】
【００１６】
【図１】実施の形態の表計算データ処理装置の一例の概略構成を示す図である。
【図２】流し込み先の表計算データの一例を示す図である。
【図３】図２の表計算データ内の計算式を評価した結果を示す図である。
【図４】流し込み元の表計算データの一例を示す図である。
【図５】流し込み元の表計算データの別の一例を示す図である。
【図６】図２の流し込み先の表計算データに対して、サンプル行のコピーを挿入した結果を示す図である。
【図７】図６のコピー挿入後の表計算データに対して、図３の流し込み元の表計算データを流し込んだ結果を示す図である。
【図８】流し込み先の表計算データ中のサンプル及びコピー行以外にある参照の記述を調整した結果を示す図である。
【図９】流し込み先の表計算データ中の範囲指定の記述を調整した結果を示す図である。
【図１０】図９の表計算データを流し込み先とし、これに図５の流し込み元の表計算データを流し込んだ結果を示す図である。
【図１１】図１０の表計算データ内の計算式を評価した結果を示す図である。
【図１２】２行に跨る見出しを含んだ見出し行の例を示す図である。
【発明を実施するための形態】
【００１７】
図１に、この実施の形態の表計算データ処理装置１０の一例の概略構成を示す。ここでは、説明の煩雑さを避けるために、流し込み元及び流し込み先の表計算データの見出しが、共に行方向に並んでいる場合についての流し込み処理について説明する。
【００１８】
図１に示す表計算データ処理装置１０は、見出し・サンプル行判定部１２，サンプル行コピー部１４，及び流し込み部１６を備える。
【００１９】
この表計算データ処理装置１０には、流し込み元の表計算データと、流し込み先の表計算データが入力される。
【００２０】
流し込み元の表計算データは、典型的には、図示しないファイルシステム等に保存されている既存の表計算データファイルである。流し込み元の表計算データは、１つの見出し行と、１以上のデータ行とを含んでいる。見出し行は、当該表計算データに含まれる行のうち、１以上（一般には複数）の列見出しセルを含んだ行である。列見出しセルの各々には、当該セルの下に続くセル群の見出しである列見出しを表す文字列が含まれる。データ行には、見出し行の各列見出しに対応するセルが含まれており、それらセルにはデータ又は計算式が含まれる。計算式には、他のセルへの参照が含まれていてもよい。参照を含んだ計算式の値は、当該参照の指し示すセルにあるデータを用いて計算される。流し込み元の表計算データについては、見出し行が既知であるか、あるいはユーザが当該装置１０に対して見出し行を指定する。 
【００２１】
流し込み先の表計算データには、見出し行とサンプル行が含まれる。サンプル行は、見出し行の次（直下）にある行であり、流し込みにより作成しようとする目的の行のデータ構造を表している。すなわち、見出し行内の各列見出しに該当するセルからなり、それら各セルのデータ型は、対応する列見出しに合致したものとなっており、またそれらサンプル行内のセルの中には他のセルを参照する計算式を含んだ計算式が含まれている。流し込み処理では、流し込み元の表計算データのうち、この見出し行及びサンプル行が表すデータ構造に合った部分のデータを抽出し、流し込むことになる。サンプル行内のセルに含まれる計算式は、当該行内の他のセルのデータを参照するものであってもよいし、サンプル行以外の行に含まれるセルを参照するものであってもよいし、当該行内の他セル及び当該行外のセルの両方を参照するものであってもよい。
【００２２】
流し込み先の表計算データには、複数の見出し行が含まれていてもよい。見出し行が複数含まれる場合は、見出し行ごとに、その見出し行の直下にサンプル行が配置される。このように、流し込み先の表計算データに見出し行及びサンプル行の組が複数含まれる場合、それら組ごとに流し込み元の表計算データからのデータの流し込みを行ってもよい。
【００２３】
このような流し込み先の表計算データは、ユーザが目的に合わせて新たに作成してもよいし、既存の表計算データから目的に合うものを選択したものであってもよい。
【００２４】
見出し・サンプル行判定部１２は、入力された流し込み先の表計算データから、流し込み元の表計算データの見出し行に対応する見出し行を判定すると共に、その見出し行の次（下）の行をサンプル行として判定する。
【００２５】
サンプル行コピー部１４は、流し込み先の表計算データから判定されたサンプル行を必要な数だけコピーすることにより、流し込み先の表計算データの見出し行の次に、サンプル行と同様のデータ構造を持つ行が、流し込み元の表計算データ内のデータ行の数と同数だけ並ぶようにする。例えば、流し込み先の表計算データにおいて、見出し行の下にサンプル行が１つだけ存在し、サンプル行の下が空行の場合は、流し込み元の表計算データのデータ行の数をｍとした場合、サンプル行の下に当該サンプル行を（ｍ−１）行分コピーする。また、サンプル行の下にサンプル行と同じデータ構造の行が１以上連続する場合（言い換えれば、サンプル行が複数行ある場合）、サンプル行がｋ行あるとすると、サンプル行コピー部１４は、サンプル行を（ｍ−ｋ）行分だけコピー処理により増やすことで、見出し行の下にサンプル行と同じデータ構造を持った行（すなわち、サンプル行と、それをコピーしてできるコピー行）が合計でｍ行並ぶよう、流し込み先の表計算データを変更する。
【００２６】
流し込み部１６は、コピー行追加後の流し込み先の表計算データに対して、流し込み元の表計算データ中のデータ行群を流し込む。
【００２７】
見出し・サンプル行判定部１２、サンプル行コピー部１４及び流し込み部１６が実行する詳細な処理については、具体例を参照しつつ説明する。
【００２８】
以下では、具体例として、業務管理システム（データベース）に保存された業務データの中からある目的のために検索された検索結果の表計算データを流し込み元とし、それを、他の目的に沿った形式の流し込み先の表計算データに流し込む場合の例を説明する。企業活動においては、様々な情報を含んだ業務データの中から、分析等のために必要なデータ項目のみを抽出した一覧表を作成することがあり、各時点で作成したそのような一覧表を保存しておくことがある。このような保存された一覧表データを流し込み元とし、別の目的のための表形式に変換するというのが以下の例である。
【００２９】
より具体的には、以下では、業務管理システムからの、指定された「開始日付」と「終了日付」の間に、指定された「グループ」（企業内の部や課等の組織要素）に受け付けられた、指定された「文書種類」に属する文書の検索結果の文書一覧を流し込み元の表計算データとする。
【００３０】
一方、流し込み先の表計算データは図２に示すようなものであるとする。なお、図２のうち、先頭行のA,B,C,D及び最左列の1,2,3,4,…等の行識別符号及び列識別符号は、理解の助けのために付け加えた行/列であり、実際の表計算データに含まれない。図２の表において、セルの内容で「＝」で始まっているものは計算式である。この表計算データは、マイクロソフト社の表計算ソフトウエアのＥｘｃｅｌ（登録商標）に準拠したものであり、計算式における「A7」、「D7」等は、参照先のセルを行と列の識別符号の組合せで指定したものである。また、「”」と「“」のペアは、計算式中に含まれる文字列を指定するためのものであり、それらペアの間に含まれるデータは、計算式中で文字列として扱われる。「&」は、データ同士の結合を表す演算子である。例えば「=C7&”-“&B7」という計算式は、＜セルC7のデータ内容＞の右隣に「-」（ハイフン）が結合され、更にその右隣に＜セルB7のデータ内容＞が結合されることにより生成される文字列を示している。図２の表計算データ内の計算式が評価された結果は、図３に示すようになる。
【００３１】
この例では、図４と図５に示す２つの表計算データを流し込み元とする。
【００３２】
図４に示す表計算データは、検索結果の文書一覧表を示すものであり、最も上の行である見出し行と、その後に続く４つのデータ行とから構成される。各データ行は、見出し行に示される各列見出しが示すように、各文書（「部門サービス」グループに対する稟議書）の識別番号である「書類番号」、その文書（稟議書）の「起案者」及び「起案日」、「部門サービス」グループにおけるその文書の「受付日」及び見積もり結果の「返送日」の項目の値を含んでいる。図４の例の表計算データのデータ行の数は４（ｍ＝４）である。
【００３３】
また、図５に示す表計算データは、図４の検索結果の表計算データを求める際に使用された検索条件を示している。この検索条件は、「グループ名」、「開始日付」、「終了日付」、「文書種類」という４つの列見出しを示した見出し行と、その直下の行のデータ行とからなる。データ行が示すように、検索条件は、「部門サービス」というグループ名のグループが、開始日付「2011/9/10」から終了日付「2011/9/20」までの間に受け付けた、文書種類が「稟議書」である文書を検索するというものである。
【００３４】
この例では、流し込み先の表計算データ（図２）に対して、検索結果と検索条件の２つの流し込み元の表計算データ（図４及び図５）を流し込む。この際、各流し込み元の表計算データを１つずつ流し込む。ここでは、まず検索結果のデータ（図４）を流し込むものとして、その具体的な処理の流れを説明する。
（１）見出し・サンプル行（列）判定部１２は、流し込み先の表計算データ（図２）の各行についてそれぞれ、その行に含まれるセルと、流し込み元の表の見出し行（図４の最上の行）の各見出しのセルを比較し、内容（すなわちセル内にある文字列）が一致するセルの個数を求める。
【００３５】
ここで流し込み元の表（図４）の見出しのセルは「書類番号」「起案者」「起案日」「受付日」「返送日」であり、これと流し込み先の１行目を比較すると、セルC7の「受付日」一つが一致する。同様に流しこみ先の２行目と比較すると、セルA2「書類番号」、セルB2「受付日」、セルC2「返送日」の３つが一致する。流し込み先の他の行には、流し込み元の表の見出し行の各列見出しに一致するセル内容を含んだセルはない。
（２）見出し・サンプル行（列）判定部１２は、上記ステップ（１）での判定の結果、内容が一致するセルが多かった表計算データの行を、表計算データの見出し行とし、その見出し行の一行下の行を、サンプル行とする。
【００３６】
図２及び図４の組合せの例では、最も一致するセルが多かったのは流し込み先（図４）の表の２行目であるので、２行目が見出し行と判定され、その一行下の３行目がサンプル行と判定される。
【００３７】
また、このとき、流し込み元と流し込み元の見出し行のうち、セル内容が一致する列見出しセルを、流し込み対象と判定してもよい。例えば図２と図４のペアの例では、「書類番号」、「受付日」、「返送日」の３つの見出しが流し込み対象の見出しと判定される。この場合、図４の表が含む５つの見出しのうち、「起案者」、「起案日」は流し込み対象の項目には選択されない。
（３）サンプル行（列）コピー部１４は、流し込み先の表計算データにおいて、流し込み元のデータ行数−１（すなわち（ｍ−１））だけサンプル行をコピーし、コピーしたものをサンプル行の下に挿入する。このコピー処理では、サンプル行内の各セルのセル内容もコピーする。したがって、コピーの結果挿入されるコピー行の各列のセルには、サンプル行内の同じ列のセルと同じセル内容が含まれることになる（ただし、計算式に含まれる参照先については後述の手当をする）。
【００３８】
図４の例では流し込み元のデータ行数は４であるから、このステップではサンプル行を３行コピーし、サンプル行（図２の行「3」）の下に挿入する。以下では、「コピー」という場合、コピーした行を挿入する処理も含んだ操作を意味するものとする。
【００３９】
ここで図２の流し込み先の例では、サンプル行のD列には計算式が含まれており、その計算式には同一行内の他のセルへの相対参照が含まれている。このようなサンプル行のコピー結果において、その計算式が正しく機能するためには、挿入するコピー行の行番号に合わせて、計算式に含まれる参照先をずらす必要がある。そこで、サンプル行（列）コピー部１４は、挿入したコピー行（流し込み先の表計算データにおける当該挿入されたコピー行の行番号ｎとする）に含まれる計算式内の、同一行内の他セルへの相対参照が示す参照先セルの行番号を（ｎ−ｐ）だけ下の行番号へと変更する。ここでｐは、流し込み先の表計算データにおけるサンプル行の行番号である。例えば、新たに４行目になるコピー行においては、その行番号4からサンプル行の行番号3を引いた結果である「１」だけ、D列の計算式内の参照先の行番号をずらす（すなわちサンプル行内の計算式「B3-A3」を「B4-A4」へ変更）。同様に行番号5に挿入されたコピー行に含まれる計算式の参照先の行番号は「２」だけ下にずらす。
【００４０】
また、サンプル行内に、そのサンプル行よりも下の行のセルへの参照を含んだ計算式がある場合には、サンプル行（列）コピー部１４は、コピー行内のその参照が示す行番号を、（ｍ−１）（すなわち、流し込み元の表計算データのデータ行の数から１を引いた数）だけ下にずらす。図２及び図４のペアの例では、流し込み先のサンプル行「3」には、それよりも下の行への参照は含まれないので、この例では、下の行への参照をずらす処理は行われない。
【００４１】
このようなコピー処理の結果、図６に示す表計算データが得られる。
（４）流し込み部１６は、流し込み元の表計算データの各データ行のデータを、コピー行追加後の流し込み先の表計算データにおけるサンプル行及び追加したコピー行のうちの、対応する行に順に流し込む。すなわち、流し込み元の最初のデータ行は、流し込み先のサンプル行及びコピー行のうち最初の行へ、２番目のデータ行は２番目の行へというように、順に流し込む。
【００４２】
個々の行ごとの流し込みでは、流し込み元と流し込み先との間で見出しの内容が一致する列同士の間でデータを流し込む。見出し内容が一致する列というのは、前述した流し込み対象の見出しのことである。図２（流し込み先）と図４（流し込み元）のペアの例では、見出し「書類番号」、「受付日」及び「返送日」が一致しているので、流し込み元のデータ行の「書類番号」、「受付日」及び「返送日」の値（セル内容）を、流し込み先の対応する行の「書類番号」、「受付日」及び「返送日」に上書きする。サンプル行及びそのコピーの行には、サンプル行の「書類番号」、「受付日」及び「返送日」の値が含まれているので、それらの値に対して流し込み元のデータを上書きするのである。
【００４３】
このデータ行の流し込みの結果は図７に示すようなものとなる。図６では３〜６行目がすべて同じデータであったのが、図７の表では、３〜６行目が図４の各データ行に対応したものに変更されているのが分かる。
（５）流し込み先の表計算データ内のサンプル行（及び挿入したコピー行）以外の行に、計算式が存在し、その計算式にセル参照が含まれており、そのセル参照がサンプル行より下のセルを参照している場合は、その参照先を（ｍ−１）（すなわち流し込み元のデータ行数−１）だけ下にずらす。
【００４４】
例えば図２と図４のペアの例では、流し込み先（図２）のA1とB1にまたがるセルと、D1のセルの計算式がサンプル行（行番号「3」）より下のセルを参照しているので、流し込み元のデータ行数の4より１を引いた数である3だけ参照先を下にずらす。
【００４５】
これにより、流し込み先の表計算データは、図８に示すものとなる。
【００４６】
なお、このステップ（５）の処理は、サンプル行（列）コピー部１４及び流し込み部１６のいずれが行ってもよい。
【００４７】
上述のステップ（３）ではサンプル行内にサンプル行より下への参照がある場合について、そのサンプル行をコピーしたコピー行においてその参照先をずらす処理を行ったのに対し、このステップ（５）では、サンプル行（及びコピー行）以外にサンプル行より下への参照がある場合についての参照先のずらし処理を行う。どちらの場合も、サンプル行のコピー及び挿入により流し込み先の表計算データのデータ行が増えることに対応して、元の参照が正しい参照先を指すようにするものである。
（６）流し込み先の表計算データ中の計算式に含まれるセル参照が、計算対象のセルの範囲を指定するのに使われ、そのセル範囲の上下がサンプル行に一致する場合は、セル範囲の下限のみを（ｍ−１）だけ下にずらす。
【００４８】
図８の例ではD7のセルの計算式がこれに該当する（図２のコピー行追加前の表ではD4）。セルD7に含まれる計算式「=AVG(D3:D3)」は、上限のセルD3から下限のセルD3までのD列のセル群のデータの平均値を計算するものである。この計算式に含まれるセル参照「D3:D3」は、平均値計算の対象となるセルの範囲を指定するのに使われている。このセル範囲の上限及び下限の行番号は共にサンプル行に一致するので、このステップ（６）では、そのセル範囲の下限のみを３だけ下にずらす。これにより、セルD7に含まれる計算式「=AVG(D3:D3)」は、「=AVG(D3:D6)」に変更されることになる（図９参照）。
【００４９】
なお、このステップ（６）の処理は、サンプル行（列）コピー部１４及び流し込み部１６のいずれが行ってもよい。
【００５０】
以上の処理により、図２の流し込み先の表計算データに対する、図４の流し込み元の表計算データの流し込みが完了する。この一連の処理により、図９に示す流し込み結果の表計算データが得られる。
【００５１】
次に、この図９の流し込み結果の表計算データを流し込み先とし、図５に示す検索条件の表計算データを流し込み元として、上述のステップ（１）〜（６）の処理を実行することにより、検索条件の表の流し込みが行われる。検索条件の流し込みが完了すると、流し込み結果として、図１０に示す表計算データが得られる。図９との比較から分かるように、行番号「10」の行に対して、図５の流し込み元のデータが流し込まれている。
【００５２】
図１０の流し込み結果の表計算データに含まれる各計算式を評価（すなわち計算式内の各参照に対して参照先のデータを代入して計算実行）すると、図１１に示す表が求められる。
【００５３】
以上のようにして、図２の流し込み先の表計算データに対して、図４及び図５の２つの流し込み元の表計算データが流し込まれる。
【００５４】
なお、図２の例では、流し込み先の表計算データ内には、１つの見出し行の直下にデータ行が１つしかなく、そのデータ行をサンプル行としたが、既存の表計算データを流し込み先として利用する場合等には、１つの見出し行の下に、同じデータ構造のデータ行が複数行続く場合もあり得る。ここでデータ行同士が同じデータ構造であるとは、それらデータ行内の同じ列に、同じ計算式（ただし、計算式中の相対参照については、その相対参照中の行番号が、それらデータ行の行番号の差だけ互いにずれている）が含まれていることを意味する。
【００５５】
このような場合には、上述のステップ（２）で、それら同一データ構造のデータ行の１つ（例えば見出し行の直下のデータ行）をサンプル行とする。ステップ（３）ではそのサンプル行を（ｍ−ｋ）個だけコピーし、そのサンプル行の下に挿入する（ｍは流し込み元のデータ行数、ｋは流し込み先の中の当該見出しの下にある同一データ構造のデータ行の数）。これにより、見出し行の下に、流し込み元のデータ行と同数の、同一データ構造の行が並ぶことになる。また、サンプル行に同一行内の他セルへの参照を含んだセルがある場合、コピー行におけるそのセルの参照先の行番号を上述のサンプル行が１行しかない場合と同様にして下にずらすと共に、それら同一データ構造のデータ行のうち、サンプル行より下のデータ行に含まれる同じ列のセルの参照についても、同じように参照先の行番号を下にずらす。また、サンプル行（したがって、それと同一データ構造のすべてのデータ行）に、それら同一構造のデータ行群よりも下の行のセルへの参照を含んだ計算式がある場合には、それら各参照の参照先の行番号を、流し込み先に対してコピーにより挿入した行数（ｍ−ｋ）だけ下にずらす。ステップ（５）でも同様に、流し込み先の表計算データ内のサンプル行（及び挿入したコピー行）以外の行の、サンプル行より下のセルへの参照の参照先を、コピーにより挿入した行数（ｍ−ｋ）だけ下にずらす。また、ステップ（６）では、流し込み先の表計算データに含まれる範囲指定の範囲上限が見出し行の直下のデータ行の行番号であり、範囲下限がそのデータ行と同一データ構造のデータ群のうちの最も下のものの行番号である場合、その範囲指定の範囲下限を（ｍ−ｋ）だけ下にずらす。
もし（ｍ−ｋ）の値が負である場合には、ｋ行ある同一データ構造のデータ行のうち、（ｋ−ｍ）行を削除する。また、計算式中の参照について上記で「（ｍ−ｋ）だけ下にずらす」としたものは、「（ｋ−ｍ）だけ上にずらす」とする。
【００５６】
ところで、図１２に示すように、流し込み先の表計算データ上の見出しが複数行にまたがる場合がある。
【００５７】
図１２の表を流し込み先とし、図４の表を流し込み元とした場合、図１２の流し込み先の表の２行目の「受付日」及び「返送日」の２つの列見出しが流し込み元の表と一致して、流し込み先の見出し行と判定される。この場合、上述の処理手順（１）〜（６）では、「書類番号」は１行目に記載されているので、流し込み先の見出しとみなされず、このため流し込み元の「書類番号」のデータが流し込まれないこととなる。この問題に対応する方法として次のものが考えられる。
（ア）一つの例では、流し込み先の見出し行を特定する方法（ステップ（１）の処理）は上述の処理手順（１）〜（６）の例と同じであるが、ステップ（４）の流し込み処理において、流し込み元と流し込み先の間で見出しの内容の一致を判定する際、流し込み先の表計算データ内の見出し行の中に空のセルがある場合、そのセルには、そのセルの上（すなわちそのセルと同じ列内で、そのセルよりも上の各行）のセルを順に見ていったときに最初に行き当たるセル内容が空でないセルのセル内容が含まれているとみなす。図１２の例では、２行目の最初の列のセルは空であるが、ステップ（４）では、そのセルにはその上で最初の空でないセルのセル内容「書類番号」があるものとみなし、図４の流し込み元の表計算データのうち見出し「書類番号」に該当する列のデータを、流し込み先の最初の列に流し込む。
（イ）別の例として、ステップ（１）における流し込み先表計算データ内の見出し行の特定の際にも、その表計算データ内の空のセルに、そのセルの上の最初の空でないセルのセル内容が含まれているものとして取り扱う。ステップ（４）でも同様の取扱をする。図４の流し込み元の見出し行に対応する見出し行を見つける場合、図２の２行目の１列目の空セルにはその直上の「書類番号」が含まれているとみなされるので、その２行目が「書類番号」、「受付日」及び「返送日」の３つのセルが流し込み元の見出しと一致すると判定される。
【００５８】
（イ）の例は、見出し行を特定する際も複数行にまたがる見出しを考慮するので、正しく見出し行を判定する場合がある。しかしながら、計算式を設定する必要がない場合などで、サンプル行のセルの内容が全て空白である場合を考えると、それらのセルについて、見出し行のセルの内容が存在するかのように扱われるため、結果として本来の見出し行とサンプル行が同セル数だけ流し込み元の見出し行とセル内容が一致することになり、流し込み先の見出し行が特定ができないこととなる。
【００５９】
この問題に対応する方法としては次のものが考えられる。
（ａ）ステップ（１）の処理で、流し込み元の見出し行内のセルとセル内容が一致するセル数が最大である行が、流し込み先の表計算データ内から複数みつかった場合は、それら一致するセル数が最大である行のうち、もともと空白であったセルの数が最も少ないものを流し込み先の見出し行とする。
（ｂ）ステップ（１）の処理で、もともと空白であったセルのみが流し込み元の見出し行内の各セルと一致する行については、どれだけ流し込み元の見出しと一致しても、流し込み先の見出しとは判定しない。それ以外の流し込み先の行の中から、見出し行を選択する。
【００６０】
以上に説明した例では、流し込み元の表計算データと流し込み先の表計算データの両方で見出しが行方向に並んでいたが、本実施形態の表計算データ処理装置は、それ以外の場合にも対応している。例えば、流し込み元と流し込み先が共に、見出しが列方向に並んでいる場合は、上述の処理手順において「行」を「列」と読み替えればよい。例えば、「見出し行の直下の行をサンプル行として特定する」いう処理は、「見出し列の次（右隣）の列をサンプル列として特定する」処理となる。コピー列の挿入に応じた参照の記述の変更では、参照先の列番号を挿入した数だけ後ろにずらせばよい。また、セル参照における範囲指定の記述は、その範囲の前端（左端）と後端（右端）の列番号を示す。
【００６１】
また、流し込み元の表計算データ内の見出し行（又は見出し列）に対応する見出し群が流し込み先の表計算データ内で行方向又は列方向のどちらに並んでいるのか不明の場合には、前述の処理手順のステップ（１）において、見出し・サンプル行（列）判定部１２が、流し込み先の表計算データ中の各行及び各列のそれぞれについて、流し込み元の見出し行（又は見出し列）の各セルとセル内容が一致するセルの数を求め、その一致数が最大の行又は列を、見出し行又は見出し列と判定すればよい。そして、流し込み元の見出し行（又は列）に該当する見出しが流し込み先の表計算データの列方向に並んでいると判定した場合は、その見出し列の次の列をサンプル列とし、そのサンプル列を必要な数だけコピーして追加すればよい。後は上述と同様の処理を行えばよい。
【００６２】
なお、特許請求の範囲では、流し込み元の表計算データについては見出しが行方向に並んでいるものとして記載しているが、これは、流し込み元については見出しの並び方向が既知なので、その並び方向を「行」と呼ぶことで、記載の煩雑さをできるだけ少なくしたものである。
【００６３】
以上に例示した表計算データ処理装置１０は、例えば、汎用のコンピュータにそれら機能モジュールの処理を表すプログラムを実行させることにより実現される。ここで、コンピュータは、例えば、ハードウエアとして、ＣＰＵ等のマイクロプロセッサ、ランダムアクセスメモリ（ＲＡＭ）およびリードオンリメモリ（ＲＯＭ）等のメモリ（一次記憶）、ＨＤＤ（ハードディスクドライブ）を制御するＨＤＤコントローラ、各種Ｉ／Ｏ（入出力）インタフェース、ローカル・エリア・ネットワークなどのネットワークとの接続のための制御を行うネットワークインタフェース等が、たとえばバスを介して接続された回路構成を有する。また、そのバスに対し、例えばＩ／Ｏインタフェース経由で、ＣＤやＤＶＤなどの可搬型ディスク記録媒体に対する読み取り及び／又は書き込みのためのディスクドライブ、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体に対する読み取り及び／又は書き込みのためのメモリリーダライタ、などが接続されてもよい。上に例示した各機能モジュールの処理内容が記述されたプログラムがＣＤやＤＶＤ等の記録媒体を経由して、又はネットワーク等の通信手段経由で、ハードディスクドライブ等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがＲＡＭに読み出されＣＰＵ等のマイクロプロセッサにより実行されることにより、上に例示した機能モジュール群が実現される。
【符号の説明】
【００６４】
１０  表計算データ処理装置、１２  見出し・サンプル行（列）判定部、１４  サンプル行（列）コピー部、１６  流し込み部。
【図１】
0005834846.tif 000002
【図２】
0005834846.tif 000003
【図３】
0005834846.tif 000004
【図４】
0005834846.tif 000005
【図５】
0005834846.tif 000006
【図６】
0005834846.tif 000007
【図７】
0005834846.tif 000008
【図８】
0005834846.tif 000009
【図９】
0005834846.tif 000010
【図１０】
0005834846.tif 000011
【図１１】
0005834846.tif 000012
【図１２】
0005834846.tif 000013