[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『理解できない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と言う事です。デジタル? そんな意味です。(ケン)
少し数式の説明をさせていただきます。
=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.