• 締切済み

エクセルで、良い方法ありますか?

エクセルで作った見積書があります。見積書は今後、見積書A、見積書Bというように増えて行きます。 別のフォルダにある一覧表に各見積書の項目の文字や数値を自動で反映させたいのです。 前もって100件分の見積書のデータがリンクできるように見積書A、見積書B・・・とリンクの貼り付けで指定しておけばよいのですが、見積書の名前がお得意先名で保存することになるので、一覧表のリンクの貼り付けをしたい各セルに見積書のファイル名を前もってし指定ておくことができません。 お得意先名の名前で保存してある見積書を見積書A、B、C・・・というように順番になるような名前で別に保存して、一覧表に見積書A、B、C・・・でのセルをリンクできるように指定すればできないことではないのですが、他に良い方法があったら教えてください。 説明が下手ですみません・・・

みんなの回答

  • zenjee
  • ベストアンサー率47% (50/106)
回答No.2

 見積書は1件につき1ファイル(ブック)を作っておられるのでしょうか。また、そのようにしなければならない特別な理由が何かあるのでしょうか。  もしそういう使い方がどうしても必要なら、ExcelよりもファイルメーカーProやアクセスなどのデータベースソフトが遙かに目的にかなった作業が出来ると思います。  Excelで一覧表のブックと100ものブックに1対100でリンクを張るというのはメモリーは食うし、参照は複雑化するし、かえって不便で、あまりクレバーな作業方法ではないように思います。    どうしてもExcelで作業したいなら、何もブックを分割せずに1見積書につき1シートにするとか、最も簡単なのは一覧表のシートと見積書のシートの二つだけにし、一覧表シートに一連番号と見積書に記載する項目や文字を入力し、一連番号を検索値として、VLOOLUP関数で一覧表に入力したデータを見積書の該当セルに反映させる方法をとれば極めて容易だと思いますがいかがでしょうか。  参考までに私が仕事でときどき使っている方法を紹介しておきます。 1、一覧表の内容は例えば下記のとおりとし、セルの列範囲を仮にA:Jとする。    A   B    C   ~  J 1 番号 お得意先  月日  ~ 2  1  ○○○  10/1  ~ 3  2  △△△  10/2 4  3  ×××  10/3    ↓ 2、見積書シートにまず見積書1枚分に相当するセル範囲に出力用紙に応じて必要なフォーマットを作る。(仮にその範囲をB1:G50とする。) 3、見積書のA1セルは印刷対象外とし、スタート番号「1」を入力する。 4、一覧表のA:J列を選択し、挿入→名前→定義で例えば「一覧表」と名前を付けてOK。 5、見積書のお得意様名を入力するセルに次の計算式を入力する。 =IF($A1="","",VLOOKUP($A1,一覧表,2,FALSE)) 6、以下、見積書の他のデータ入力セルにも同様に、一覧表の列順(3~)に応じて順次同様に入力する。 7、見積書のA1:G50を選択し右クリックでコピー、A51にペースト。 8、A51に 「=A1+1」 と入力 9、A51:G100を選択してコピー、A101以下必要な行まで選択してペースト。  以上で一覧表にデータを入力する毎にその分の見積書が自動的に作成されるので、印刷するときは該当分のセル範囲を選択して印刷を実行します。  この方法だと、仮に見積書が1、000枚以上になっても1シートで処理できるし、足らなくなれば次のシートを使えばよいのでほぼ無限に近く作成可能です。  なお、入力行が多くなって見辛いときは、処理済みの行を逐次非表示にします。

oha-kon
質問者

お礼

データベースの方が適していることがわかりました。アドバイスありがとうございました。

  • sero
  • ベストアンサー率47% (916/1944)
回答No.1

名前未定の100のブックからデータをリンクさせたいという意味と読み取りましたが、ブックが全部出揃ってから一覧表を作った方が良いでしょうね。 (存在しないファイルにリンクを貼ると、その数だけ参照元を指定するダイアログが開いて鬱陶しい) 100のブック名に規則性があり、具体的なブックの構造がわかれば全て手動入力しなくても、ある程度は自動収集できるかもしれません。 こういう分野はエクセルよりアクセスの方が向いていると思いますが・・・

oha-kon
質問者

お礼

データベースが適していることが分かりました。アドバイスありがとうございました。