説明

表計算データ処理装置及びプログラム

【課題】ユーザが明示的に指定しなくても流し込み先の表計算データの見出し及びサンプルの行又は列を判定すると共に、流し込み先の表計算データ内に存在するセル参照が流し込み後も有効になるようにする。
【解決手段】見出し・サンプル行(列)判定部12は、流し込み先の各行のうち、流し込み元の見出し行とセル内容が一致するセルの数が最大の行を見出し行と判定し、その1行下をサンプル行と判定する。サンプル行をコピーしたコピー行をいくつか挿入することにより、流し込み先の見出し行の下に、サンプル行と同じデータ構造を持つ行が、流し込み元のデータ行と同数だけ並ぶようにする。そして、サンプル行及びその下にコピーした各行に対して、流し込み元のデータ行を流し込む。流し込みは、一致する見出し同士の間で行う。また、流し込み元に、サンプル行より下への参照を含む計算式がある場合は、その参照の参照先を、挿入したコピー行の数だけ下にずらす。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、表計算データ処理装置及びプログラムに関する。
【背景技術】
【0002】
マイクロソフト社のExcel(登録商標)等の表計算ソフトウエアが普及している。業務遂行にあたり、各種の業務データを表計算ソフトウエアで作成し、作成した表計算データ(スプレッドシートとも呼ばれる)を、後での閲覧、検証、再利用等のために保存することもよく行われている。ここで、保存した表計算データ内のデータの一部を抽出し、表構造の異なる他の表計算データを作成したいというニーズがある。このようなニーズのために、表計算データを、他の表計算データに流し込むための装置が各種提案されている。
【0003】
特許文献1に記載されるデータ処理装置は、見出しのみ記入した流し込み先の表計算データと、流し込み元の表計算データとを用意しておくことを前提としている。この装置は、流し込み元と流し込み先とで見出しが一致する列について、流し込み元のデータを流し込み先にコピーする。
【0004】
特許文献2に記載されるデータ処理装置では、流し込み先の表計算データの中のサンプル行をユーザが指定する。データ処理装置は、流し込み先の表計算データにおいて、指定されたサンプル行を、流し込み元の表計算データのデータ行から1を引いた数だけコピーする。このとき、背景色等のスタイル情報はコピーされるが、サンプル行のセルに含まれる計算式等のセル内容はコピーされない。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平6−332890号公報
【特許文献2】特開平6−332892号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明は、ユーザが明示的に指定しなくても流し込み先の表計算データの見出し及びサンプルの行又は列を判定すると共に、流し込み先の表計算データ内に存在するセル参照が流し込み後も有効になるようにすることを目的とする。
【課題を解決するための手段】
【0007】
請求項1に係る発明は、流し込み先の表計算データの行ごと及び列ごとに、当該行又は列に含まれるセルのうち流し込み元の表計算データにおいて指定された見出し行の各セルとセル内容が対応するセルの個数を求め、求めた対応するセルの個数が最大の行又は列を前記流し込み先の表計算データの見出し行又は見出し列と判定すると共に、前記流し込み先の表計算データのうち、判定した前記見出し行又は見出し列の次の行又は列をサンプル行又はサンプル列と判定する判定手段と、前記流し込み先の表計算データの前記サンプル行又はサンプル列の次に、当該サンプル行又はサンプル列をコピーしたコピー行又はコピー列を挿入することにより、サンプル行又はサンプル列とコピー行又はコピー列との合計数が、前記流し込み元の表計算データのデータ行の数と等しくなるようにすると共に、前記流し込み先の表計算データの中に前記サンプル行又はサンプル列より後のセルを参照しているセルがある場合、当該参照しているセルの参照先を、前記挿入したコピー行又はコピー列の数だけ後にずらすコピー手段と、前記判定手段が判定した見出し行又は見出し列と前記流し込み元の表計算データの前記見出し行との間でセル内容が対応するセルを流し込み対象見出しと判定し、前記流し込み元の表計算データに含まれる各データ行の前記流し込み対象見出しに該当する各セルのセル内容を、前記流し込み先の表計算データ内の前記サンプル行又サンプル列と各コピー行又はコピー列の、対応する前記流し込み対象見出しに該当するセルに流し込む流し込み手段と、を備える表計算データ処理装置である。
【0008】
請求項2に係る発明は、前記流し込み手段は、前記流し込み先の表計算データの前記見出し行又は見出し列にセル内容が空のセルがある場合、当該セルが、当該セルの前の直近の空でないセルのセル内容を有するものとみなして、前記流し込み対象見出しを判定する、ことを特徴とする請求項1に記載の表計算データ処理装置である。
【0009】
請求項3に係る発明は、前記判定手段は、流し込み先の表計算データの行ごと及び列ごとに、当該行又は列に含まれるセルのうち流し込み元の表計算データにおける見出し行の各セルとセル内容が一致するセルの個数を求める際に、当該行又は列に含まれるセルが空の場合は、当該セルのセル内容が当該セルの前の直近の空でないセルのセル内容と等しいと取り扱う、ことを特徴とする請求項1又は2に記載の表計算データ処理装置である。
【0010】
請求項4に係る発明は、前記コピー手段は、前記流し込み先の表計算データ内において、前記見出し行又は見出し列の後に同じデータ構造のデータ行又はデータ列が1以上あり、計算対象のセル範囲の前端及び後端としてそれら同じデータ構造のデータ行又はデータ列の最初と最後の行又列を指定する範囲指定を含んだ計算式が含まれる場合に、当該計算式における前記範囲指定が示す範囲の後端を、挿入したコピー行又はコピー列の数だけ後にずらす、ことを特徴とする請求項1〜3のいずれか1項に記載の表計算データ処理装置である。
【0011】
請求項5に係る発明は、コンピュータを、流し込み先の表計算データの行ごと及び列ごとに、当該行又は列に含まれるセルのうち流し込み元の表計算データにおいて指定された見出し行の各セルとセル内容が対応するセルの個数を求め、求めた対応するセルの個数が最大の行又は列を前記流し込み先の表計算データの見出し行又は見出し列と判定すると共に、前記流し込み先の表計算データのうち、判定した前記見出し行又は見出し列の次の行又は列をサンプル行又はサンプル列と判定する判定手段、前記流し込み先の表計算データの前記サンプル行又はサンプル列の次に、当該サンプル行又はサンプル列をコピーしたコピー行又はコピー列を挿入することにより、サンプル行又はサンプル列とコピー行又はコピー列との合計数が、前記流し込み元の表計算データのデータ行の数と等しくなるようにすると共に、前記流し込み先の表計算データの中に前記サンプル行又はサンプル列より後のセルを参照しているセルがある場合、当該参照しているセルの参照先をmだけ後にずらすコピー手段、前記判定手段が判定した見出し行又は見出し列と前記流し込み元の表計算データの前記見出し行との間でセル内容が対応するセルを流し込み対象見出しと判定し、前記流し込み元の表計算データに含まれる各データ行の前記流し込み対象見出しに該当する各セルのセル内容を、前記流し込み先の表計算データ内の前記サンプル行又サンプル列と各コピー行又はコピー列の、対応する前記流し込み対象見出しに該当するセルに流し込む流し込み手段、として機能させるためのプログラムである。
【発明の効果】
【0012】
請求項1又は5に係る発明によれば、ユーザが明示的に指定しなくても流し込み先の表計算データの見出し及びサンプルの行又は列を判定すると共に、流し込み先の表計算データ内に存在するセル参照が流し込み後も有効になるようにすることができる。
【0013】
請求項2に係る発明によれば、流し込み先のサンプル行又はコピー行のうち、判定された見出し行又は見出し列内の空のセルに対応するセルに対しても、流し込み元の該当するセルのデータを流し込むことができる。
【0014】
請求項3に係る発明によれば、この発明を用いない場合と比べて、見出し行又は見出し列を正しく判定することができる。
【0015】
請求項4に係る発明によれば、流し込み先の見出し行又は見出し列の後に続くデータ行又はデータ列を範囲として指定する範囲指定を、コピー行の挿入に応じて適切に修正することができる。
【図面の簡単な説明】
【0016】
【図1】実施の形態の表計算データ処理装置の一例の概略構成を示す図である。
【図2】流し込み先の表計算データの一例を示す図である。
【図3】図2の表計算データ内の計算式を評価した結果を示す図である。
【図4】流し込み元の表計算データの一例を示す図である。
【図5】流し込み元の表計算データの別の一例を示す図である。
【図6】図2の流し込み先の表計算データに対して、サンプル行のコピーを挿入した結果を示す図である。
【図7】図6のコピー挿入後の表計算データに対して、図3の流し込み元の表計算データを流し込んだ結果を示す図である。
【図8】流し込み先の表計算データ中のサンプル及びコピー行以外にある参照の記述を調整した結果を示す図である。
【図9】流し込み先の表計算データ中の範囲指定の記述を調整した結果を示す図である。
【図10】図9の表計算データを流し込み先とし、これに図5の流し込み元の表計算データを流し込んだ結果を示す図である。
【図11】図10の表計算データ内の計算式を評価した結果を示す図である。
【図12】2行に跨る見出しを含んだ見出し行の例を示す図である。
【発明を実施するための形態】
【0017】
図1に、この実施の形態の表計算データ処理装置10の一例の概略構成を示す。ここでは、説明の煩雑さを避けるために、流し込み元及び流し込み先の表計算データの見出しが、共に行方向に並んでいる場合についての流し込み処理について説明する。
【0018】
図1に示す表計算データ処理装置10は、見出し・サンプル行判定部12,サンプル行コピー部14,及び流し込み部16を備える。
【0019】
この表計算データ処理装置10には、流し込み元の表計算データと、流し込み先の表計算データが入力される。
【0020】
流し込み元の表計算データは、典型的には、図示しないファイルシステム等に保存されている既存の表計算データファイルである。流し込み元の表計算データは、1つの見出し行と、1以上のデータ行とを含んでいる。見出し行は、当該表計算データに含まれる行のうち、1以上(一般には複数)の列見出しセルを含んだ行である。列見出しセルの各々には、当該セルの下に続くセル群の見出しである列見出しを表す文字列が含まれる。データ行には、見出し行の各列見出しに対応するセルが含まれており、それらセルにはデータ又は計算式が含まれる。計算式には、他のセルへの参照が含まれていてもよい。参照を含んだ計算式の値は、当該参照の指し示すセルにあるデータを用いて計算される。流し込み元の表計算データについては、見出し行が既知であるか、あるいはユーザが当該装置10に対して見出し行を指定する。
【0021】
流し込み先の表計算データには、見出し行とサンプル行が含まれる。サンプル行は、見出し行の次(直下)にある行であり、流し込みにより作成しようとする目的の行のデータ構造を表している。すなわち、見出し行内の各列見出しに該当するセルからなり、それら各セルのデータ型は、対応する列見出しに合致したものとなっており、またそれらサンプル行内のセルの中には他のセルを参照する計算式を含んだ計算式が含まれている。流し込み処理では、流し込み元の表計算データのうち、この見出し行及びサンプル行が表すデータ構造に合った部分のデータを抽出し、流し込むことになる。サンプル行内のセルに含まれる計算式は、当該行内の他のセルのデータを参照するものであってもよいし、サンプル行以外の行に含まれるセルを参照するものであってもよいし、当該行内の他セル及び当該行外のセルの両方を参照するものであってもよい。
【0022】
流し込み先の表計算データには、複数の見出し行が含まれていてもよい。見出し行が複数含まれる場合は、見出し行ごとに、その見出し行の直下にサンプル行が配置される。このように、流し込み先の表計算データに見出し行及びサンプル行の組が複数含まれる場合、それら組ごとに流し込み元の表計算データからのデータの流し込みを行ってもよい。
【0023】
このような流し込み先の表計算データは、ユーザが目的に合わせて新たに作成してもよいし、既存の表計算データから目的に合うものを選択したものであってもよい。
【0024】
見出し・サンプル行判定部12は、入力された流し込み先の表計算データから、流し込み元の表計算データの見出し行に対応する見出し行を判定すると共に、その見出し行の次(下)の行をサンプル行として判定する。
【0025】
サンプル行コピー部14は、流し込み先の表計算データから判定されたサンプル行を必要な数だけコピーすることにより、流し込み先の表計算データの見出し行の次に、サンプル行と同様のデータ構造を持つ行が、流し込み元の表計算データ内のデータ行の数と同数だけ並ぶようにする。例えば、流し込み先の表計算データにおいて、見出し行の下にサンプル行が1つだけ存在し、サンプル行の下が空行の場合は、流し込み元の表計算データのデータ行の数をmとした場合、サンプル行の下に当該サンプル行を(m−1)行分コピーする。また、サンプル行の下にサンプル行と同じデータ構造の行が1以上連続する場合(言い換えれば、サンプル行が複数行ある場合)、サンプル行がk行あるとすると、サンプル行コピー部14は、サンプル行を(m−k)行分だけコピー処理により増やすことで、見出し行の下にサンプル行と同じデータ構造を持った行(すなわち、サンプル行と、それをコピーしてできるコピー行)が合計でm行並ぶよう、流し込み先の表計算データを変更する。
【0026】
流し込み部16は、コピー行追加後の流し込み先の表計算データに対して、流し込み元の表計算データ中のデータ行群を流し込む。
【0027】
見出し・サンプル行判定部12、サンプル行コピー部14及び流し込み部16が実行する詳細な処理については、具体例を参照しつつ説明する。
【0028】
以下では、具体例として、業務管理システム(データベース)に保存された業務データの中からある目的のために検索された検索結果の表計算データを流し込み元とし、それを、他の目的に沿った形式の流し込み先の表計算データに流し込む場合の例を説明する。企業活動においては、様々な情報を含んだ業務データの中から、分析等のために必要なデータ項目のみを抽出した一覧表を作成することがあり、各時点で作成したそのような一覧表を保存しておくことがある。このような保存された一覧表データを流し込み元とし、別の目的のための表形式に変換するというのが以下の例である。
【0029】
より具体的には、以下では、業務管理システムからの、指定された「開始日付」と「終了日付」の間に、指定された「グループ」(企業内の部や課等の組織要素)に受け付けられた、指定された「文書種類」に属する文書の検索結果の文書一覧を流し込み元の表計算データとする。
【0030】
一方、流し込み先の表計算データは図2に示すようなものであるとする。なお、図2のうち、先頭行のA,B,C,D及び最左列の1,2,3,4,…等の行識別符号及び列識別符号は、理解の助けのために付け加えた行/列であり、実際の表計算データに含まれない。図2の表において、セルの内容で「=」で始まっているものは計算式である。この表計算データは、マイクロソフト社の表計算ソフトウエアのExcel(登録商標)に準拠したものであり、計算式における「A7」、「D7」等は、参照先のセルを行と列の識別符号の組合せで指定したものである。また、「”」と「“」のペアは、計算式中に含まれる文字列を指定するためのものであり、それらペアの間に含まれるデータは、計算式中で文字列として扱われる。「&」は、データ同士の結合を表す演算子である。例えば「=C7&”-“&B7」という計算式は、<セルC7のデータ内容>の右隣に「-」(ハイフン)が結合され、更にその右隣に<セルB7のデータ内容>が結合されることにより生成される文字列を示している。図2の表計算データ内の計算式が評価された結果は、図3に示すようになる。
【0031】
この例では、図4と図5に示す2つの表計算データを流し込み元とする。
【0032】
図4に示す表計算データは、検索結果の文書一覧表を示すものであり、最も上の行である見出し行と、その後に続く4つのデータ行とから構成される。各データ行は、見出し行に示される各列見出しが示すように、各文書(「部門サービス」グループに対する稟議書)の識別番号である「書類番号」、その文書(稟議書)の「起案者」及び「起案日」、「部門サービス」グループにおけるその文書の「受付日」及び見積もり結果の「返送日」の項目の値を含んでいる。図4の例の表計算データのデータ行の数は4(m=4)である。
【0033】
また、図5に示す表計算データは、図4の検索結果の表計算データを求める際に使用された検索条件を示している。この検索条件は、「グループ名」、「開始日付」、「終了日付」、「文書種類」という4つの列見出しを示した見出し行と、その直下の行のデータ行とからなる。データ行が示すように、検索条件は、「部門サービス」というグループ名のグループが、開始日付「2011/9/10」から終了日付「2011/9/20」までの間に受け付けた、文書種類が「稟議書」である文書を検索するというものである。
【0034】
この例では、流し込み先の表計算データ(図2)に対して、検索結果と検索条件の2つの流し込み元の表計算データ(図4及び図5)を流し込む。この際、各流し込み元の表計算データを1つずつ流し込む。ここでは、まず検索結果のデータ(図4)を流し込むものとして、その具体的な処理の流れを説明する。
(1)見出し・サンプル行(列)判定部12は、流し込み先の表計算データ(図2)の各行についてそれぞれ、その行に含まれるセルと、流し込み元の表の見出し行(図4の最上の行)の各見出しのセルを比較し、内容(すなわちセル内にある文字列)が一致するセルの個数を求める。
【0035】
ここで流し込み元の表(図4)の見出しのセルは「書類番号」「起案者」「起案日」「受付日」「返送日」であり、これと流し込み先の1行目を比較すると、セルC7の「受付日」一つが一致する。同様に流しこみ先の2行目と比較すると、セルA2「書類番号」、セルB2「受付日」、セルC2「返送日」の3つが一致する。流し込み先の他の行には、流し込み元の表の見出し行の各列見出しに一致するセル内容を含んだセルはない。
(2)見出し・サンプル行(列)判定部12は、上記ステップ(1)での判定の結果、内容が一致するセルが多かった表計算データの行を、表計算データの見出し行とし、その見出し行の一行下の行を、サンプル行とする。
【0036】
図2及び図4の組合せの例では、最も一致するセルが多かったのは流し込み先(図4)の表の2行目であるので、2行目が見出し行と判定され、その一行下の3行目がサンプル行と判定される。
【0037】
また、このとき、流し込み元と流し込み元の見出し行のうち、セル内容が一致する列見出しセルを、流し込み対象と判定してもよい。例えば図2と図4のペアの例では、「書類番号」、「受付日」、「返送日」の3つの見出しが流し込み対象の見出しと判定される。この場合、図4の表が含む5つの見出しのうち、「起案者」、「起案日」は流し込み対象の項目には選択されない。
(3)サンプル行(列)コピー部14は、流し込み先の表計算データにおいて、流し込み元のデータ行数−1(すなわち(m−1))だけサンプル行をコピーし、コピーしたものをサンプル行の下に挿入する。このコピー処理では、サンプル行内の各セルのセル内容もコピーする。したがって、コピーの結果挿入されるコピー行の各列のセルには、サンプル行内の同じ列のセルと同じセル内容が含まれることになる(ただし、計算式に含まれる参照先については後述の手当をする)。
【0038】
図4の例では流し込み元のデータ行数は4であるから、このステップではサンプル行を3行コピーし、サンプル行(図2の行「3」)の下に挿入する。以下では、「コピー」という場合、コピーした行を挿入する処理も含んだ操作を意味するものとする。
【0039】
ここで図2の流し込み先の例では、サンプル行のD列には計算式が含まれており、その計算式には同一行内の他のセルへの相対参照が含まれている。このようなサンプル行のコピー結果において、その計算式が正しく機能するためには、挿入するコピー行の行番号に合わせて、計算式に含まれる参照先をずらす必要がある。そこで、サンプル行(列)コピー部14は、挿入したコピー行(流し込み先の表計算データにおける当該挿入されたコピー行の行番号nとする)に含まれる計算式内の、同一行内の他セルへの相対参照が示す参照先セルの行番号を(n−p)だけ下の行番号へと変更する。ここでpは、流し込み先の表計算データにおけるサンプル行の行番号である。例えば、新たに4行目になるコピー行においては、その行番号4からサンプル行の行番号3を引いた結果である「1」だけ、D列の計算式内の参照先の行番号をずらす(すなわちサンプル行内の計算式「B3-A3」を「B4-A4」へ変更)。同様に行番号5に挿入されたコピー行に含まれる計算式の参照先の行番号は「2」だけ下にずらす。
【0040】
また、サンプル行内に、そのサンプル行よりも下の行のセルへの参照を含んだ計算式がある場合には、サンプル行(列)コピー部14は、コピー行内のその参照が示す行番号を、(m−1)(すなわち、流し込み元の表計算データのデータ行の数から1を引いた数)だけ下にずらす。図2及び図4のペアの例では、流し込み先のサンプル行「3」には、それよりも下の行への参照は含まれないので、この例では、下の行への参照をずらす処理は行われない。
【0041】
このようなコピー処理の結果、図6に示す表計算データが得られる。
(4)流し込み部16は、流し込み元の表計算データの各データ行のデータを、コピー行追加後の流し込み先の表計算データにおけるサンプル行及び追加したコピー行のうちの、対応する行に順に流し込む。すなわち、流し込み元の最初のデータ行は、流し込み先のサンプル行及びコピー行のうち最初の行へ、2番目のデータ行は2番目の行へというように、順に流し込む。
【0042】
個々の行ごとの流し込みでは、流し込み元と流し込み先との間で見出しの内容が一致する列同士の間でデータを流し込む。見出し内容が一致する列というのは、前述した流し込み対象の見出しのことである。図2(流し込み先)と図4(流し込み元)のペアの例では、見出し「書類番号」、「受付日」及び「返送日」が一致しているので、流し込み元のデータ行の「書類番号」、「受付日」及び「返送日」の値(セル内容)を、流し込み先の対応する行の「書類番号」、「受付日」及び「返送日」に上書きする。サンプル行及びそのコピーの行には、サンプル行の「書類番号」、「受付日」及び「返送日」の値が含まれているので、それらの値に対して流し込み元のデータを上書きするのである。
【0043】
このデータ行の流し込みの結果は図7に示すようなものとなる。図6では3〜6行目がすべて同じデータであったのが、図7の表では、3〜6行目が図4の各データ行に対応したものに変更されているのが分かる。
(5)流し込み先の表計算データ内のサンプル行(及び挿入したコピー行)以外の行に、計算式が存在し、その計算式にセル参照が含まれており、そのセル参照がサンプル行より下のセルを参照している場合は、その参照先を(m−1)(すなわち流し込み元のデータ行数−1)だけ下にずらす。
【0044】
例えば図2と図4のペアの例では、流し込み先(図2)のA1とB1にまたがるセルと、D1のセルの計算式がサンプル行(行番号「3」)より下のセルを参照しているので、流し込み元のデータ行数の4より1を引いた数である3だけ参照先を下にずらす。
【0045】
これにより、流し込み先の表計算データは、図8に示すものとなる。
【0046】
なお、このステップ(5)の処理は、サンプル行(列)コピー部14及び流し込み部16のいずれが行ってもよい。
【0047】
上述のステップ(3)ではサンプル行内にサンプル行より下への参照がある場合について、そのサンプル行をコピーしたコピー行においてその参照先をずらす処理を行ったのに対し、このステップ(5)では、サンプル行(及びコピー行)以外にサンプル行より下への参照がある場合についての参照先のずらし処理を行う。どちらの場合も、サンプル行のコピー及び挿入により流し込み先の表計算データのデータ行が増えることに対応して、元の参照が正しい参照先を指すようにするものである。
(6)流し込み先の表計算データ中の計算式に含まれるセル参照が、計算対象のセルの範囲を指定するのに使われ、そのセル範囲の上下がサンプル行に一致する場合は、セル範囲の下限のみを(m−1)だけ下にずらす。
【0048】
図8の例ではD7のセルの計算式がこれに該当する(図2のコピー行追加前の表ではD4)。セルD7に含まれる計算式「=AVG(D3:D3)」は、上限のセルD3から下限のセルD3までのD列のセル群のデータの平均値を計算するものである。この計算式に含まれるセル参照「D3:D3」は、平均値計算の対象となるセルの範囲を指定するのに使われている。このセル範囲の上限及び下限の行番号は共にサンプル行に一致するので、このステップ(6)では、そのセル範囲の下限のみを3だけ下にずらす。これにより、セルD7に含まれる計算式「=AVG(D3:D3)」は、「=AVG(D3:D6)」に変更されることになる(図9参照)。
【0049】
なお、このステップ(6)の処理は、サンプル行(列)コピー部14及び流し込み部16のいずれが行ってもよい。
【0050】
以上の処理により、図2の流し込み先の表計算データに対する、図4の流し込み元の表計算データの流し込みが完了する。この一連の処理により、図9に示す流し込み結果の表計算データが得られる。
【0051】
次に、この図9の流し込み結果の表計算データを流し込み先とし、図5に示す検索条件の表計算データを流し込み元として、上述のステップ(1)〜(6)の処理を実行することにより、検索条件の表の流し込みが行われる。検索条件の流し込みが完了すると、流し込み結果として、図10に示す表計算データが得られる。図9との比較から分かるように、行番号「10」の行に対して、図5の流し込み元のデータが流し込まれている。
【0052】
図10の流し込み結果の表計算データに含まれる各計算式を評価(すなわち計算式内の各参照に対して参照先のデータを代入して計算実行)すると、図11に示す表が求められる。
【0053】
以上のようにして、図2の流し込み先の表計算データに対して、図4及び図5の2つの流し込み元の表計算データが流し込まれる。
【0054】
なお、図2の例では、流し込み先の表計算データ内には、1つの見出し行の直下にデータ行が1つしかなく、そのデータ行をサンプル行としたが、既存の表計算データを流し込み先として利用する場合等には、1つの見出し行の下に、同じデータ構造のデータ行が複数行続く場合もあり得る。ここでデータ行同士が同じデータ構造であるとは、それらデータ行内の同じ列に、同じ計算式(ただし、計算式中の相対参照については、その相対参照中の行番号が、それらデータ行の行番号の差だけ互いにずれている)が含まれていることを意味する。
【0055】
このような場合には、上述のステップ(2)で、それら同一データ構造のデータ行の1つ(例えば見出し行の直下のデータ行)をサンプル行とする。ステップ(3)ではそのサンプル行を(m−k)個だけコピーし、そのサンプル行の下に挿入する(mは流し込み元のデータ行数、kは流し込み先の中の当該見出しの下にある同一データ構造のデータ行の数)。これにより、見出し行の下に、流し込み元のデータ行と同数の、同一データ構造の行が並ぶことになる。また、サンプル行に同一行内の他セルへの参照を含んだセルがある場合、コピー行におけるそのセルの参照先の行番号を上述のサンプル行が1行しかない場合と同様にして下にずらすと共に、それら同一データ構造のデータ行のうち、サンプル行より下のデータ行に含まれる同じ列のセルの参照についても、同じように参照先の行番号を下にずらす。また、サンプル行(したがって、それと同一データ構造のすべてのデータ行)に、それら同一構造のデータ行群よりも下の行のセルへの参照を含んだ計算式がある場合には、それら各参照の参照先の行番号を、流し込み先に対してコピーにより挿入した行数(m−k)だけ下にずらす。ステップ(5)でも同様に、流し込み先の表計算データ内のサンプル行(及び挿入したコピー行)以外の行の、サンプル行より下のセルへの参照の参照先を、コピーにより挿入した行数(m−k)だけ下にずらす。また、ステップ(6)では、流し込み先の表計算データに含まれる範囲指定の範囲上限が見出し行の直下のデータ行の行番号であり、範囲下限がそのデータ行と同一データ構造のデータ群のうちの最も下のものの行番号である場合、その範囲指定の範囲下限を(m−k)だけ下にずらす。
もし(m−k)の値が負である場合には、k行ある同一データ構造のデータ行のうち、(k−m)行を削除する。また、計算式中の参照について上記で「(m−k)だけ下にずらす」としたものは、「(k−m)だけ上にずらす」とする。
【0056】
ところで、図12に示すように、流し込み先の表計算データ上の見出しが複数行にまたがる場合がある。
【0057】
図12の表を流し込み先とし、図4の表を流し込み元とした場合、図12の流し込み先の表の2行目の「受付日」及び「返送日」の2つの列見出しが流し込み元の表と一致して、流し込み先の見出し行と判定される。この場合、上述の処理手順(1)〜(6)では、「書類番号」は1行目に記載されているので、流し込み先の見出しとみなされず、このため流し込み元の「書類番号」のデータが流し込まれないこととなる。この問題に対応する方法として次のものが考えられる。
(ア)一つの例では、流し込み先の見出し行を特定する方法(ステップ(1)の処理)は上述の処理手順(1)〜(6)の例と同じであるが、ステップ(4)の流し込み処理において、流し込み元と流し込み先の間で見出しの内容の一致を判定する際、流し込み先の表計算データ内の見出し行の中に空のセルがある場合、そのセルには、そのセルの上(すなわちそのセルと同じ列内で、そのセルよりも上の各行)のセルを順に見ていったときに最初に行き当たるセル内容が空でないセルのセル内容が含まれているとみなす。図12の例では、2行目の最初の列のセルは空であるが、ステップ(4)では、そのセルにはその上で最初の空でないセルのセル内容「書類番号」があるものとみなし、図4の流し込み元の表計算データのうち見出し「書類番号」に該当する列のデータを、流し込み先の最初の列に流し込む。
(イ)別の例として、ステップ(1)における流し込み先表計算データ内の見出し行の特定の際にも、その表計算データ内の空のセルに、そのセルの上の最初の空でないセルのセル内容が含まれているものとして取り扱う。ステップ(4)でも同様の取扱をする。図4の流し込み元の見出し行に対応する見出し行を見つける場合、図2の2行目の1列目の空セルにはその直上の「書類番号」が含まれているとみなされるので、その2行目が「書類番号」、「受付日」及び「返送日」の3つのセルが流し込み元の見出しと一致すると判定される。
【0058】
(イ)の例は、見出し行を特定する際も複数行にまたがる見出しを考慮するので、正しく見出し行を判定する場合がある。しかしながら、計算式を設定する必要がない場合などで、サンプル行のセルの内容が全て空白である場合を考えると、それらのセルについて、見出し行のセルの内容が存在するかのように扱われるため、結果として本来の見出し行とサンプル行が同セル数だけ流し込み元の見出し行とセル内容が一致することになり、流し込み先の見出し行が特定ができないこととなる。
【0059】
この問題に対応する方法としては次のものが考えられる。
(a)ステップ(1)の処理で、流し込み元の見出し行内のセルとセル内容が一致するセル数が最大である行が、流し込み先の表計算データ内から複数みつかった場合は、それら一致するセル数が最大である行のうち、もともと空白であったセルの数が最も少ないものを流し込み先の見出し行とする。
(b)ステップ(1)の処理で、もともと空白であったセルのみが流し込み元の見出し行内の各セルと一致する行については、どれだけ流し込み元の見出しと一致しても、流し込み先の見出しとは判定しない。それ以外の流し込み先の行の中から、見出し行を選択する。
【0060】
以上に説明した例では、流し込み元の表計算データと流し込み先の表計算データの両方で見出しが行方向に並んでいたが、本実施形態の表計算データ処理装置は、それ以外の場合にも対応している。例えば、流し込み元と流し込み先が共に、見出しが列方向に並んでいる場合は、上述の処理手順において「行」を「列」と読み替えればよい。例えば、「見出し行の直下の行をサンプル行として特定する」いう処理は、「見出し列の次(右隣)の列をサンプル列として特定する」処理となる。コピー列の挿入に応じた参照の記述の変更では、参照先の列番号を挿入した数だけ後ろにずらせばよい。また、セル参照における範囲指定の記述は、その範囲の前端(左端)と後端(右端)の列番号を示す。
【0061】
また、流し込み元の表計算データ内の見出し行(又は見出し列)に対応する見出し群が流し込み先の表計算データ内で行方向又は列方向のどちらに並んでいるのか不明の場合には、前述の処理手順のステップ(1)において、見出し・サンプル行(列)判定部12が、流し込み先の表計算データ中の各行及び各列のそれぞれについて、流し込み元の見出し行(又は見出し列)の各セルとセル内容が一致するセルの数を求め、その一致数が最大の行又は列を、見出し行又は見出し列と判定すればよい。そして、流し込み元の見出し行(又は列)に該当する見出しが流し込み先の表計算データの列方向に並んでいると判定した場合は、その見出し列の次の列をサンプル列とし、そのサンプル列を必要な数だけコピーして追加すればよい。後は上述と同様の処理を行えばよい。
【0062】
なお、特許請求の範囲では、流し込み元の表計算データについては見出しが行方向に並んでいるものとして記載しているが、これは、流し込み元については見出しの並び方向が既知なので、その並び方向を「行」と呼ぶことで、記載の煩雑さをできるだけ少なくしたものである。
【0063】
以上に例示した表計算データ処理装置10は、例えば、汎用のコンピュータにそれら機能モジュールの処理を表すプログラムを実行させることにより実現される。ここで、コンピュータは、例えば、ハードウエアとして、CPU等のマイクロプロセッサ、ランダムアクセスメモリ(RAM)およびリードオンリメモリ(ROM)等のメモリ(一次記憶)、HDD(ハードディスクドライブ)を制御するHDDコントローラ、各種I/O(入出力)インタフェース、ローカル・エリア・ネットワークなどのネットワークとの接続のための制御を行うネットワークインタフェース等が、たとえばバスを介して接続された回路構成を有する。また、そのバスに対し、例えばI/Oインタフェース経由で、CDやDVDなどの可搬型ディスク記録媒体に対する読み取り及び/又は書き込みのためのディスクドライブ、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体に対する読み取り及び/又は書き込みのためのメモリリーダライタ、などが接続されてもよい。上に例示した各機能モジュールの処理内容が記述されたプログラムがCDやDVD等の記録媒体を経由して、又はネットワーク等の通信手段経由で、ハードディスクドライブ等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがRAMに読み出されCPU等のマイクロプロセッサにより実行されることにより、上に例示した機能モジュール群が実現される。
【符号の説明】
【0064】
10 表計算データ処理装置、12 見出し・サンプル行(列)判定部、14 サンプル行(列)コピー部、16 流し込み部。


【特許請求の範囲】
【請求項1】
流し込み先の表計算データの行ごと及び列ごとに、当該行又は列に含まれるセルのうち流し込み元の表計算データにおいて指定された見出し行の各セルとセル内容が対応するセルの個数を求め、求めた対応するセルの個数が最大の行又は列を前記流し込み先の表計算データの見出し行又は見出し列と判定すると共に、前記流し込み先の表計算データのうち、判定した前記見出し行又は見出し列の次の行又は列をサンプル行又はサンプル列と判定する判定手段と、
前記流し込み先の表計算データの前記サンプル行又はサンプル列の次に、当該サンプル行又はサンプル列をコピーしたコピー行又はコピー列を挿入することにより、サンプル行又はサンプル列とコピー行又はコピー列との合計数が、前記流し込み元の表計算データのデータ行の数と等しくなるようにすると共に、前記流し込み先の表計算データの中に前記サンプル行又はサンプル列より後のセルを参照しているセルがある場合、当該参照しているセルの参照先を、前記挿入したコピー行又はコピー列の数だけ後にずらすコピー手段と、
前記判定手段が判定した見出し行又は見出し列と前記流し込み元の表計算データの前記見出し行との間でセル内容が対応するセルを流し込み対象見出しと判定し、前記流し込み元の表計算データに含まれる各データ行の前記流し込み対象見出しに該当する各セルのセル内容を、前記流し込み先の表計算データ内の前記サンプル行又サンプル列と各コピー行又はコピー列の、対応する前記流し込み対象見出しに該当するセルに流し込む流し込み手段と、
を備える表計算データ処理装置。
【請求項2】
前記流し込み手段は、前記流し込み先の表計算データの前記見出し行又は見出し列にセル内容が空のセルがある場合、当該セルが、当該セルの前の直近の空でないセルのセル内容を有するものとみなして、前記流し込み対象見出しを判定する、ことを特徴とする請求項1に記載の表計算データ処理装置。
【請求項3】
前記判定手段は、流し込み先の表計算データの行ごと及び列ごとに、当該行又は列に含まれるセルのうち流し込み元の表計算データにおける見出し行の各セルとセル内容が一致するセルの個数を求める際に、当該行又は列に含まれるセルが空の場合は、当該セルのセル内容が当該セルの前の直近の空でないセルのセル内容と等しいと取り扱う、ことを特徴とする請求項1又は2に記載の表計算データ処理装置。
【請求項4】
前記コピー手段は、前記流し込み先の表計算データ内において、前記見出し行又は見出し列の後に同じデータ構造のデータ行又はデータ列が1以上あり、計算対象のセル範囲の前端及び後端としてそれら同じデータ構造のデータ行又はデータ列の最初と最後の行又列を指定する範囲指定を含んだ計算式が含まれる場合に、当該計算式における前記範囲指定が示す範囲の後端を、挿入したコピー行又はコピー列の数だけ後にずらす、ことを特徴とする請求項1〜3のいずれか1項に記載の表計算データ処理装置。
【請求項5】
コンピュータを、
流し込み先の表計算データの行ごと及び列ごとに、当該行又は列に含まれるセルのうち流し込み元の表計算データにおいて指定された見出し行の各セルとセル内容が対応するセルの個数を求め、求めた対応するセルの個数が最大の行又は列を前記流し込み先の表計算データの見出し行又は見出し列と判定すると共に、前記流し込み先の表計算データのうち、判定した前記見出し行又は見出し列の次の行又は列をサンプル行又はサンプル列と判定する判定手段、
前記流し込み先の表計算データの前記サンプル行又はサンプル列の次に、当該サンプル行又はサンプル列をコピーしたコピー行又はコピー列を挿入することにより、サンプル行又はサンプル列とコピー行又はコピー列との合計数が、前記流し込み元の表計算データのデータ行の数と等しくなるようにすると共に、前記流し込み先の表計算データの中に前記サンプル行又はサンプル列より後のセルを参照しているセルがある場合、当該参照しているセルの参照先をmだけ後にずらすコピー手段、
前記判定手段が判定した見出し行又は見出し列と前記流し込み元の表計算データの前記見出し行との間でセル内容が対応するセルを流し込み対象見出しと判定し、前記流し込み元の表計算データに含まれる各データ行の前記流し込み対象見出しに該当する各セルのセル内容を、前記流し込み先の表計算データ内の前記サンプル行又サンプル列と各コピー行又はコピー列の、対応する前記流し込み対象見出しに該当するセルに流し込む流し込み手段、
として機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2013−114656(P2013−114656A)
【公開日】平成25年6月10日(2013.6.10)
【国際特許分類】
【出願番号】特願2011−263430(P2011−263430)
【出願日】平成23年12月1日(2011.12.1)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】