毎日の在庫データが記載されたファイル群の中から特定のデータのみを他のファイル(貼付け先ファイル)の一つのシートに縦一列にして取り込みたいのですがどうすればよいのでしょう?
具体的には…
・在庫データは年ごとにファイルが分かれている(ファイル名「在庫2003年.xls」など)
・在庫データファイルは月ごとにシートが分かれている(シート名「2003年04月」など)
・シートの中のA列に「日付」(上記のシートなら2003/4/1から2003/4/30まで)、D列に「製品A在庫数」、F列に「製品B在庫数」が入力されており他の列にも様々なデータが入力されている。
・貼付け先ファイルはA列に日付(2000/1/1~2006/12/10)が入力されている。
この状況で、例えば2003年4月と指定してマクロを実行すると、指定の在庫データファイルのシートから「製品A在庫数」と「製品B在庫数」を貼り付け先ファイルの、日付に対応したB列、C列の部分に入力してくれるようにしたいのですが、VBAの記述の仕方がわかりません。どうすればよいのでしょう?
お願いします!
No.1ベストアンサー
- 回答日時:
マクロを使わなくても、vlookup関数を使えば実現できます。
ただ、ファイルの大きさにもよりますが、かなり重い処理になってしまうと思います。
2003年4月に対応する、日付のB列に
=vlookup(A1, [在庫2003年.xls]2003年04月!A$1:D$1000, 4)
C列には
=vlookup(A1, [在庫2003年.xls]2003年04月!A$1:F$1000, 6)
と入力します。
上記「A1」は日付の記入されているセルのアドレスに書き換えてください。
また、A$1:D$1000およびA$1:F$1000の最後の「1000」は、2003年04月シートのデータ数に応じて書き換えます。
後は、この数式を下方向にコピーしてやれば、データが書き換わるはずです。
こんなに早く答えて頂いて有難うございます。
vlookup関数というものがあったんですね…便利ですね!
これで解決の見込みがついてきました。
ただ、アドバイス頂いたように試してみたところ、
「#NAME?」という風に表示されてしまいます。
自分なりに調べたところvlookup関数は空欄が範囲内になると
エラーが出てしまうとあったのですが…。
月ごとに30日までだったり、31日までだったりするので
範囲内に空欄が入ってしまうのは避けられないと思うのです。
マクロなど使ってこのエラーを回避できる方法があれば教えて
下さい!
No.3
- 回答日時:
#1です。
#NAME?は、関数名が間違っているときに表示されるエラーです。
VLOOKUPのつづりを間違えていないでしょうか?ご確認ください。
検索範囲に空白があっても問題はありません。
データが見つからない場合は、#N/Aが返ります。
No.2
- 回答日時:
#1です。
さらに、複数ファイルに対応することも考えてみました。
まず、H列にファイル名、I列にシート名を作ります。
H列
="在庫" & YEAR(A1) & "年.xls"
I列
=YEAR(A1) & "年" & TEXT(MONTH(A1), "00") & "月"
例によってA1は適切なセルのアドレスに書き換えてください。
続いて、先ほどのvlookupの参照シートを、上記文字列を利用して書き換えます。
B列
=VLOOKUP(A1, INDIRECT("["& H1 & "]" & I1 & "!A1:D1000"), 4)
C列
=VLOOKUP(A1, INDIRECT("["& H1 & "]" & I1 & "!A1:F1000"), 6)
そして、B・C・H・I列を、下方向にコピーしてやります。
これで、複数ファイルへの対応もできると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Linux用のインストーラー(USB...
-
bashでシングルクォート内の変...
-
ubuntu(linux)のシャットダウン...
-
ubuntuのシャットダウンが進ま...
-
ubuntuで デイスク/deb/loopと...
-
WineのRufusでデバイスを検知す...
-
ログにserver reached MaxReque...
-
shellscript内のコマンドを、su...
-
Lubuntuのデスクトップのアイコ...
-
AWSでSSH接続をしたいのですが...
-
Ubuntu on Xorgのログインについて
-
jsLinuxのコマンドについて。 a...
-
Linuxミントで困っています。 s...
-
Linuxへの移行 来年でWindows10...
-
Ububtuでファイル共有できない...
-
ntpq -pの結果が全てstratum 16...
-
Kali Linuxで起動できない - Mi...
-
Linux のシェルスクリプトの強...
-
Ubuntu でinvalid filenameとな...
-
Fedoraのupgradeで、libruby.so...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ubuntu(linux)のシャットダウン...
-
bashでシングルクォート内の変...
-
Linuxへの移行 来年でWindows10...
-
ubuntuで デイスク/deb/loopと...
-
Linux Mint 日本語入力できなく...
-
AWSでSSH接続をしたいのですが...
-
shellscript内のコマンドを、su...
-
ubuntuのシャットダウンが進ま...
-
ログにserver reached MaxReque...
-
LinuxMintが突然フリーズする
-
linuxサーバーのキャッシュをク...
-
Lubuntuのデスクトップのアイコ...
-
Windowsのローカルディレクトリ...
-
Ubuntu on Xorgのログインについて
-
Linux のシェルスクリプトの強...
-
ssl_request_logの必要性について
-
2TBのUSBメモリを2000円ほどで...
-
tarで纏める際に、複数場外した...
-
[Linux Mint] インストールした...
-
LinuxのノートパソコンでDVDコ...
おすすめ情報