EXCELで、範囲指定した一番右の数値(セル)を返す関数を教えてください。
■答え
INDEX関数、MATCH関数、MAX関数を使うとできます。
■例
=INDEX(B3:F3,MATCH(MAX(B3:F3)+1,B3:F3,1))
【データ前提】
・対象範囲→B3:F3
・対象データ→数値であること(空白セルはOK)
・結果→A列に表示
■解説
ちょっと複雑なので分解して解説しますね。
=③INDEX(B3:F3,②MATCH(①MAX(B3:F3)+1,B3:F3,1))
①MAX(B3:F3)+1
→MAX関数は範囲内の最大値を求めます。
2列目の最大値は200ですので、答えは200となります。
最後に+1の数式がついていますので、200+1=201となります。
※補足
MAX関数で最大値+1とする理由は、仮にD4セルに1,000が入力されても、1,001を取ることができ、次のMATCH関数で1,001以下を検索することで全ての数値データを対象にする為です。
②MATCH(MAX(B3:F3)+1,B3:F3,1))
→先ほどMAX関数の答えを出したので、今回の式にあてはめるとこうなります。
MATCH(201,B3:F3,1))
②MATCH(201,B3:F3,1))
→MATCH関数は対象範囲の中で検索対象のセルの位置がA列から何個目にあるか求めます。今回は201の検索になります。また、数式の最後に1が指定されています。これは検索値以下を検索する指定です。
つまり、今回はデータがC3まで入っていて、全て201以下なので、左から3つ目の数値まで該当(セルが右側の数値が反映)するため、3という答えになります。
まとめると数式はこうなります。
③INDEX(B3:F3,3)
→INDEX関数は対象範囲内の縦何番目、横何番目の位置にあるかセルの位置を求めます。今回は横一列が対象範囲なので縦の指定を省いています。つまり、対象範囲の左から3番目の数値を出してくださいという指示になります。
■使用関数
・INDEX関数
・MATCH関数
・MAX関数