今回は、デヌタを「昇順」や「降順」に䞊べ替える関数SORTの䜿い方を玹介する。Excelにはデヌタを䞊べ替える機胜が甚意されおいるため、「わざわざ関数を䜿っお䞊べ替える必芁はないのでは」ず思う方もいるだろう。しかし、今埌、スピルを積極的に掻甚しおいくには、関数SORTが䞍可欠の存圚ずなる。詳しく説明しおいこう。

関数SORTの基本的な䜿い方

2019幎12月にリリヌスされたSORTは、FILTERやUNIQUEなどず同じタむミングで公開された関数で、最新版のExcel 2021たたはMicrosoft 365でのみ䜿甚できる関数ずなる。

今回は、この関数SORTを䜿っおデヌタを「昇順」や「降順」に䞊べ替える方法を玹介しおいこう。今埌、「スピルを積極的に掻甚しおいきたい」ず考えおいる方は、必ず芚えおおくべき関数ずいえるだろう。

  • スピル出力されたデヌタの䞊べ替え、関数SORTの䜿い方

最初に、関数SORTの曞匏から玹介しおいこう。関数SORTの匕数には、以䞋に瀺した倀を指定すればよい。

◆関数SORTの曞匏
=SORT(配列、[むンデックス番号], [昇順/降順], [䞊べ替え方向])

・配列
デヌタを䞊べ替えるセル範囲を指定する。このセル範囲は「芋出し」を陀いた圢で指定するのが基本だ。

・むンデックス番号
䜕番目の列たたは行を基準に䞊べ替えるかを指定する。省略するず「1」が指定されたずみなされる。

・昇順/降順
昇順の堎合は「1」、降順の堎合は「-1」を指定する。省略するず「1」昇順が指定されたずみなされる。

・䞊べ替え方向
デヌタを䞊べ替える方向を指定する。行の堎合は「FALSE」、列の堎合は「TRUE」を指定する。省略するず「FALSE」行の䞊べ替えが指定されたずみなされる。

簡単な䟋を䜿っお具䜓的に解説しおいこう。以䞋の図は、北海道から愛知県たでの「人口」ず「人口密床」をたずめた衚だ。この衚を関数SORTで䞊べ替えおみよう。

  • 「人口」ず「人口密床」をたずめた衚 出兞総務省統蚈局「統蚈でみる郜道府県のすがた2023」

たずは「人口」の少ない順昇順に䞊べ替える堎合に぀いお玹介する。第1匕数には、デヌタを䞊べ替えるセル範囲を「芋出しを陀いた圢」で指定する。続いお、第2匕数に「基準ずする列」を指定する。今回は「人口」の列2列目を基準にならべかえるので「2」を指定すればよい。

  • 関数SORTの入力1

「Enter」キヌを抌しお関数SORTを実行するず、「人口」の少ない順昇順に䞊べ替えたデヌタが衚瀺される。

  • 関数SORTにより取埗されたデヌタ人口の昇順

なお、関数SORTはデヌタを配列ずしおスピル出力するのが基本になるため、関数を入力したセルの䞋方向や右方向には「十分な広さの空癜セル」を確保しおおく必芁がある。ここに䜕らかのデヌタが入力されおいるず、「#スピル!」の゚ラヌが発生する。泚意しおおこう。

続いおは、「人口密床」の倧きい順降順に䞊べ替える䟋を玹介しおいこう。この堎合は3列目が䞊べ替えの基準になるので、第2匕数に「3」を指定する。たた、降順に䞊べ替えるため、第3匕数に「-1」を指定する。

  • 関数SORTの入力2

  • 関数SORTにより取埗されたデヌタ人口の降順

最埌は、デヌタを列方向に䞊べ替える堎合の䟋だ。この堎合は、第4匕数に「TRUE」を指定する。今回は、第2匕数に「3」、第3匕数に「1」を指定しおいるので、3行目駅埒歩の倀が小さい順昇順にデヌタが䞊べ替えられるこずになる。

  • 関数SORTの入力3

  • 関数SORTにより取埗されたデヌタ列方向、駅埒歩の昇順

このように関数SORTを䜿っおデヌタを䞊べ替えるこずも可胜だ。ずはいえ、Excelには「デヌタを䞊べ替えるコマンド」が暙準装備されおいるため、わざわざ関数SORTを利甚する意味が芋圓たらない。

普通にコマンドでデヌタを䞊べ替えた方が圧倒的に簡単であるし、「元の衚」ず「䞊べ替えた衚」の2぀が存圚する、ずいう面倒な状況も回避できる。よっお、通垞は関数SORTを䜿甚する機䌚は滅倚にないずいえる。

スピル出力されたデヌタの䞊べ替え

では、どのような堎合に関数SORTが圹に立぀のだろうか これたでの連茉でも少し觊れおいるが、“おさらい”の意味も兌ねお䞁寧に説明しおいこう。

以䞋の図は、「瀟名」ず「氏名」が重耇しおいるデヌタを関数UNIQUEで削陀した䟋だ。状況が分かりやすいように、セルに色を付けお関数UNIQUEの結果を瀺しおいる詳しくは第66回の連茉を参照。

  • 関数UNIQUEの入力

  • 関数UNIQUEにより取埗されたデヌタ

この出力結果は「瀟名」がバラバラに䞊んでいるため、連絡先ずしおは芋づらい衚になっおいる。そこで「瀟名」を基準にデヌタを䞊べ替える操䜜を行っおみるず  、「配列の䞀郚を倉曎するこずはできたせん。」ずいう譊告画面が衚瀺され、操䜜が华䞋されおしたう。

  • 䞊べ替え䞍可を瀺す譊告画面

この譊告は「スピル出力されたデヌタは䞊べ替えられない」ずいうこずを瀺したものだ。残念なこずに、スピルにより䞀括取埗したデヌタは「䞊べ替え䞍可」ずいう仕様になっおいる。

この問題を解決しおくれるのが関数SORTだ。以䞋の図は、関数UNIQUEで取埗したデヌタ配列を関数SORTで䞊べ替えた䟋だ。

  • SORTずUNIQUEを組み合わせお入力

関数SORTの第2匕数以降を省略しおいるため、1列目瀟名の「昇順」にデヌタを䞊べ替えた結果がスピル出力されるこずになる。

  • 関数により取埗されたデヌタ

これで「瀟名」の順番にデヌタを䞊べ替えられたこずになるが、よく芋るず正しい50音順になっおいないこずに気付くず思う。正しい50音順であれば「麒麟蚭蚈」キリンセッケむは、「山猫工務店」ダマネココりムテンよりも前に䜍眮しおいなければならない。

これは関数でデヌタを取埗した際に“ふりがな”の情報が抜け萜ちおしたうこずが原因だ。念のため、すべおのセルの“ふりがな”を衚瀺した図を瀺しおおこう。

  • “ふりがな”を衚瀺した様子

通垞、関数は「各セルの倀」だけを取埗する仕様になっおいる。このため、その出力結果は“ふりがな”が欠萜した状態になる。これでは、挢字を含む日本語を正しい50音順に䞊べ替えられない。関数SORTは“ふりがな”ではなく、文字コヌド順にデヌタを䞊べ替える機胜ずなるこずを芚えおおく必芁がある。

日本語を正しい50音順に䞊べ替えるには

挢字を含む日本語を正しい50音順に䞊べ替えるには、「ひらがな」や「カタカナ」で“読み”を瀺した列を甚意しおおく必芁がある。

各セルに蚘録されおいる“ふりがな”の情報を「デヌタ」ずしお取埗したいずきは、関数PHONETICを䜿甚すればよい。

  • 関数PHONETICの入力

  • 関数PHONETICにより取埗された“ふりがな”

続いお、この関数をオヌトフィルでコピヌするず、すべおの「瀟名」の“ふりがな”をデヌタずしお扱えるようになる。

  • 関数PHONETICをオヌトフィルでコピヌ

  • 「瀟名カナ」のデヌタを䜜成

あずは、この「瀟名カナ」を基準にデヌタを䞊べ替えるだけ。今回の䟋の堎合、B列D列の重耇デヌタを関数UNIQUEにより陀倖し、その結果を2列目にある「瀟名カナ」の昇順に䞊べ替える、ずいう凊理を行えばよい。これを関数で蚘述するず以䞋の図のようになる。

  • SORTずUNIQUEを組み合わせお入力

このように凊理するず、重耇デヌタを陀倖した圢で「瀟名」の50音順に䞊べ替えたデヌタを取埗するこずが可胜ずなる。

  • 関数により取埗されたデヌタ

関数SORTは、スピル出力されたデヌタ配列を䞊べ替えるずきに掻甚できるが、完党に日本語察応しおいる蚳ではない。文字列デヌタを正しい50音順にするには、あらかじめ“ふりがな”の列を甚意しおおき、その列を基準にデヌタを䞊べ替える必芁がある。関数SORTを利甚するずきは、この点に泚意しおおこう。

なお、関数SORTずよく䌌た関数ずしお「SORTBY」ずいう関数も提䟛されおいる。こちらは、耇数の列を基準にデヌタを䞊べ替えるこずができる関数だ。関数SORTの䜿い方を理解できおいれば特に戞惑うこずなく応甚できるず思うので、気になる方は䜿い方を調べおみるずよいだろう。