• ベストアンサー

エクセルデータの縦横変換について

エクセルの横に並んだデータ複数行分を 下の図のように変換する効率のよい方法はありますでしょうか? ご存知の方がいらっしゃれば教えてください。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! VBAでの一例です。 アップされている画像で3行目以降がSheet1にあり、Sheet2に表示するようにしてみました。 Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面(カーソルが点滅しているところ)に ↓のコードをコピー&ペースト → Excel画面に戻り、マクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub Sample1() 'この行から Dim i As Long, j As Long, cnt As Long, wS As Worksheet Set wS = Worksheets("Sheet2") '←Sheet2は実際のSheet名に! wS.Range("A:B").ClearContents With Worksheets("Sheet1") '←Sheet1も実際のSheet名に! For i = 3 To .Cells(Rows.Count, "A").End(xlUp).Row For j = 2 To .Cells(i, Columns.Count).End(xlToLeft).Column cnt = cnt + 1 wS.Cells(cnt, "A") = .Cells(i, "A") wS.Cells(cnt, "B") = .Cells(i, j) Next j Next i End With End Sub 'この行まで ※ 関数でないので、Sheet1のデータ変更があるたびにマクロを実行する必要があります。m(_ _)m

m6a8s4a0
質問者

お礼

非常にシンプルでわかりやすくしていただきありがとうございました。 おかげ様でうまくいきました。

その他の回答 (2)

noname#204879
noname#204879
回答No.2

図では、各県とも1~5町までと揃っているけど、後になって「アレは例示したまでで、実際は3町までとか6町まであったりする、つまりバラバラ」などと言い出さないでしょうね。

  • minis8566
  • ベストアンサー率50% (29/58)
回答No.1

表の縦横を入れ替えて、列を切り取って纏めればいいってことでしょうか。 こんなかんじに。 http://kokoro.kir.jp/excel/line-row-replace.html

m6a8s4a0
質問者

お礼

行と列の入れ替え+それを2列にまとめなければならない作業ですが、 このやり方も参考にさせていただきました。 ありがとうございます。

関連するQ&A