Excelびぼー:ソート応用
ソートテクニック応用
例えば通貨名をソートしたいとする。
イメージは、言語を数値に直す。
通貨 | ・・・ | ソート後 |
EUR | AUD | |
GBP | EUR | |
INR | GBP | |
AUD | INR |
ステップ1:COUNTIFSでランク分け
=COUNTIFS(通貨レンジ,”<=”&対象通貨)
通貨 | ランク | ソート後 |
EUR | 2 | AUD |
GBP | 3 | EUR |
INR | 4 | GBP |
AUD | 1 | INR |
EURが対象とすると、EURはEUR以下なのでカウント、GBPはEUR以下ではないので非カウント、INRは、、、って感じ?
ステップ2:ROW()で順位付け
ROW()で現在の行番号をゲット。xで補正して表の中での順位をゲット。
通貨 | ランク | ソート後 | ROW()-x |
EUR | 2 | AUD | 1 |
GBP | 3 | EUR | 2 |
INR | 4 | GBP | 3 |
AUD | 1 | INR | 4 |
ステップ3:MATCHする
MATCH(順位,ランク,0)でマッチする順番を見つける。
通貨 | ランク | ソート後 | ROW()-x | MATCH |
EUR | 2 | AUD | 1 | 4 |
GBP | 3 | EUR | 2 | 1 |
INR | 4 | GBP | 3 | 2 |
AUD | 1 | INR | 4 | 3 |
ステップ4:INDEXする
INDEXして、該当番号の通貨をゲット。
序列1位は、通貨一覧の4番目なので、AUDを返すという感じ。
う~ん、むずい!
通貨 | ランク | ソート後 | ROW()-x | MATCH | INDEX |
EUR | 2 | AUD | 1 | 4 | AUD |
GBP | 3 | EUR | 2 | 1 | EUR |
INR | 4 | GBP | 3 | 2 | GBP |
AUD | 1 | INR | 4 | 3 | INR |