人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルで下記のようなデータとなっている場合に、

田中 中川
本多 湯沢
山本 田中
岸本 土田
土田

これを、下記のように並べ替える方法はありますか?
田中 田中
本多
山本
岸本
土田 土田
中川
湯沢

つまり、1列目は動かさず、1列目のデータを元に2列目のデータの中で1列目と同じデータがある場合、
そのヨコに持ってくる。
該当するデータがない場合は、そこは空欄となる。
2列目にしかないデータの場合は、1列目の一番下の、データ未入力部のヨコにもってくる。

このようにしたいのですが、どのようにすればよいでしょうか?

●質問者: kanienoteiou
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:エクセル データ 並べ替え 中川 入力
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● SALINGER
●60ポイント ベストアンサー

VBAを使えば一発でできます。

以下のコードをコピペして実行してみてください。

コードではA列とB列にデータがある場合を想定して作ってあります。

Sub Macro()
 Application.ScreenUpdating = False
 Dim lastRow1 As Long
 Dim lastRow2 As Long
 Dim i As Long
 Dim j As Long
 Dim f As Boolean
 Dim c As Long
 c = 1
 lastRow1 = Cells(Rows.Count, 1).End(xlUp).Row
 lastRow2 = Cells(Rows.Count, 2).End(xlUp).Row
 Columns("C:C").Insert Shift:=xlToRight
 For i = 1 To lastRow2
 f = False
 For j = 1 To lastRow1
 If Cells(i, 2).Value = Cells(j, 1).Value Then
 f = True
 Exit For
 End If
 Next j
 If f Then
 Cells(j, 3).Value = Cells(i, 2).Value
 Else
 Cells(lastRow1 + c, 3).Value = Cells(i, 2).Value
 c = c + 1
 End If
 Next i
 Columns("B:B").Delete Shift:=xlToLeft
 Application.ScreenUpdating = True
End Sub
◎質問者からの返答

すばらしい!完璧です!

おかげさまで解決しました!!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ