EXCELの「行列を入れ替える」マクロについてどなたか教えていただけないでしょうか?
下記のようにならんだDATAがあります。
A列 B列 C列 D列 E列
(1行)2002/12/17 15240 15280 15220 15220
(2行)
(3行)
(4行)
(5行)2002/12/18 15250 15250 15210 15210
(6行)
(7行)
(8行)
(9行)2002/12/19 15220 15310 15220 15310
(10行)
(11行)
(12行)
(13行)2002/12/20 15220 15260 15210 15230
(14行)
(15行)
(16行)
(17行)2002/12/24 15300 15310 15270 15310
(18行)
(19行)
(20行)
(21行)2002/12/25 15300 15340 15300 15600 . . . . . . . . . . . . . . . . . . . . . . .
と,このようにDATAは日付の横に数値が4つずつ横に並んでおりますが、この4つの数値をその4つ目の数値の真横のF列から縦に4つ並べたいのですが、一気にできるマクロがないものでしょうか?下記のようにです。
A列 B列 C列 D列 E列 F列
2002/12/17 15240
15280
15220
15220
2002/12/18 15250
15250
15210
15210
2002/12/19 15220
15310
15220
15310
.
.
.
といった感じに一気にマクロで処理してしまいたいのです。DATAはかなりの行数あり、すべて3行の間隔があります。日付の横に4つの数値が規則的に並んでいるというものです。何回でもマクロボタン一発で4つの横に並んだ数値のみを縦に並べた4つの数値にしたいのです。つたない説明で大変申し訳ありませんが、どなたかわかる方お教えくださいませ。
No.5ベストアンサー
- 回答日時:
短くします
Sub test()
Dim LastRow, Trow, i As Long
LastRow = Range("A65536").End(xlUp).Row + 3
For i = 1 To Int(LastRow / 4)
Trow = i * 4 - 3
Cells(Trow, 6) = Cells(Trow, 2)
Cells(Trow + 1, 6) = Cells(Trow, 3)
Cells(Trow + 2, 6) = Cells(Trow, 4)
Cells(Trow + 3, 6) = Cells(Trow, 5)
Next
Range(Cells(1, 2), Cells(LastRow, 5)).Clear
End Sub
No.4
- 回答日時:
マクロはこんな感じでどうでしょうか
Sub test()
Dim LastRow, Trow, i As Long
LastRow = Range("A65536").End(xlUp).Row + 3
For i = 1 To Int(LastRow / 4)
Trow = i * 4 - 3
Cells(Trow, 6) = Cells(Trow, 2)
Cells(Trow + 1, 6) = Cells(Trow, 3)
Cells(Trow + 2, 6) = Cells(Trow, 4)
Cells(Trow + 3, 6) = Cells(Trow, 5)
Cells(Trow, 2).ClearContents
Cells(Trow, 3).ClearContents
Cells(Trow, 4).ClearContents
Cells(Trow, 5).ClearContents
Next
End Sub
No.3
- 回答日時:
B1を選択した状態からマクロ自動記録を開始して、相対参照にして(記録停止ダイアログの、停止ボタンの右側にあるのがそうです)、コピー、形式を指定して貼り付けで、行列入れ替え貼り付け後、B5セルを選択。
相対参照を切ってから、自動記録停止。ここまでやった上で、記録された内容を呈示して、どうすれば、連続的に出来るのか質問されると、回答が付くかと思います。(あるいは、VBAのループ処理が理解できていれば、ご自分でお分かりになるでしょう)
No.2
- 回答日時:
もちろんVBAでもできるのですが、関数でもできます。
元のデータがSheet1にあるとして、別シートのA1に
=IF(MOD(ROW(),4)=1,OFFSET(Sheet1!$A$1,INT((ROW()-1)/4)*4,0),"")
F1に
=OFFSET(Sheet1!$A$1,INT((ROW()-1)/4)*4,MOD(ROW()-1,4)+1)
をそれぞれ貼り付けて、下方向にコピーしてください
求める形式の表になります
後は全体をコピーして「編集」→「形式を選択して貼り付け」→「値」で貼り付けてください
ご回答大変にありがとうございます。試しましたが、これでもできました^^1つの事項に様々なアプローチがあるものなのですね^^大変に参考になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルでのマクロを使ったデータの並べ替え 3 2022/12/03 18:54
- Excel(エクセル) ExcelのIF関数について 4 2023/05/24 12:54
- Visual Basic(VBA) Excelで横書き50行の漢字テストデータを縦書きのテスト問題にしたい。 6 2022/04/27 15:03
- Excel(エクセル) Excel_マクロ_複数のシートのVLOOKUPで表示された#N/A以外に色付けをしたいです 1 2023/02/16 22:37
- Visual Basic(VBA) 4月~3月まで12カ月横に並んだ表へ指定範囲を貼り付けたい。 Sheet2の指定範囲、Range(" 2 2022/11/30 16:37
- Excel(エクセル) エクセルのマクロ作成について教えてください 5 2023/02/20 00:39
- Visual Basic(VBA) Sheet1をフィルターで「りんご」を抽出し、Sheet2へ地域を貼り付ける下記マクロを変更して S 2 2022/12/11 03:01
- Excel(エクセル) 列の複数ある空白セルを飛ばして、セルに並べて表示したい 3 2023/02/12 16:49
- Excel(エクセル) 列を挿入しても式の一部を固定するには 6 2023/05/31 21:57
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでの作業計算方法について
-
Microsoft1Officeの互換ソフト...
-
【マクロ】その時、その時で変...
-
はがきについて。
-
【マクロ】読取専用のファイル...
-
エクセル初心者です 関数の入れ...
-
【関数】適切な文字数の数字を...
-
LOOKUP関数を使えばいいのでし...
-
【関数】先頭だけにある、半角...
-
Excel ピボットテーブルで日付...
-
Excelのpivotについて質問です
-
時間によってファイル名が変わ...
-
エクセル 白黒印刷で白線を印刷...
-
Aというブックの1というシート...
-
エクセル関数を教えてください
-
WPS OFFICEでの縦書きについて
-
Excelのチェックボックスの使い...
-
エクセルの条件付き書式につい...
-
エクセルのセルに同じ大きさの...
-
エクセルの関数について教えて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報