過去の桐井戸端BBS (桐ver.9)
29372 #条件選択で複数の項目の判断をさせるにはどう書けばいいのでしょうか ユードゥー 2005/03/15-16:56
成績表を製作中です。
・[本試験]が60点以上なら、そのまま[本試験]の点数を表示
・[本試験]が59点以下なら、60と表示
・[本試験]が空欄の場合は成績表も空欄
・[本試験]が空欄で、[追試]に点数が入っている場合は60と表示
という処理をしたいのですが、関数はどのようにしたらいいのでしょうか?
色々試したのですが4番目がどうしても分からなくてご教授願いたいです。

ちなみに今は
#条件選択([本試験]≧60,[本試験],[本試験]≧0,"60",[本試験]="","")
になっています。


29374 Re:#条件選択の関数について bonito 2005/03/15-18:21
記事番号29372へのコメント
>ちなみに今は
>#条件選択([本試験]≧60,[本試験],[本試験]≧0,"60",[本試験]="","")
>になっています。

"60"?
[本試験]って文字列型の項目なんですか?違いますよね

#条件選択([本試験]≧60,[本試験],[本試験]≧0,60,([本試験]=#U .and [追試]≧0),60,1,#U)

僕はあんまり人に見せないのでこんな風に適当に書くけどホントはもっとスマートな書き方があるかも知れません


29376 Re:#条件選択の関数について 宮城 2005/03/15-19:05
記事番号29374へのコメント
ユードゥーさん、こんにちは。

bonitoさんの式は前提がありまして、ファイル属性で未定義項目値処理が未定義になって
いないと「ゼロ」と「空欄」が区別できませんので念のため。

もうひとつついでに「[追試]に点数が入っている場合」って零点でも60点あげるんですか?

29380 Re:#条件選択の関数について ONnoji 2005/03/16-01:02
記事番号29372へのコメント
ユードゥーさんは No.29372「#条件選択の関数について」で書きました。

ユードゥーさん、こんにちは。

>成績表を製作中です。
>・[本試験]が60点以上なら、そのまま[本試験]の点数を表示

[本試験] > 60,[本試験]

>・[本試験]が59点以下なら、60と表示

#横合計([本試験],[本試験]),60

>・[本試験]が空欄で、[追試]に点数が入っている場合は60と表示

.not #横合計([本試験],[本試験]) .and #横合計([追試],[追試]), 60

>・[本試験]が空欄の場合は成績表も空欄

※最終的に…という意味ですね。

#u

>という処理をしたいのですが、関数はどのようにしたらいいのでしょうか?
>色々試したのですが4番目がどうしても分からなくてご教授願いたいです。

#cond( [本試験] > 60,[本試験],#横合計([本試験],[本試験]),60,.not #横合計([本試験],[本試験]) .and #横合計([追試],[追試]), 60,1,#u )

という式でいかがでしょうか。


29381 Re:#条件選択の関数について ユードゥー 2005/03/16-10:11
記事番号29380へのコメント
bonitoさん、宮城さん、ONnojiさんどうもありがとうございます。

ONnojiさんの式で当てはめてみたところ、無事表示できました。
またここに頼ることがあるかもしれませんが、その時はどうぞよろしくお願いします。
自分で全部解決できるように桐を勉強していきたいと思います。ありがとうございました。
29385 Re:#条件選択の関数について 初級くん 2005/03/16-16:24
記事番号29380へのコメント
>>・[本試験]が60点以上なら、そのまま[本試験]の点数を表示
>
>[本試験] > 60,[本試験]

この式なら、60点の場合には[本試験]の値は採用されないので、

[本試験] >= 60,[本試験]

が正しいのではないでしょうか?

[本試験]と[追試]そして、条件式を書く項目が全て数値型と
仮定して、私なら、横合計関数など使わずに、


#条件選択([本試験]≧60,[本試験],[本試験]<60,60,[本試験]=#U .and [追試]<>#U,60,1,#U)

こう書きます。
いかがでしょうか?

29386 Re:#条件選択の関数について ONnoji 2005/03/16-16:43
記事番号29385へのコメント
初級くんさん
>私なら、横合計関数など使わずに、

誤解のないように書いておきます。

>ファイル属性で未定義項目値処理が未定義になって
>いないと「ゼロ」と「空欄」が区別できませんので念のため。

ゼロの場合でも、未入力値を未定義値と認識するために、
#横合計()関数を使っているのでありました。(^^ゞ


29397 Re:#条件選択の関数について 初級くん 2005/03/17-13:43
記事番号29386へのコメント
>ゼロの場合でも、未入力値を未定義値と認識するために、
>#横合計()関数を使っているのでありました。(^^ゞ

なるほど、Onnojiさんの方が、高度ですね。ご教授ありがとうございました。
大変勉強になりました。今まで、数値型の0と未定義は同じ扱いしてました。

戻る