こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

複数EXCELのセルデータを違うセルに移したい

昨日、複数のエクセルのファイルを1つのファイルの1枚のシートにするやり方を質問させていただきました。csvファイルでしたのでできなかったことがわかりました。お答えいただいた方本当にありがとうございました。助かりました。教えてgooのやり方がわからずコメントを書けませんでしたのでここに書かせていただきます。

参考:http://okwave.jp/qa/q7735457.html

さらに質問なのですがどなたかお願いいたします。

今、一枚のシートに日付ごとに項目が入っているのですが、項目の前の列にそれぞれ日付をつけるやり方があれば教えていただければと思います(下図のようになっています)。できればいらない部分は排除したいです。

図としましては

       B列  C列 (数字は行の番号です。)
      3      日付
      4   いらない部分
     5   ※  項目
      6   ※   項目
      7   日付

のような形になっています。

日付はC列の3行目からランダムに入っています。次の日付までB列の前に先の日付を入れたいです。(4,5の※部分にC3の日付を入れたいです)。あと出来ればいらない部分は消したいです。

または複数のEXCEL(.CSV)ファイルから1つのファイルの1枚のシートにする際にそれを行えたら嬉しいです。

複数のファイルの場合は

  B列  C列         (数字は行の番号です。)
  3    日付※
4   いらない部分
5    ※ 項目
        :
 
の形になっていてC列の3行目に日付が入っているのとC列4行目にいらない部分が入っているのはどのファイルも変わりありません。

わかる方がいらっしゃいましたらぜひともよろしくお願いします。また、CSVファイルになっていますのでお願いします。(図がへなへなになってしまって申し訳ありません)

投稿日時 - 2012-10-07 14:48:28

QNo.7736628

困ってます

質問者が選んだベストアンサー

元のCSVファイルの1つをふつーにエクセルで開いて見てみると、必ず
○C3セルに「日付」のデータが記入されている
○C4セルのデータは要らない
○C5セル以下の「不定数」のセルが必要
ということですね。

ついでに
○コピーしたいのはC3以下だけ。それ以外のA列やB列、D列以右は全く不要
という事で間違いないのですね。


それからご相談に書かれていませんが、エクセルに集約したあとは、C列のグループ先頭の日付のデータは通常は不要なので、
●C5以下の必要なデータだけをC列にコピーする
●その隣のB列にC3の日付をずらり転記する
事にします。

オマケで、前回回答のマクロは各CSVの先頭行にタイトル行が記入してある前提で書いていましたので、それもやめにします。


sub macro2()
 dim myPath as string
 dim myFile as string
 worksheets.add before:=worksheets(1)

’さっき調べたパスを下記に記入する。最後の¥を消してしまわないよう注意する
 mypath = "c:\Users\<UserName>\Documents\元データ" & "\"

 myfile = dir(mypath & "*.csv")
 do until myfile = ""
  workbooks.open mypath & myfile
  with thisworkbook.worksheets(1)
   range("C5:C" & range("C65536").end(xlup).row).copy .range("C65536").end(xlup).offset(1)
   range("C3").copy .range(.range("B65536").end(xlup).offset(1), .range("C65536").end(xlup).offset(0, -1))
  end with
  workbooks(myfile).close false
  myfile = dir()
 loop

end sub

投稿日時 - 2012-10-07 15:21:53

補足

keithinさん>こんな動物に何度も本当にありがとうございます。感謝の限りです。
 申し訳ありません。また説明の仕方がへたくそでして間違えている部分がありました。

○コピーしたいのはC3以下だけ。それ以外のA列やB列、D列以右は全く不要

のところですが列はCからM列まででした。説明不足で申し訳ありません。勉強になります。

●C5以下の必要なデータだけをC列にコピーする
●その隣のB列にC3の日付をずらり転記する

のところはkeithinさんが言われてる通りにしたいです。本当にありがとうございます。

投稿日時 - 2012-10-07 15:48:13

お礼

keithinさん>ありがとうございます。無事できるようになりました。今まで何日もかかっていた無駄な作業が一瞬で出来て本当にうれしく思います。本当に感謝です。ありがとうございます。

投稿日時 - 2012-10-07 16:10:01

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問