[[20040529215931]] 『理解できないLOOKUP数式』(kobi) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『理解できないLOOKUP数式』(kobi)

[IF関数のLOOKUPさん数式で]

 理解できない(LOOKUPさん)数式があります。どなたか解説をお願いします。
[[20040527101650]]『3つの条件がある場合の計算式について』(ニモ) 
の中での、LOOKUPさん数式
=IF(COUNT(B1),B1-IF(COUNT(A$1:A1),LOOKUP(9^99,A$1:A1)),"") で
@ COUNT(B1) の部分と COUNT(A$1:A1)は
IF文の論理式に見えないんですが(これまでも何度か見て気になっていました)、
=0なら false を返してくれるんですね。
ALOOKUP(9^99,A$1:A1) も計算してみれば回答が出るけれども、理屈がわからない・・・
故に恥を忍んでお聞きします。

 0はFALSE、1以上はTRUEと言う事です。デジタル?
そんな意味です。(ケン)

ケンさん、有難うございました。
それからAの件はヘルプをよっく見たら、『LOOKUP(検査値,配列)の中の検査値が見つからないと、配列の先頭行または先頭列に含まれている検査値以下の最大の値が使用されます。』
ということですね。毎度お騒がせしております。   (kobi)

 少し数式の説明をさせていただきます。

 =IF(COUNT(B1),B1-IF(COUNT(A$1:A1),LOOKUP(9^99,A$1:A1)),"")
 は、
 =IF(COUNT(B1)>0,
        +B1-IF(COUNT(A$1:A1)>0,LOOKUP(9^99,A$1:A1),0),
        "")
 です。

 数式は、
 1−1 =IF(COUNT(B1)>0,                    論理式
 1−2    B1-IF(COUNT(A$1:A1),LOOKUP(9^99,A$1:A1),0), 真の場合
 1−3    "")                       偽の場合
      B1が数値の場合だけ次の計算を実行し、それ以外は空白としています。
      元の数式では、1をTRUE、0をFALSEの代わりに利用しています。

 1−2は、
 2−1 +B1
 2−2 -IF(COUNT(A$1:A1)>0,LOOKUP(9^99,A$1:A1),0)

 2−2は、
 3−1 -IF(COUNT(A$1:A1)>0,                 論理式
 3−2    LOOKUP(9^99,A$1:A1),              真の場合
 3−3    0                         偽の場合

 3−2は、9^99は、9の99乗で、手入力で有効な数値より大きい数値です。
      LOOKUP()で、最上行から自分の位置する行までのA列の範囲の中で、
      最下段に位置する数値をもどしています。
      IF(COUNT(A$1:A1)>0,…)で範囲内に数値がない場合に戻る#N/A!を
      0に変換してます。元の数式では、IF()の偽の場合を省略していますが、
      -FALSEは、-0ですので、同じ結果となります。

 このような意図で、試作させていただきました。         (LOOKUP)
 threadのtitleは、少し変更させていただきました。あしからず。 (LOOKUP)

 LOOKUPさん、解説有難うございました。
上記LOOKUP関数の自分の理解の浅さを痛感!もちっと勉強します。
それにしても、9^99や、--や!、10^16・・・・・裏技の引き出しはいくつあるのでしょ?
またわからないことがあったら、よろしくお願いします。 (kobi)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.