- ベストアンサー
エクセルの並び替え
日付順に並び替えして、更にBの数字が同じであるデータを並べたいのですがどうすればいいのでしょうか? (上の表を、下の表のように変更したいのですが…) A(日付) B 1 2004/10/5 100 2 2004/10/8 105 3 2004/10/1 105 4 2004/10/5 110 5 2004/10/9 100 6 2004/10/3 105 7 2004/10/5 105 8 2004/10/8 110 ↓ A(日付) B 1 2004/10/1 105 2 2004/10/3 105 3 2004/10/5 105 4 2004/10/8 105 5 2004/10/5 100 6 2004/10/9 100 7 2004/10/5 110 8 2004/10/8 110
- みんなの回答 (14)
- 専門家の回答
質問者が選んだベストアンサー
#12です。その補足の >もしVBAを使うとどんなやり方があるのでしょうか ツール-マクロ-VBEでVBEの画面が出る。 そのメニューで挿入-標準モジュールで画面が出るから 空白の一番大きい部分に、下記をコピーし、貼りつける。 下記コードをコピーした内のどこでも良いが、クリックしておいて、 メニューの実行-Sub/ユーザー・・実行をクリック。 Sub test01() d = Range("A65536").End(xlUp).Row '-----ソート B-A列 Range(Cells(1, "A"), Cells(d, "B")).Sort _ Key1:=Range("B1"), Order1:=xlAscending, _ Key2:=Range("A1"), Order1:=xlAscending '-----最旧日付セット k = Cells(1, "B") h = Cells(1, "A") For i = 1 To d If k = Cells(i, "B") Then Cells(i, "C") = h Else k = Cells(i, "B") h = Cells(i, "A") Cells(i, "C") = h End If Next i '-----ソート C-B-A列 Range(Cells(1, "A"), Cells(d, "C")).Sort _ Key1:=Range("C1"), Order1:=xlAscending, _ Key2:=Range("B1"), Order1:=xlAscending, _ Key3:=Range("A1"), Order1:=xlAscending End Sub
その他の回答 (13)
- haruka1234567890
- ベストアンサー率18% (120/666)
No2です No1さん、横レスすみません。 もう少し詳しくお願いします。 どう昇順に指定するのですか?
- haruka1234567890
- ベストアンサー率18% (120/666)
一般機能では無理っぽいですね。 マクロでも使えばいけそうですが。 もう少し考えてみます マクロも可ですか?
補足
マクロもOKですので、よろしくお願いいたします。
- digirock
- ベストアンサー率22% (78/347)
並べ替えたいA・B列を選択して「昇順で並び替え」をクリックすると自動的に 今回の例のように変更されます。
お礼
回答ありがとうございます 自分でも試したのですが、思うように行きませんでした ちょっと説明が下手なので申し訳ありませんでした
- 1
- 2
お礼
更にVBAまで教えていただきありがとうございました 本当に勉強になりました また分からないときはご質問しますのでよろしくお願いいたします