エクセルVBAを使ってデータの並べ替えを行うのにSortメソッドを使うのですが、4つ目の条件までの並べ替えををVBAコードを使ってやってみたら、エラーになった経験ありませんか?
並べ替えのSortメソッドの標準機能が3つ目までなのですが、あきらめずに工夫をすれば4つ目以降も並べ替えができるようになりましたので、ご紹介いたします。
Sortメソッドを2回に分けて使う
下の図はサッカーっぽい成績表なのですが、順位を決めるのに勝ち点を最優先にしますが、同点の場合更に3つの条件により順位を決定しています。
順位決定するには「勝ち点」「得失点差」「総得点」「総失点」の順に決定するのでSortメソッドでは3項目なので足りません。
- 勝ち点が多いチーム順(D列)
- 勝ち点が同点の場合に得失点差の多いチーム順(E列)
- 総得点の多いチーム順(F列)
- 総失点の少ないチーム順(G列)
そうなると優先順位は4項目、Key4が必要になりましたがKey4は使えないので、2回に並び替えを分けます。
並べ替え手順①
まず始めに優先順位4番目(総失点の少ない順)を並べ替えますので、VBAコードはいつものようにユーザーフォームを使う実例です。
Private Sub CommandButton1_Click()
Range(“B2:G23”).Sort Key1:=Range(“G3”), Order1:=xlAscending
End Sub
- コマンドボタン1がクリックされたら
- 表の範囲のセルB2~G23をG3の列で小さい順(昇順)で並べ替える
- マクロ記録終了
並べ替え手順②
この状態で次に優先項目1~3を並べ替えれば、2回に分けて並べ替えたおかげで4項目順に並べ替えることができます。
Private Sub CommandButton1_Click()
Range(“B2:G23”).Sort Key1:=Range(“G3”), Order1:=xlAscending
Range(“B2:G23”).Sort Key1:=Range(“D3”), Order1:=xlDescending, Key2:=Range(“E3”), Order2:=xlDescending, Key3:=Range(“F3”), Order3:=xlDescending
End Sub
- コマンドボタン1がクリックされたら
- 表の範囲のセルB2~G23をG3の列で小さい順(昇順)で並べ替える
- 表の範囲のセルB2~G23を第1優先D3の列で大きい順(降順)で並べ替える
- 第2優先でE3列を大きい順で並べ替える
- 第3優先でF3列を大きい順で並べ替える
- マクロ記録終了
これが2回に分けた並べ替えのVBAコードの完成版で、ちょっとの工夫で4つの並べ替えができました。
関連記事
-
データの操作
エクセル関数とVBAを組み合わせて商品期限切れ通知を表示する方法
小さな会社や個人では、アプリや専用ソフトを使って商品管理とかはコストが見合わず、エクセルで商品管理していませんか? このエクセルによる商品管理でリストの中にあ… -
データの操作
エクセルVBAで不要な行や列を非表示ができない時の対処方法と順番確認
データ抽出などで不要な行や列を自動的に非表示にできるExvel-VBAのHiddenプロパティですが、コードは正しく書かれているのにコマンドボタンを押すとエラーになったこと… -
ラベル
VLOOKUPをVBAラベルを活用してデータ検索・修正をする方法
【ラベル(Label)にVBAコードを記述する】 ボウリング成績表でも使っているユーザーフォームに配置した文字を表示するための「ラベル(Label)」にも、実はVBAコードを… -
データの操作
エクセルVBAで氏名・名前を姓と名で自動的に分割する簡単な方法
エクセルで表などを作成していると、並べ替えや振り分けなどのデータ処理が面倒だと思ったことはありませんか? データ処理に手間をかけていると仕事の作業効率が悪くな… -
セルの操作
エクセルVBAで複数セルを一括で結合・解除を繰り返し処理する方法
エクセルの表を印刷するには見栄えの為にセルの結合を行ったら、並べ替えをするとエラーになって困ったことありませんか? Mergeメソッドを書き加えれば、自動的にセル… -
データの操作
エクセルVBAで指定範囲内のセルの値「0」を全て空欄に置き換える方法
エクセルで表を扱う時に数式エラーを防ぐ為に、空欄の代わりにIFERROR関数などで数字の「0」で代用していることありませんか? この代用している値を一瞬で空欄にできる… -
データの操作
Key4は使えないけど4つ以上項目の並べ替えをVBAコードでやる方法
エクセルVBAを使ってデータの並べ替えを行うのにSortメソッドを使うのですが、4つ目の条件までの並べ替えををVBAコードを使ってやってみたら、エラーになった経験あり… -
データの操作
エクセルVBAでシートの移動と同時に表のデータの並べ替えをする
成績表やデータ表などに付き物の並べ替え作業って地味に面倒だと思ったことありませんか? 優先順位をつけて並べ替える時に、同時にエクセルシートも切替出来たら作業が…
紅葉スポット
-
八ッ場ダムの近くにある鹿飛橋と白絹の滝へ吾妻渓谷の紅葉へ
何かと話題の群馬県の八ッ場ダムの近くにある吾妻渓谷は、吾妻川の水が侵食して深い峡谷を作った為に、自然にできた谷深い峡谷となっています。 その吾妻側の周りの木々… -
片品村「菅沼」の紅葉へ奥日光湯元温泉から無料バスで紅葉穴場へ
全国屈指の透明度を誇る菅沼に周囲の山々の色づいた木々が鏡のように反射する紅葉絶景が見られる、穴場紅葉スポットです。 菅沼には電車とバスを利用していくことができ… -
養老渓谷紅葉ライトアップへ上総中野駅からバスで滞在時間3時間
懐かしい国鉄車両に乗車できるいすみ鉄道に乗って、昭和の風情が残る養老渓谷の温泉街で地元振興もかねて「養老渓谷もみじまつり」が行われ、ライトアップも行いながら… -
榛名山からの景色や榛名湖の湖面に反射する紅葉したもみじへ
榛名山の麓の榛名湖は火山の噴火でできたカルデラ湖で周囲の榛名公園には、もみじが植えられていて秋になると真っ赤に染まります。 そして榛名山も夏の緑から紅葉の時期… -
縁起だるま発祥の少林山達磨寺境内の真っ赤に染まる紅葉景色へ
【紅葉見頃】11月下旬~12月上旬 高崎市内循環バス「ぐるりん」バスのフリーエリア内にあるので、縁起だるま発祥の少林山達磨寺へ紅葉の時期になったら訪れてみてはい… -
水戸偕楽園のもみじ谷ライトアップは無料で水戸駅からバスで行ける
水戸の偕楽園と言えば梅林が有名なので、訪れたことが1度はあるかもしれませんが、以外と言ったら失礼なのですが、もみじ谷と呼ばれる場所があり、約170本のもみじやか…