- ベストアンサー
エクセルでデータ変換
エクセルで次の データ形式A から データ形式B へ変換したいのですが どのようなマクロを書けば、実現できるでしょうか。 実現できればいいので、マクロでもツールでもOKです。 ■データ形式A ジャンル1 項目1 項目2 項目3 ジャンル2 項目1 ジャンル3 項目1 項目2 ■データ形式B ジャンル1 項目1 ジャンル1 項目2 ジャンル1 項目3 ジャンル2 項目1 ジャンル3 項目1 ジャンル3 項目2 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
マクロの質問なら、表、出力先のシートや位置(行列)などの情報がないと回答しにくい 行、列の繰り返し処理が簡単 行方向に1行目、2行目・・・h行目と処理を進めていき 列方向は2列目、3列目・・・v列目と処理を進めていく これを合わせた処理をすればよい 1行目の2列目にデータがあるか、あれば出力、無ければ次 1行目の3列目にデータがあるか、あれば出力、無ければ次 1行目の4列目にデータがあるか、あれば出力、無ければ次 : : 1行目のv列目にデータがあるか、あれば出力、無ければ次 2行目の2列目にデータがあるか、あれば出力、無ければ次 2行目の3列目にデータがあるか、あれば出力、無ければ次 : : h行目のv列目にデータがあるか、あれば出力、無ければおわり サンプルとしてA1を基準に表があり、F1を基準にして出力するとする 表は3行×4列、したがって処理行数は3、処理列数は4とします 変数 h:処理行 v:処理列 i:出力先の処理行 i=1 for h=1 to 3 for v=2 to 4 if cells(h,v).value<>"" then cells(i,6).value=cells(h,1).value cells(i,7).value=cells(h,v).value i=i+1 end if next v next h こんな感じでしょうかね
その他の回答 (1)
- yyr446
- ベストアンサー率65% (870/1330)
特に難しい部分はありません。 初心者でも簡単に作れるVBAマクロです。 まず、勉強しましょう。質問はその後です。 参考サイトをあげておきます http://www.happy2-island.com/excelsmile/ http://www.asahi-net.or.jp/~ZN3Y-NGI/YNxv201.html
補足
> まず、勉強しましょう。質問はその後です。 回答ありがとうございます。しかし、見当はずれの回答です。ごめんなさい。 マクロが得意な方からのロジックを参考にしただけです。
お礼
すばらしい!!! できました。 ありがとうございます! 参考までにまとめた関数↓ Sub 変換() 'h: 処理行 'v: 処理列 'i: 出力先の処理行 i = 1 For h = 1 To 3 For v = 2 To 4 If Cells(h, v).Value <> "" Then Cells(i, 6).Value = Cells(h, 1).Value Cells(i, 7).Value = Cells(h, v).Value i = i + 1 End If Next v Next h End Sub