いきなり答える備忘録

G Suite・Microsoft 365・LibreOfficeなどに関するメモと日々の実験

(Gスプレッドシート)独自の順序で並べ替える

 Googleスプレッドシートで、ABC順とかあいうえお順ではなく、任意に設定した基準でデータを並べ替える方法についてです。
 Excelの場合はユーザー設定リストの機能を使って並べ替え操作を行うことにより可能ですが、スプレッドシート関数にはこの機能がありませんので(2020年10月現在)、関数を使うこととなります。

  • SORT関数とMATCH関数を組み合わせることで、独自の基準に沿ってデータを並べ替えることができます。

手順

f:id:accs2014:20201101024759p:plain:right:w500

 画像のB~D列には社員リストが並んでいます。また、F列には並べ替え基準として部署の名称が列挙されています。このF列に記された部署の順番どおりに社員リストを並べ替えるものとします。

 
 並べ替えメニューでの実現は困難ですので関数で対応します。
 H3セルに次のように入力します。

f:id:accs2014:20201101024804p:plain:w780

 H3セル

=SORT(B3:D12,MATCH(D3:D12,F3:F5,0),TRUE)

 「MATCH(D3:D12,F3:F5,0)」により、各社員の所属部署が並べ替え基準の何番目に位置しているかを取得します。
 これをSORT関数の第2引数(並べ替え基準列)として表の並べ替えを行います。

 
 確定した様子です。
 基準通りの順番に並べ替えられていることがわかります。

f:id:accs2014:20201101024809p:plain:w780

 
 なお、並べ替え基準をセル上にではなくMATCH関数の内部に置くことで、次のような式にすることも可能です。

f:id:accs2014:20201101024813p:plain:w650

 H3セル

=SORT(B3:D12,MATCH(D3:D12,{"総務課","営業課","システム課"},0),TRUE)