Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
  • ベストアンサー

エクセル 個数が多い順に並び替え

添付のエクセルのデータで。 B列に、a,b,c,d という文字が入っています。 これを並び替えして、 b b b b b b a a a c c d このようにして、しかも、上から多い順に並び替えるには どうすればいいでしょうか? 目的は、a,b,c,d それそれの中で、多い順番と、どのくらい個数があるかを知ることです。 よろしくお願いします。

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

  • ベストアンサー
  • SortaNerd
  • ベストアンサー率43% (1185/2748)
回答No.5

No2です。 すいません、先ほどの方法では文字の数が同じものがあった場合にまずいことになります。 例 : あ c 1 い a 2 う b 2 え a 2 お b 2 ↓ い a 2 う b 2 え a 2 お b 2 あ c 1 これを防ぐために、並び替えの際にB列をキーに追加してください。 なおバージョンによって表示は異なると思います。(画像はOffice2007)

adslmodemu
質問者

お礼

どうもありがとうございます。 やってみました。ほんとですね! 画像を添付していただいていたので、わかりやすかったです。 助かりました。

すると、全ての回答が全文表示されます。

その他の回答 (5)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.6

No4です。 使用法ですね。以下の手順をためしてください。 1.AltキーとF11キーをいっしょに押して Visual Basic Editor を呼び出します。 2.Visual Basic Editor のメニューから挿入、標準モジュールで、出てきたコードウィンド(右側の白い広い部分)に回答したコード(SubからEnd Subまで)をコピーして貼り付けします。 3.また、Alt+F11キーでワークシートへもどります. 4.エクセルのメニューから、「ツール」、「マクロ」、「マクロ」で出てきたマクロ名(test01)を選択して実行します。

adslmodemu
質問者

お礼

度々のご回答、ありがとうございました。 この方法でも、できました!

すると、全ての回答が全文表示されます。
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.4

No3です。ねぼけて間違ってました。訂正です。 Sub test01() Dim myRng As Range Set myRng = Range("B1", Cells(Rows.Count, "B").End(xlUp)) Range("C1").Formula = "=COUNTIF(" & myRng.Address & ",B1)" Range("C1").AutoFill Destination:=myRng.Offset(0, 1) myRng.Offset(0, -1).Resize(, 3).Sort _ Key1:=Range("C1"), Order1:=xlDescending, Key2:=Range("B1"), Order2:=xlAscending, Header:=xlNo End Sub

adslmodemu
質問者

お礼

ご回答ありがとうございました。 教えていただいたこれらを、どの部分に持ってきて、どうすればいいのかが分からない状況です。。

すると、全ての回答が全文表示されます。
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

VBAの一例です。 データは1行目からあるものとします。 多い順に並び替え、C列に個数を出します。 Sub test01() Dim myRng As Range Set myRng = Range("B1", Cells(Rows.Count, "B").End(xlUp)) Range("C1").FormulaR1C1 = "=COUNTIF(R1C2:R10C2,RC[-1])" Range("C1").AutoFill Destination:=myRng.Offset(0, 1) myRng.Offset(0, -1).Resize(, 3).Sort _ Key1:=Range("C1"), Order1:=xlDescending, Key2:=Range("B1"), Order2:=xlAscending, Header:=xlNo End Sub

すると、全ての回答が全文表示されます。
  • SortaNerd
  • ベストアンサー率43% (1185/2748)
回答No.2

以下の方法でできました。 C1に =COUNTIF($B$1:$B$◆,B1) と入れ(◆はB列最後尾)、下にオートフィル。 そののち、C列をキーに降順でデータの並び替え。

adslmodemu
質問者

お礼

ご回答ありがとうございました。 できました! 非常にわかりやすい画像まで、つけていただき わかりやすかったです。

すると、全ての回答が全文表示されます。
noname#122634
noname#122634
回答No.1

Excelのバージョンにもよりますが、 ピボットテーブルを利用してはいかがでしょうか? 個数とabcdの数が知りたいのであれば、それが一番早いです。

adslmodemu
質問者

お礼

ご回答、ありがとうございました。 ピボットテーブル、聞いたことはあるのですが、方法を知らないのでした。。

すると、全ての回答が全文表示されます。

関連するQ&A