Excelでリストを並べ替えるときにリスト全体を並べ替えるのではなく、小さいグループごとに並べ替える場合には、「グループ化としての並べ替え」が必要です。はじめから、分類や区分のようなグループを表すデータがあればよいですが、それが無い場合には「比較演算」を用いてグループを求めることができます。
そこで、今回は、比較演算子を用いてグループを設定しながら、グループごとに分けて並べ替える方法について出題します。
目次
問題文のあとに簡単な操作方法を解説していますが、静止画では、わかりにくいと思いますので、最後に動画を載せています。ぜひご覧ください。
1.比較演算子(復習)
比較演算(比較演算子)についてはこちらの記事をご覧ください。
2.比較演算子でグループ化できる
問題
次のリストで8勝以上の力士と7勝以下の力士に分けて、それぞれ四股名の50音順で並べ替えなさい。また、それぞれ番付の昇順にしなさい。
解説
まずは、オーソドックスな方法で並べ替えます。勝ち数の降順にします。
8勝以上の部分を選択して、四股名の昇順にします。
同じように、7勝以下の部分も選択して、四股名の昇順にします。
それぞれ番付の昇順にするときも、それぞれ範囲選択して並べ替えます。
グループで分けるとき、比較演算子を使うと、簡単にグループを作ることができます。
「=C2>=8」とします。勝ち数が8以上であることを表しています。
TRUEとFALSEになります。
この勝ち越しが最優先になります。TRUEが1で、FALSEが0ですから、TRUEを上にするには降順にします。
勝ち越しの降順にして、四股名の昇順にします。
これで、一度で並べ替えをすることができます。
四股名を番付に変えると、それぞれのグループで番付の昇順になります。
3.フラグの再利用
問題
3行目以降のリストを次の指示に従って並べ替えなさい。
(1)池に入った人と入らなかった人に分け、それぞれ受付Noの昇順にしなさい。
(2)スコア5点以上と5点未満に分け、さらに、それぞれ池に入った人と入らなかった人に分けなさい。
(3)「東京・横浜」と「大阪・福岡」に分け、それぞれスコアの降順にしなさい。
(4)スコアがプラス、0、マイナスの3つのグループに分け、その中で、「東京・横浜」と「大阪・福岡」に分けなさい。
解説
並べ替えをする前に、念のため、連番を振っておきます。
(1)ゼロとそれ以外を分ける
1回で並べ替えるには、1回以上池に入った人をすべて同じグループにする必要があります。池ボチャ回数を参照して、「=0」とします。
オートフィルをします。これでゼロとそれ以外に分けられます。
これの昇順にして、さらに受付ナンバーの昇順にします。
これで完成です。
(2)フラグ
スコアを参照して、「>=5」とします。
オートフィルをします。この列を最優先にして、さらに池に入った人と入らなかった人に分けます。これは設問(1)で立てたフラグが使えます。昇順か降順かは問いません。
これで完成です。
このように以前立てたフラグが後日再利用できることがあります。
(3)OR条件
東京または横浜の人にフラグを立てます。計算式はこのようになります。
東京と横浜がダブルクォートで囲む必要があります。
足し算をすると、TRUEは1、FALSEは0として扱われます(【Excel】IF関数が使えない原因は「比較演算」の練習不足である - わえなび ワード&エクセル問題集)。
東京または横浜に該当する場合は、どちらかが1になるので足せば1になります。
東京でも横浜でもない場合は、両方とも0になります。たしたら0です。
オートフィルをします。これを使って、この列の降順にします。さらに、スコアの降順にします。
これで完成です。
(4)プラスとゼロとマイナスに分ける
プラスとゼロとマイナスに分けるには、「0より大きい」から「0より小さい」を引きます。
プラスの場合は1-0、つまり、1になります。
マイナスの場合は0-1、つまり、-1になります。
オートフィルをします。これを使って、この列の降順にします。さらに、関東と西日本に分けますが、これは設問(3)のフラグがそのまま使えます。昇順か降順かは問いません。
これで完成です。
別解
SIGN関数を使うという方法があります。SIGN関数は、プラスの数とゼロとマイナスの数をそれぞれ1、0、ー1に変換します。
- =SIGN(数値)
解説は以上です。
4.動画版はこちら(無料)
この記事は、わえなび実力養成講座「ファンダメンタルExcel」Program 7-13のYoutube動画を書き起こして、加筆修正したものです。