過去の桐井戸端BBS (桐ver.8)
15087 何々以上 何々以下という式を教えてください UG2 2002/02/08-22:33
現在8.6を使用しております。

テーブルで、下記の条件式を項目計算しようと思っていますが、いまいちうまく動きません。

どこが悪いか、ご存じの方いましたら、アドバイスお願いいたします。

やりたいこと
**********************
項目Aが10未満なら0,10以上100未満なら1,100以上なら2
**********************

条件式
*******************
#条件選択([A]<10,0,10<=[A]<100,1,[A]>=100,2)
*******************

これで試しますと、
項目Aに、1-9を代入すると0、10-99を代入すると1となり、良いですが、
1000や2000を代入しても、1となってしまいます。

なにがおかしいのでしょうか?
15089 Re:何々以上 何々以下 Ogo 2002/02/08-22:41
記事番号15087へのコメント

#条件選択([A]<10,0,[A]<100,1,1,2)

15090 Re:何々以上 何々以下 KH 2002/02/08-22:43
記事番号15088へのコメント
UG2さん、こんばんわ。

#条件選択([A]<10,0,[A]<100,1,1,2)

これでできるはずです。
15092 Re:何々以上 何々以下 幅田 2002/02/08-22:54
記事番号15089へのコメント
UG2さん
こんにちは

Ogoさん、KHさんも答えていらっしゃいますが

>#条件選択([A]<10,0,[A]<100,1,1,2)

でいいと思います。
#条件選択では、最初の式から順番に判断していきます。
すなわち、最初の式
[A]<10 で、[A]が10未満なら 0
そうでない場合(すなわち10以上の場合)は
次の式 [A]<100を判断します。

ですから、ここであえて、10=<[A]を書く必要はないわけです。
[A]<100と書くだけで、10=<[A]<100と同じ事なのです。

で、100未満の場合は 1 ですが、
そうでない場合(100以上の場合)は
ただたんに、1 と書き、2 になるというわけです。

2の前の1は、それまで書いた式のどれにもあてはまらないとき
という意味になります。

15093 Re:何々以上 何々以下 UG2 2002/02/08-22:55
記事番号15089へのコメント
Ogoさん、KHさん

ありがとうございました。

早速、来週出社したら試してみます。

ところで、アドバイス頂いた下記条件式で、なぜ10以上100未満のとき、1が選ばれるのでしょうか?

つまり、例えば15の時は1が選ばれるのは分かりますが、5も100以下のため1が選ばれそうな気がしますが...

>#条件選択([A]<10,0,[A]<100,1,1,2)

また、100以上の時と選ぶ場合1となってますが、どういう意味でしょうか?

申し訳ありませんが、よろしかったら教えていただけると幸いです。

今後のために、もし4つ以上で選ばなければならないときは、どうしたら良いのでしょうか?

例、10未満のとき0,10以上100未満の時1、100以上1000未満の時2,1000以上の時3
など


15094 Re:何々以上 何々以下 UG2 2002/02/08-22:57
記事番号15092へのコメント
幅田さんありがとうございました。

タイムラグで、質問になってしまいました。

申し訳ありません。

15095 Re:何々以上 何々以下 幅田 2002/02/08-23:07
記事番号15094へのコメント
UG2さん

ちなみに、#条件選択の式で
あえて、10以上100未満という式を書くなら

#条件選択([A]>=10 .and [A]<100,1,1,2)

といった書き方をしてください。
10以上100未満のときは 1 ですが
それ以外(10未満のときや100以上のとき)の
結果は 2 になりますね。

15096 Re:何々以上 何々以下 UG2 2002/02/08-23:11
記事番号15095へのコメント
幅田さん

どうもありがとうございました。

早速、試してみます。


15097 【補足】条件式と比較式 佐田 守弘 2002/02/08-23:15
記事番号15087へのコメント
UG2さん
既に正解は出ておりますが、補足説明を致します。
この質問のポイントは、「条件式と比較式の違いをしっかり理解する事」に尽きます。
過去にも何回も述べておりますが、桐には、「計算式」「比較式」「条件式」の
3つの式があります。そしてこの3つの式は得られる値と使う場所が全く異なります。

詳しくは、私の以下のサイトに掲載してあります。
http://www.ne.jp/asahi/m.sada/kiri/KIRI5/EQUIV1.html
桐ver.5情報として掲載してありますが、桐ver.8でもそのまま通用します。

ここでは簡単に述べますと、
・計算式:計算結果の値を得る式です。数値や文字列が得られます。
・比較式:検索や絞り込みなどの比較対象値を指定する式です。
・条件式:条件判断をするための論理値である真(1)、偽(0)を与える式です。
 なお一般的な値は。ゼロと未定義値は偽(0)、それ以外は真(1)としてみなします。

●「#条件選択」関数
この関数の奇数番目には条件式を指定します。左から順に条件式を評価し、
条件式が真(1)であれば、対応する計算式を関数の値として返します。
つまりここに記述できるのは条件式です。

●範囲指定の比較式の書式
比較式には、範囲指定をする特殊な書式として、
 10<=[A]<100
の様な記述書式があります。これは比較式だけに許される書式で、計算式と条件式には許されません。
今回の質問のポイントである式の記述のエラーは、ここにありました。

●序でに
>条件式
>#条件選択([A]<10,0,10<=[A]<100,1,[A]>=1000,2)
と書かれていますが、この様な式は何式だか今までの説明で分かりましたか?
これは条件式ではなく、計算式です。

佐田守弘(KS-00119)
15099 ありがとうございました UG2 2002/02/09-18:58
記事番号15097へのコメント
佐田 守弘さん

ありがとうございました。

大変為になりました。
15100 「1,2」の意味 2002/02/09-23:39
記事番号15093へのコメント
UG2さん、こんばんは。

>また、100以上の時と選ぶ場合1となってますが、どういう意味でしょうか?

この「1,2」は「(そこまでの条件式のどれかが正)以外は2」とお考え下さい。
「1」は実は条件式で意味は常に正ということですが・・・。

>例、10未満のとき0,10以上100未満の時1、100以上1000未満の時2,1000以上の時3
>など

#条件選択([A]<10,0,[A]<100,1,[A]<1000,2,1,3)

ですが、ややこしいのはメモ帳等のエディタで次のように書いて、
不要な改行とスペースを取ってからコピーして貼り付けたら楽ですよ。

#条件選択([A]<10,0
     ,[A]<100,1
     ,[A]<1000,2
     ,1,3)

戻る