- 締切済み
複数のエクセルから必要な情報のみシートへ表示させる
工事毎にエクセルで工程表を作成しました。 データファイルは100コほどあり、1つのフォルダに保存しています。 材料の発注予定日・工事名をピックアップして、発注担当が全ての工事の発注時期を確認できるようにリストを作りたいです。 工程表のシート名は『3ヵ月』『6ヵ月』『12ヵ月』と工期によってシートを使い分けており、作成後は『3ヵ月』『6ヵ月』『12ヵ月』のいずれかのシートだけをのこしています。 『3ヵ月』『6ヵ月』『12ヵ月』のシートから取り出したい情報の位置は、 (1)材料の発注予定日: E15 (2)工事名 : C6 にあります。 それをブック1のSheet1の (1)材料の発注予定日: C9 (2)工事名 : B9 のセル以降に表示させたいです。 情報提供をお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
シートのデータをテーマ(工事や工事工程など)ごとに作って、そのシート群やブック群を横断的に参照して、望みのシートデータにするのは、関数では、複雑になって無理でしょう。 多分VBAも経験もないのだろうが、そもそも、エクセルでVBAも出来ないのに、仕事に絡んだことに手を出す、取り掛かるということに無理があるのです。 関数でも他ブック(他シート)参照する式があるので、その辺から勉強したら。そんなことも1言も書いてないということは、 勉強してないのだろう。 例 http://www.excel-jiten.net/formula/ref_other_books.htm の最後の方lなど、Googleで「エクセル 他ブック参照」で照会して読んで、使ってみる。 エクセルのシート表は、データ(ベースなど)から抜き出して、集約、集計、編集などした結果(表示、閲覧、印刷など)に使う(似は適当な)ものという気がする。 こんなところへ他人頼りに丸投げして、文章回答でやろうとするのは無理。 とりあえずは操作で処理することで苦労するしかない。そのうち関数や簡単なVBAで手助けできる部分があるかもしれない。 まず判らないことの焦点でも整理して、質問しすべきだ。 ーー 一番良いのは質問の課題に相応しい既製のソフトが見つかると良いが、やる人のそれぞれの好み(仕様)が合わないだろう。
- keithin
- ベストアンサー率66% (5278/7941)
とりあえず簡単のため,纏めブックを「用意のどこかのフォルダ」の中に,つまりデータファイルの隣りに入れておきます 纏めブックを開き ALT+F11を押す 現れた画面で挿入メニューから標準モジュールを挿入する 現れたシートに下記をコピー貼り付ける sub macro1() dim myFile as string dim myPath as string dim i as long mypath = thisworkbook.path & "\" myfile = dir(mypath & "*.xls*") i = 9 do until myfile = "" if myfile <> thisworkbook.name then cells(i+3, "B").select cells(i, "B").formula = "='" & mypath & "[" & myfile & "]3ヶ月'!C6" cells(i, "C").formula = "='" & mypath & "[" & myfile & "]3ヶ月'!E15" cells(i+1,"B").formula ="='" & mypath & "[" & myfile & "]6ヶ月'!C6" cells(i+1,"C").formula ="='" & mypath & "[" & myfile & "]6ヶ月'!E15" cells(i+2,"B").formula ="='" & mypath & "[" & myfile & "]12ヶ月'!C6" cells(i+2,"C").formula ="='" & mypath & "[" & myfile & "]12ヶ月'!E15" i = i + 3 end if myfile = dir() loop end sub ファイルメニューから終了してエクセルに戻る ALT+F8を押し,macro1を実行する。 #ワザワザマクロとか使わなくても,ネットから入手できる「ファイル一覧ソフト」とか,ちゃちゃっとコマンドプロンプトで操作することで「ファイル一覧のテキストファイル(CSVファイルなど)」を用意してエクセルに読み込めば,あとはちょっとした数式と置換などの手作業で,必要な数式を一斉に作成してセルに埋める作業も簡単にできます。