アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。

たとえばある表で、A1(1月とします)からL1(12月とします)に向かって
5 7 11 14 13 13 25 27 15 16 20 22
と並んでいるとします。
また、この数値は累計で、12月に位置する「22」が最終の値だとします。

このうち、セルに常に最新の値を出す式として
=IF(COUNT(A1:L1),LOOKUP(MAX(A1:L1)+1,A1:L1),"")
というものをこちらで拝見し、これ自体は非常に便利で活用しているのですが、もひとつこの式の意味するところがよく分からずにいます。

何故COUNTをする必要があるのか?
MAX(A1:L1)は「27」のハズなのに、何故最終の「22」が引けるのか?
ていうか「+1」って何?

どなたか、解説をお願いいたしますm(_ _)m

A 回答 (2件)

>何故COUNTをする必要があるのか?


数値が未入力のときのエラー処理です。
0でなければTRUEとみなされます

>MAX(A1:L1)は「27」のハズなのに、何故最終の「22」が引けるのか?
>ていうか「+1」って何?
の まずは「ていうか「+1」って何?」
から。最大値より大きければ何でもよいです
LOOKUP(8^3^8,A1:L1) もありです。
次に、「何故最終の「22」が引けるのか?」
LOOKUP関数は二分探索を行う関数です。VLOOKUPやMATCH関数の検索(照合)の型を「TRUE」にした場合も同様です。
その場合、昇順(降順)に並べ替えるのがヘルプに掲載されている使用法になります。

以下、私見
Excelにおける二分探索のアルゴリズムを逆手に取った方法だと考えています。
大きな値を求めて、右半分、そしてさらにその右半分、さらに・・・と検証するのではないでしょうか?
もちろん、L1セルに値があればこの範囲内の最大値とみなされ、そのまま表示されると考えられます

参考URL:http://su10.sgu.ac.jp/~morita/Seminar/6thStudent …
    • good
    • 0
この回答へのお礼

ははぁ、なるほど、最大値を上回る数を探して、右へ右へ…
二分探索についても、参考URLからよく分かりました。
ありがとうございました。

お礼日時:2009/08/06 12:47

>何故COUNTをする必要があるのか?


COUNT(A1:L1)は未入力のときに表示しない設定です。

>ていうか「+1」って何?
LOOKUP(MAX(A1:L1),A1:L1)の結果は最大値である27(8月)の位置を表示します。
+1することで存在しない28以下の数値を探すため、
結果として最後に数値のあるセル位置を割り出せるのです。
    • good
    • 0
この回答へのお礼

はぁーーーー

ははぁーーーーー

なるほど、よく分かりました!
ありがとうございました!!

お礼日時:2009/08/06 12:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!