電子書籍の厳選無料作品が豊富!

エクセルの表の組換えといったらいいのでしょうか、
添付ファイル ①の表があって、その表の数字、アルファペットの文字を、
②の表に並び変えるためにはどうすればよいかという質問です。
簡単そうで難しく、ギブアップしてしまいました。
まず、列Aの数字がH列に入り、
列Bのアルファベット文字がI列に入る。
次にC,D,E,F列のアルファペットは基本的にはJ列に下に向かって入るのですが、
空白のセルは詰めて入る。
①の表の1つのレコードの処理が終わったら、
①の表のA列の次のレコードの数字は、②の表のJ列の最後に入ったアルファペットの
次のレコードのH列に入る、、、といった具合にしたいのですが、

とっかかりもわからなくなってしまいました。
どなたか助けてください。
よろしくお願いします。

「エクセル表の組換えについて教えてください」の質問画像

A 回答 (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
    • good
    • 0
この回答へのお礼

ありがとうございます。
現在、今の仕事に組み込み中です。
まだ、結論でていませんが、
ありがとうございます。

お礼日時:2016/05/08 00:21

マクロですか?



以下、サンプルです

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
「エクセル表の組換えについて教えてください」の回答画像1
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2016/05/08 00:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!