色でソート

先日、こんな相談を受けた。

グループ別にセルの色が塗り分けられたリストがある。
色別に並び替えることで、各グループを取り出したい。
何か良い方法は無いか?

検討してみた。
f:id:Infoment:20190828213308p:plain

例えばこんな風に、グループごとに色分けされていたとする。
f:id:Infoment:20190828213517p:plain

Excel2007以降は色でソートすることも可能だ。このように「色数-1」回の設定で、各色を指定順に並べることができる。
f:id:Infoment:20190828214936p:plain

しかし色の種類がたくさんあると、この方法も少し面倒だ。
聞けば、とにかく選り分けられれば良いとのこと。
そこで今回は、セルの色を数値化したうえで、並び替えに使ってみた。

まず、色を数値化する。並び替えるだけなので、凝った作りにはしない。

Function ColorNumber(target_range As Range) As Long
    ColorNumber = target_range.Interior.Color
End Function

これをB列にセットし、各セルの色を数値で表す。
f:id:Infoment:20190828214338p:plain

最後に、色番号で並べ替え。
f:id:Infoment:20190828214429p:plain

グループ分け、完了です。
f:id:Infoment:20190828214507p:plain

参考まで。