【エクセル】関数でリスト、範囲を反転する方法
<スポンサーリンク>
エクセルで、指定した範囲を逆転させたいときがあると思いますが、
・並べ替えでもできないし、
・そんなコピペの方法もない。。
ということで、そんな時に使える数式のテクニックを紹介したいと思います!
数式紹介
数式は、
・INDEX
・COUNTA
・ROW
を組み合わせて、下記の式で作り上げることができます。
=INDEX(範囲,COUNTA(範囲)-ROW(範囲)-ROW())
この数式の仕組み
この数式は、主にINDEX関数を使っています。
INDEX関数は、特定の範囲の指定行、指定列のセルの値を参照できる関数で、
=INDEX(範囲,指定行,指定列)
のように使います。
今回、リストを反転させたいということは、
この指定行を[最終行,最終行-1,最終行-2,…2,1]
としてあげる必要があります。
その数式が、
COUNTA(範囲)+ ROW(範囲)- ROW()
の部分です。
・COUNTAで、リスト内の空白以外のアイテムの数をカウントし、最終行を取得。
・ROW(範囲)-ROW()で、[0,-1,-2,-3…-(最終行-1)]を作り出す。
この2つを足し合わせることで、
[最終行,(最終行-1),(最終行-2),…2,1]と最終行から1までの数字を
カウントダウンさせることができます。
他のパターン→ROWSを使用する方法
0から~(最終行-1)までをカウントできればいいので、
他のパターンとして、
=INDEX(範囲,COUNTA(範囲)-ROWS($範囲:範囲)+1)
という方法もあります。
理解しやすい方法を選んでいただければと思います。
コメント欄