• ベストアンサー

エクセルの並び替え

日付順に並び替えして、更に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  

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.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

yuuki1213yuuki
質問者

お礼

更にVBAまで教えていただきありがとうございました 本当に勉強になりました また分からないときはご質問しますのでよろしくお願いいたします

その他の回答 (13)

回答No.3

No2です No1さん、横レスすみません。 もう少し詳しくお願いします。 どう昇順に指定するのですか?

回答No.2

一般機能では無理っぽいですね。 マクロでも使えばいけそうですが。 もう少し考えてみます マクロも可ですか?

yuuki1213yuuki
質問者

補足

マクロもOKですので、よろしくお願いいたします。

  • digirock
  • ベストアンサー率22% (78/347)
回答No.1

並べ替えたいA・B列を選択して「昇順で並び替え」をクリックすると自動的に 今回の例のように変更されます。

yuuki1213yuuki
質問者

お礼

回答ありがとうございます 自分でも試したのですが、思うように行きませんでした ちょっと説明が下手なので申し訳ありませんでした