- ベストアンサー
行と列の入れ替え
エクセルの行と列の入れ替えで悩んでいます。 教えてください。 下記の様なデータが500人分あったとして 山田太郎 京都府 xxx@xxx.co.jp 東京花子 東京都 xxxxx@xxx.com 大阪次郎 大阪府 xxxxxxx@xxxxx.ne.jp 次のようにするにはどうしたらいいのでしょうか? 山田太郎 京都府 xxx@xxx.co.jp 東京花子 東京都 xxxxx@xxx.com 大阪次郎 大阪府 xxxxxxx@xxxxx.ne.jp 悩んでいます、みなさん教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
マクロでよければ、B1 から書き出すように作りました。 シートモジュールか標準モジュールでお使いください。 Sub TransPosePrc() Dim DataArray Dim TransData() As Variant Dim i As Long, j As Long DataArray = Range("A1", Range("A65536").End(xlUp)).Value If UBound(DataArray, 1) + 1 Mod 4 > 255 Then 'B列から出力するなら256より1つ少ない MsgBox "データを切り分けてください", 16 Exit Sub End If ReDim TransData(1 To 3, 1 To 1) j = 1 For i = LBound(DataArray, 1) To UBound(DataArray, 1) Step 4 ReDim Preserve TransData(1 To 3, 1 To j) TransData(1, j) = DataArray(i, 1) TransData(2, j) = DataArray(i + 1, 1) TransData(3, j) = DataArray(i + 2, 1) j = j + 1 Next i Range("B1").Resize(UBound(TransData, 1), 3).Value = TransData() End Sub
その他の回答 (3)
- telescope
- ベストアンサー率54% (1069/1958)
A1セルからデータが入力されているとして、 B1セルに =INDIRECT("A"&ROW(B1)*4-3) C1セルに =INDIRECT("A"&ROW(C1)*4-2) D1セルに =INDIRECT("A"&ROW(D1)*4-1) 下方向にフィルします。 4行ごとにデータが入っているので、row関数で行番号を取得して4を掛けます。 INDIRECT関数は、セルの内容を返します。 A1セルがタイトルで、A2セルからデータなら =INDIRECT("A"&(ROW(B2)-1)*4-2)
お礼
ありがとうございます。 試してみます。
- Masa1977
- ベストアンサー率36% (44/119)
あんまりきれいな方法じゃありませんが、以下の方法はどうでしょうか? 注・方法が駄目でデータを壊すとアレなので、データのバックアップを取ってから試してくださいね <前提> 全てのデータがA列記述されていて n+1行目に氏名、 n+2行目に住所、 n+3行目にメールアドレス、 n+4行目に空白行、 という繰り返しになっている。 B~D列が空白になっている。 <step1> セルB1に =IF(MOD(ROW(B1),4)=1,A1,"") と入力。 セルC1に =IF(MOD(ROW(C1),4)=1,A2,"") と入力。 せるD1に =IF(MOD(ROW(D1),4)=1,A3,"") と入力。 <step2> セルB1からD1を選択し、データの最終行まで纏めてコピー。 <step3> シート全体をコピーして、別のシートに形式を選択して貼り付けるで「値」のみを貼り付ける。 <step4> A列を削除 <step5> オートフィルタで空白以外を表示させる・・・・・って感じでどうかなぁ
お礼
ありがとうございます。 試してみます。m(__)m
- iiitttooo
- ベストアンサー率26% (83/308)
おはようございます。 入れ替える範囲(と言っても全てだと思いますが)を反転させます。 『編集』『コピー』と進んでください。 『貼り付け』のときに『形式を選択して貼り付ける』を選ぶと『行列を変換する』にチェックを入れてください。 ただし、入れ替え得る限度があります。
お礼
ありがとうございます。 しかしながら、その方法では、単に行と列が入れ替わるだけなので、 きちんとした一覧にするためには、移動させる手作業が発生しますよね? それも省きたいのです。。。
お礼
ありがとうございます。 なるほど、大変参考になりました。