「StiLL」Excel情報443   関数--範囲内で最も右に入力された数字を表示
■ 今回はある範囲内で最も右のセルに入力されている数字を表示する方法をご紹介します。
LOOKUP関数 と MAX関数 を組み合わせた数式を使用します。
■ LOOKUP関数 は 「検査値」 と一致する値が見つからなかった場合に、対象範囲の中の 「検査値」 を超えない最後の値を返す、という性質があるので、それを利用しています。 ■ 範囲内に数字が1つもないときは「#N/A」エラーになってしまいます。エラーを防ぐためには COUNT関数 を使用します。
今回はある範囲内で最も右のセルに入力されている数字を表示する方法をご紹介します。
下のような表で、横方向に数字が入力されていて、
「4月〜9月」 の中で最も右に入力されているセルの値を 「一番右の数字」 に表示します。
「4月〜9月」 のセルには空白のセルもあるので、
最も右に入力された値を表示するにはひと工夫必要になります。
※ 今回は入力値が 「数字」 の場合の方法です。入力値が 「文字列」 の場合は使用できません。
    
LOOKUP関数 MAX関数 を組み合わせた数式を使用します。
  数式: =LOOKUP(MAX(B3:G3)+1,B3:G3)
LOOKUP関数は 「検査値」 と一致する値が見つからなかった場合に、対象範囲の中の 「検査値」 を超えない
最後の値を返す、という性質があるので、それを利用しています。
LOOKUP関数の 「検査値」 に、対象範囲の中の一番大きな数字に+1をしたものを指定して
わざと対象範囲内で一致する値がないようにすると、対象範囲の一番右の数字を表示することができます。
しかしこの式では、対象範囲に何も値が入力されていないと、「#N/A」 エラーになりますので
エラーを防ぐためには以下のような数式を使用します。
  数式: =IF(COUNT(D3:I3)=0,"",LOOKUP(MAX(D3:I3)+1,D3:I3))
COUNT関数で対象範囲の数字の個数を数え、0個の場合は空白にすることでエラーになるのを防ぎます。
また LOOKUP関数 は HLOOKUP関数 の 「検索の型」 を 「TRUE」 にすることでも代用できます。
  数式: =IF(COUNT(D3:I3)=0,"",HLOOKUP(MAX(D3:I3)+1,D3:I3,1,TRUE))
【ご参考】 同じ方法で、範囲内で最も下に入力された数字を表示することもできます。
  数式: =IF(COUNT(C2:C7)=0,"",LOOKUP(MAX(C2:C7)+1,C2:C7))  
Copyright(C) アイエルアイ総合研究所 無断転載を禁じます