教えて!gooグレードポイントがdポイントに!

2つのエクセルデータの並べ替えの方法がわかりません。
下の様なエクセルデータがあります。

A列 B列 C列 D列 E列 F列
1  A社 100 1  B社 100
2  B社 99  2  C社 99
3  C社 98  3  A社 98
4  D社 97  4  E社 97
5  E社 96  5  D社 96

データとしてはA列~C列、D列~F列がそれぞれのデータです。
B列の会社順にD列~F列を並べ替えることは可能でしょうか?
(下の表の様に並べ替えたいのですが・・・)

A列 B列 C列 D列 E列 F列
1  A社 100 3  A社 98
2  B社 99  1  B社 100
3  C社 98   2  C社 99
4  D社 97  5  D社 96
5  E社 96  4  E社 97

よろしくお願いします。

教えて!goo グレード

A 回答 (1件)

こんばんは!



D~F列をB列(社名)順に並び替えしたい!というコトですよね?
コツコツ手を動かせば簡単に出来る方法として・・・

↓の画像ではG1セルに
=IF(COUNTIF($E:$E,$B1),INDEX(D:D,MATCH($B1,$E:$E,0)),"")
という数式を入れフィルハンドルでI1セルまでコピー → そのまま下へフィル&コピーしています。

そしてG~I列すべてを範囲指定 → 右クリック → コピー → D1セルを選択
→ 右クリック → 「形式を選択して貼り付け」 → 「値」を選択しOK
最後にG~I列を削除して完了です。

※ この一連の操作をVBAでやると↓のようなコードでも大丈夫だと思います。
シートモジュールです。

Sub Sample1() '//この行から
Dim lastRow As Long
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
Range("G:I").Insert
With Range(Cells(1, "G"), Cells(lastRow, "I"))
.Formula = "=IF(COUNTIF($E:$E,$B1),INDEX(D:D,MATCH($B1,$E:$E,False)),"""")"
.Value = .Value
.Cut Range("D1")
End With
Range("G:I").Delete
End Sub '//この行まで

こんな感じではどうでしょうか?m(_ _)m
「エクセル 2つの表の並べ替え」の回答画像1
    • good
    • 0
この回答へのお礼

ありがとうございます!!!
今まで500件近いデータを1つずつ並べ替えていました。
感激で涙が出そうです。

本当にありがとうございました。

お礼日時:2015/04/02 09:36

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

このQ&Aを見た人はこんなQ&Aも見ています

教えて!goo グレード

人気Q&Aランキング