• 締切済み

エクセルのブックとシートを動的にリンクさせるには?

お世話になります。エクセル初心者です。現在はWindowsXPでエクセル2003を使用しています。 皆様のお知恵をお借りしたくこちらに質問させていただきます。 エクセルファイル内の各シートから集約用に作ったシートにVLOOKUP等で集積させて数値の推移を図るファイルを作っています。 データ量が多くかつ、書式を少なめに使っているのですが、エクセルの書式等が認識できる許容範囲を超えてしまい、やむおえず一部データを同じフォルダ内に別ブックを作ってそちらに分割保管(Aというファイルがデータ集積表示用なのですが、Aに入れたい各データのシートが許容オーバーで入りきらず、Bというデータだけを入れた別エクセルファイルを作り、一定の量が溜まったらCというデータだけを入れたファイルを作るという形を取ります(保管するためにやむ終えずこの形を取る事になっています))する事にしました。 (※古い2003を使っていて恐縮ですが、まだまだWindows7に会社が切り替えてエクセルも最新版にしてくれる見込みがありません。。。) そこで、以下の通り入力、ブックが同じフォルダ内保管されていると仮定し、試みているのですが、「INDIRECT」だとブックが閉じている際に開けない事が調べているうちに分かりました。 私としてやりたいことは (1)A1に検索値 (2)B1にブック名(任意のローカルフォルダに保管されている前提。ゆくゆくは会社の共有しているサーバー内に格納して誰でも開ける場所に保管するつもりです、この式を入れているこの集積表示用データもB1以下に記載されるブック達と同じ場所に保管します) (3)C1にシート名(B1のブック名内にあるシート名、シート名は連番になって続いています) (4)D1にC1で指定したシート内を検索するための列番号 <現在試みている式(F1から下の行に同じ式を1つずつずらして入れていきます)> =IF(ISERROR(VLOOKUP($A$1,INDIRECT("\●●●\←ここには任意のファイル場所が書いてあるとしてください["&B1&".xls]"&C1&"!$A:$AD"),$D$1,FALSE)),"",VLOOKUP($A$1,INDIRECT("\●●●\←ここには任意のファイル場所が書いてあるとしてください["&B1&".xls]"&C1&"!$A:$AD"),$D$1,FALSE)) 月毎にBとCは1行ずつずらして値を1つずつ増やして上記式もBとCだけ1行ずつずらして書いていく方式をとっていくという形です。 ずらしてく毎にBとCの行の値が1つずく更新され、ブックとシートを上手く検索して反映させたいと思っていますが、何か上手くやれる方法はないでしょうか? (BとCのファイル名はもちろん番号が1つずつずれるように作っています。) VBAを使う方法があるのかな・・・?とも思っているのですが、なにぶん初心者なものでそのあたりが全くちんぷんかんぷんで困っています。。。 INDIRECTはブックが開いていないと反映されない事も調べて判明致しました。 どなたかお助けいただけないでしょうか? 新しいやり方やもっといい式があるという方、アイディアを拝借できれば幸いです。 VBAであればこういう風に出来るというやり方もあれば学びたいと思っています。 お粗末な内容ですがご指導お願い致します。 ※不足している情報等あればおっしゃってください。 出来れば来週中に仕上げていかなくてはいけないデータの為、大変身勝手な事を言っているのを承知しておりますが、どなたか宜しくお願いいたします。

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

>エクセルの書式等が認識できる許容範囲を超えてしまい 「ブックを分けた」ことが発端となって、今のもつれた状況が発生しています。 複数の出自の異なるブックから、シートをかき集めてきた場合などで、ご相談の状況がしばしば発生します。 手順: まっさらのブックを一冊用意する 元のデータの一つを選び、「セル範囲を」コピー、新しいブックに形式を選んで貼り付けの「数式」で貼り付ける 同様に他のデータも「セル範囲をコピー」して、新しいブックに形式を選んで貼り付けの「数式」で貼り付けて、全部のデータを1冊のブックに全て集める 集めたブックを保存、必要な数式を組み直して作成する。 いま問題が起きているブックから、「コピーしてタダ貼り付ける」「シートごと持ってくる」などは絶対に行わないのがポイントになります。 必要な書式関係は、上記手順で1つのブックに集めた後に、改めて手作業で施します。絶対にコピーして持ってきてはいけません。

関連するQ&A

  • エクセル シートをブックに分ける方法

    エクセル2003を使用しています。 ひとつのブックに、シートA、B、C とある場合、 それを、シートAだけのブック(ファイル)、 シートBのファイル、シートCのファイル というように、一気にファイルに分けることは可能でしょうか? できれば、ファイル名=シート名で、設定できるとうれしいです。 可能でしたら、方法を教えてください。 よろしくお願いいたします。

  • エクセルでブック間のシートの合体?教えてください。

    エクセルの作業で困っちゃいました。 同じホルダー内に 0210A.xls、sから0309A.xlsの12種類 0210B.xls、sから0309B.xlsの12種類 0210C.xls、sから0309C.xlsの12種類 0210D.xls、sから0309D.xlsの12種類 の48のブックがあります。(0210は2002年10月の意味です。) 各ブックは複数のシートを持っており、各ブックに共通してあるのは「AAA」、「BBB」、「CCC」の3種類で、それ以外のシートもあります。シートの順番は各ブックによりまちまちです。 これらのブックの共通する3種類のシートだけを合体して 0210AB.xlsから0309AB.xlsの12種類、(AとBの合体) 0210CD.xlsから0309CD.xlsの12種類、(CとDの合体) の24種類のブックを作りたいのです。 各ブックは「AAA」、「BBB」、「CCC」の3シートを持ちます。中身はオリジナルの各「AAA」、「BBB」、「CCC」の単純な寄せ集めです。 データは各シートとも1行目に項目、2行目以降にデータで、列はAF列まで使用しています。データの個数はまちまちで、オートフィルターを使用しています。 たとえば、0210A.xlsのシートAAAが200行であれば0210BのシートAAAのデータの一行目の項目は不要ですので2行目から最終行までコピーして201行以降に貼り付けるという感じです。同様にシートBBB、シートCCCも処理します。各シート1行目はオリジナルと同じ項目名とします。 手作業でやろうと思いましたが、誤りの発生もこわいのでVBAなどでうまくできる方法はないでしょうか?わたしのVBAの知識はマクロ自動記録ができるくらいなので助けてほしいのです。 Windows2000でエクセルも2000です。 よろしくお願いしま~す。

  • エクセル 複数ブックのリンク一括変換について

    エクセル 複数ブックのリンク一括変換について いつもお世話になっております。 会社でファイルサーバーがあるのですが、 現在かなり乱雑な管理で、フォルダやデータなど ほとんど無造作に置いてある状態です(^_^;) そんな中、データなどを探しにくいという 声が多数上がりフォルダ構成などを 見直すという事態になりました(T_T) そこで懸念されるのが、エクセルで ブック間のリンクを使用していると 思うのですが、複数のブックのリンク部分を 一括変換、もしくは比較的容易に 変換出来る方法をご存知の方いらっしゃいませんでしょうか? VLOOKUP関数などを使用していると思います。 =VLOOKUP(A1,'\\aaa\bbb\[book1.xls]Sheet1'!$A$1:$B$10,2) を =VLOOKUP(A1,'\\aaa\ccc\[book1.xls]Sheet1'!$A$1:$B$10,2) といったように変換したいです。 どうぞ宜しくお願いいたします。

  • 【エクセル】他のBookの、シート名を抽出したい

    ブックA,Bがあって、 ブックAのSheet1に「商品名、シリアル番号、商品サイズ・・・」とい ったような項目の表があります。また、Sheet1の表を基にして、数値の 違う表がSheet30まであります。 ブックBのSheet1のA列にはブックAのデータに対応するシリアル番号が ずらっと並べてあります(抜けてたり、多かったりするかもしれません)。 そこで、隣のB列に、A列に書いてあるシリアル番号をブックAから参照 (検索?)して、同じシリアル番号が入力されたセルのあるシートの、 シート名を表示したいです。おねがいします。 VLOOKUPで対応するシリアル番号のセルを探し出して、そのシートを表 示させるようなことを考えていたのだけど、参照するデータの列が左端 ではないし、検索するシートがたくさんあるし、ぜんぜんわかりませ ん。マクロを使用すれば出来るのでしょうか? エクセル2003を使用しています。 長文になってしまい、わかりにくいかと思いますが回答お願いします。

  • エクセル ブック内のシート間での行の参照?

    エクセルの同じブック内のシート間で、セルを参照するのではなく、行参照?させたいのですが・・・。 例えば、、  シート1    A    B    C    D     1行目 りんご みかん いちご ぶどう     2行目 赤    オレンジ  赤   紫 と入力すると同じようにシート2にも入力されるようにしたいのと、1行目と2行目の間に行を挿入しても同じようにシート2にも挿入されたり、 さらにはA列・B列のみ入力されたりするようにしたいのですが、(C列D列には別々のデータを入力したい)どのような方法がありますでしょうか?説明がわかりにくく申し訳ないのですが、宜しくお願いします。

  • Excel 微妙に違う2つのシートのデータをリンクさせる

    ある程度 同じデータのブック1とブック2があり、 ブック1は祭日などデータが無い日も日付があり、行が確保されていますが、 ブック2は祭日などデータが無い日は行が抜いてあります。 A列:日付、B列:曜日 C列:データ1、D列:リンクを入れる 04.11.22 月 56  =[ブック2.xls]シート1!H2 04.11.23 火  04.11.24 水 50  =[ブック2.xls]シート1!H3 04.11.25 木 52  =[ブック2.xls]シート1!H4 04.11.26 金 49  =[ブック2.xls]シート1!H5 04.11.29 月      04.11.30 火 A~C列はブック1、2とも同じデータです。(現在ブック1は1400行、ブック2は1300行くらい) D列にブック2のH列のデータを表記したいのですが、ドラッグなどでは行がずれてしまいます。 関数かマクロなど、何か良い方法を教えて下さい。 下記のことにも対応できれば更に便利なのですが・・。 ブック2のH列は時々J列とか他の列(表範囲内)に移動します。 そしてたまにはブック2のシート1もブック1に移動したりブック2に戻したりもします。

  • Excelのシート→ブック

    Excelのシート→ブック Excelに複数のシートがある状態です。 そのシートを個別のファイル名=シート名で一発で個別のブックにする方法はありますか?

  • エクセルのリンクについて

    こんにちは。 エクセルについての質問です。 通常、エクセルで他のエクセルからのデータを取得するとき ='[あああ.xls]sheet1'!$A$1 (「あああ.xls」のsheet1のA1セルのデータを取得) というような式を利用しますが、 この「AAA.xls」の部分を【指定したセルと同一名のものを取得】することは可能でしょうか? (すみません、意味がわかりませんよね。) 例えば… 「あああ.xls」というブックがあります。 そこに、セル「B1」に入力した名前と同じタイトルのブックの セル「A1」からデータを引っ張りたい。 「B1」が「いいい.xls」だったら「いいい.xls」のブックの「A1」から、 「B1」が「おおお.xls」だったら「おおお.xls」のブックの「A1」から データを持って来たいのです。 “=B1”というようなやり方ではさすがに無理なようで悩んでいます。 わかりにくい質問で申し訳ありません。 もしお分かりの方がいらっしゃいましたらお願い致します。

  • 複数のブックを新しいブックのSheet1にまとめたい

    教えてください。 「A」「B」「C」「D」「E」「F」「G」 と言った名前のエクセルファイルがあります。 実際は約50個ありますが・・・。 それぞれ、Sheet1にのみ同じフォーマットですが、行数というか、件数が異なります。 新しいエクセルブックのSheet1にA」のデータの下に「B」のデータを貼り付けるという風に、「A」~「G」をまとめて一つのシートにまとめたいです。コピペではなくマクロでできるということを知りました。 毎月作業することになるので、マクロを組んでおきたいと思っています。 しかし、マクロは単純作業を記録して実行するというような基本的なことしかわかりません。 専門的用語ではなく、 (1)ツールをクリック (2)すべてのブックを開いておく (3)Visual Basicをクリック などというように、手順を教えていただけないでしょうか? よろしくお願いします。

  • エクセル マクロを使って指定範囲のデータを別のブックの特定のシートにコ

    エクセル マクロを使って指定範囲のデータを別のブックの特定のシートにコピーしたい。 Book1のsheet1内のA1:C5を A B C 1 東京 1月 2 1/1 りんご 50 3 1/2 みかん 70 4 1/3 バナナ 50 5 1/5 イチゴ 60 A1でコピー先のBook名を指定 B1でコピー先のSheet名を指定 東京(Book名)の1月(Sheet名)のA2:C6にコピーしたい。 両Bookは同一パス内にありコピー先のsheetも事前にできています。 どなたかよろしくお願いいたします。 マクロ内の行にコメントで解説を入れていただけると助かります。

専門家に質問してみよう