エクセルの表の組換えといったらいいのでしょうか、
添付ファイル ①の表があって、その表の数字、アルファペットの文字を、
②の表に並び変えるためにはどうすればよいかという質問です。
簡単そうで難しく、ギブアップしてしまいました。
まず、列Aの数字がH列に入り、
列Bのアルファベット文字がI列に入る。
次にC,D,E,F列のアルファペットは基本的にはJ列に下に向かって入るのですが、
空白のセルは詰めて入る。
①の表の1つのレコードの処理が終わったら、
①の表のA列の次のレコードの数字は、②の表のJ列の最後に入ったアルファペットの
次のレコードのH列に入る、、、といった具合にしたいのですが、
とっかかりもわからなくなってしまいました。
どなたか助けてください。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
こんばんは!
VBA向きの質問だと思います。
すでに回答は出ていますが、一例です。
画像通りの配置だとします。
シートモジュールにしてみてください。
Sub Sample1()
Dim i As Long, j As Long, c As Range
Range("H:J").ClearContents
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
Set c = Range("H:H").Find(what:=Cells(i, "A"), LookIn:=xlValues, lookat:=xlWhole)
If c Is Nothing Then
With Cells(Rows.Count, "J").End(xlUp).Offset(1)
.Offset(, -2) = Cells(i, "A")
.Offset(, -1) = Cells(i, "B")
End With
End If
For j = 3 To 6 '←C列~F列まで//
If Cells(i, j) <> "" Then
Cells(Rows.Count, "J").End(xlUp).Offset(1) = Cells(i, j)
End If
Next j
Next i
Range("H1:J1").Delete shift:=xlUp
End Sub
こんな感じではどうでしょうか?m(_ _)m
No.1
- 回答日時:
マクロですか?
以下、サンプルです
Sub Sample()
Const FirstColumn = 1
Const FirstRow = 1
Const Cell_C = 3
Const Cell_F = 6
Dim LastRow As Integer
Dim EmptyRow As Integer: EmptyRow = 1
'A列の最終行を取得
LastRow = Cells(Rows.Count, FirstColumn).End(xlUp).Row
'最終行までのデータの組み換え処理を行う
For i = FirstRow To LastRow
Cells(EmptyRow, "H") = Cells(i, 1)
Cells(EmptyRow, "I") = Cells(i, 2)
For j = Cell_C To Cell_F
If Not Cells(i, j) = "" Then
Cells(EmptyRow, "J") = Cells(i, j)
EmptyRow = EmptyRow + 1
End If
Next
Next
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Visual Basic(VBA) EXCEL VBAで教えてください。 1 2022/12/22 04:20
- Excel(エクセル) <スプレッドシート>IF関数の複数条件について 5 2022/10/27 14:38
- Excel(エクセル) countif関数について質問 4 2022/06/14 12:11
- Visual Basic(VBA) A列にある値をB列・C列にVBAで切り出し 3 2022/04/09 19:20
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Excel(エクセル) エクセルのことで教えてください。 A1セルに、 別シートのA1セルが1のときは「A」、2のときは「B 4 2023/02/24 23:08
- Excel(エクセル) Excelの関数について 3 2022/11/13 23:47
- Excel(エクセル) [オートフィルター]機能について 3 2023/02/04 14:32
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PowerPointで表の1つの列だけ...
-
エクセルで二つの数字の小さい...
-
エクセルで最初のスペースまで...
-
エクセル(勝手に太字になる)
-
エクセル 文字数 多い順 並...
-
2つのエクセルのデータを同じよ...
-
エクセルで、列の空欄に隣の列...
-
VBAで文字列を数値に変換したい
-
エクセルの表から正の数、負の...
-
エクセルで文字が混じった数字...
-
エクセル 同じ値を探して隣の...
-
「B列が日曜の場合」C列に/...
-
B列の値がA列にあるかを調べる関数
-
Excel、市から登録している住所...
-
EXCELで 一桁の数値を二桁に
-
エクセルの並び変えで、空白セ...
-
A列がない・・・A列が非表示に...
-
Excelで半角の文字を含むセルを...
-
【エクセル】指定した文字以外...
-
オートフィルターをかけ、#N/A...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
エクセルで最初のスペースまで...
-
2つのエクセルのデータを同じよ...
-
エクセル 文字数 多い順 並...
-
VBAで文字列を数値に変換したい
-
エクセル(勝手に太字になる)
-
エクセルで文字が混じった数字...
-
「B列が日曜の場合」C列に/...
-
エクセルの表から正の数、負の...
-
Excelで半角の文字を含むセルを...
-
エクセル 同じ値を探して隣の...
-
Excel、市から登録している住所...
-
エクセルの項目軸を左寄せにしたい
-
EXCELで 一桁の数値を二桁に
-
VBA 連続行データを5行ずつ隣の...
-
エクセル 時間帯の重複の有無
-
エクセルで、列の空欄に隣の列...
-
オートフィルターをかけ、#N/A...
-
A列がない・・・A列が非表示に...
おすすめ情報