過去の桐井戸端BBS (桐ver.9)
26731 ある項目がゼロのときだけ#直前値を使った式を計算したい sion 2004/06/21-19:16
初めてお便りします、きり9、Win2Kで、きり4日目です。
項目A,B,C,D,
Cの項目計算で、[A]−#直前値([A],0)
こんな感じですが、
ただし、B=0(ゼロです)時だけ計算、
もしくは***なんてしたいのですが。

申し訳ないですが、宜しくお願いします。
26732 Re:計算式を教えて下さい。 佐田 守弘 2004/06/21-23:09
記事番号26731へのコメント
sionさん
[B]が0の時には、[C]を[A]-#直前値([A],0)とするなら、計算式は
 #条件選択([B]=0,[A]-#直前値([A],0))
です。

但し、[B]=0の時だけ計算するという事ではなく、上記の計算式では
[B]≠0の時には未定義値(何も値がない値)が計算されます。
[B]≠0の時には計算式で計算するのではなくて、値を手入力すると
いう事はできません。

また、
 >もしくは***なんてしたいのですが。
の意味が解りませんが、[B]=0の時以外には何か別の値を計算式として
設定したいのであれば、上記の計算式を
 #条件選択([B]=0,[A]-#直前値([A],0),1,<何かの計算式(***)>)
と書いて下さい。

●「#条件選択」関数の意味
この関数は<条件式>,<計算式>のペアをいくつでも書きならべられます。
奇数番目が条件式で、左側から順にその条件式を評価します。
条件式が成立すれば、その次に来るペアになっている計算式が関数の値として返されます。
左から順に評価し、どこかで条件式が真であれば対応する計算式が戻されて評価が終ります。
その後ろに真である条件式があっても、評価されません。
いずれの条件式も成り立たなければ、最終的に未定義値が返されます。

上記の後から書いた式で、
 1,<何かの計算式(***)>
も、条件式と計算式のペアです。この場合の条件式は「1」つまり
真を表す論理定数です。つまり最初の条件式が成り立たない時には、
1が必ず真ですから、2番目の計算式が返されます。

佐田守弘(KS-00119)
26736 Re:計算式を教えて下さい。 sion 2004/06/22-00:53
記事番号26732へのコメント
佐田 様 ご回答有難う御座います、

あす、会社でやって見ます。

(***)申し訳在りませんでした、
記入もれ、じゃないよっていう標しが欲しかったんです。

複数のポンプ記録で重なった値では、不正確ということで・・・。

,1,真という事が今ひとつ理解出来ないのですが、
そういえば,1,よく出てくるなぁとおもいました。

また色々教えていただきたくお願いします。
26737 Re:計算式を教えて下さい。 うにん 2004/06/22-12:33
記事番号26736へのコメント

>,1,真という事が今ひとつ理解出来ないのですが、
>そういえば,1,よく出てくるなぁとおもいました。

これは約束事なので納得するよりしょうがないのですが、
元々桐では「0と未定義以外真」なので1には特別な意味はないです。
9でも-1でも文字列で"真"と書いてもいいです。

26746 Re:計算式を教えて下さい。 sion 2004/06/22-23:33
記事番号26737へのコメント
うにんさん

>これは約束事なので納得するよりしょうがないのですが、
>元々桐では「0と未定義以外真」なので1には特別な意味はないです。
>9でも-1でも文字列で"真"と書いてもいいです。

有難う御座います、なっとくです。

#条件選択の計算は上手くできて、
うんうんって感じなんですが、
=0でないとき数値以外の物を入れる(表示する)方法がわからないんです、
不明、でも##でも。。でも、なんでもいいんです、
数値のところに、文字列いれる技ないでしょうか、

宜しくですです。


26751 Re:計算式を教えて下さい。 うにん 2004/06/23-10:32
記事番号26746へのコメント

>=0でないとき数値以外の物を入れる(表示する)方法がわからないんです、
>不明、でも##でも。。でも、なんでもいいんです、
>数値のところに、文字列いれる技ないでしょうか、

それは無理なので、文字列にしておいて右寄せにするとか、
他の項目で計算に使いたければ#数値()で変換するとかいうことになります。

26763 Re:計算式を教えて下さい。 sion 2004/06/23-22:18
記事番号26751へのコメント
>それは無理なので、文字列にしておいて右寄せにするとか、
>他の項目で計算に使いたければ#数値()で変換するとかいうことになります。

うにんさん、ご回答 有難う御座います、

と、言うことは、関係する他の項目も、
文字列にしなければ行けないんですよね・・・、

とりあえず、未定義の状態で行かさせてもらいます。

有難う御座いました、また、宜しくお願いします。



26764 数値に文字列は表示できません 佐田 守弘 2004/06/23-22:30
記事番号26751へのコメント
sionさん

うにんさんも書いている通り、数値項目に文字列を表示する事は不可能です。
かと言って、未入力の表示のために文字列型とすると言うのも、感心できません。
数値型のデータは、数の値として評価され、その数値で演算ができる事を特徴としています。
これに対して、文字列型で表示した数字は、あくまでも数字文字列であり、
数の値としての意味を持ちません。
「#数値」関数で数値として評価する方法がありますが、集計などを行う際にはなはだ面倒になります。

質問の件のデータは、もともと数値として使うデータでないでしょうか。
であるなら、表示のためだけに文字列型とする事は、本来の目的に合いません。

もし集計する事があるならば、仮に合計しても値が変わらない様に0を表示させる
当たりが妥当な様な気もします。
あるいは極端に大きな値を設定し、桁溢れ表示(*****が表示される)をさせるのも可能ですが、
その値が項目に設定されるわけですから、集計に影響しないかどうかを考えて判断してみて下さい。

佐田守弘(KS-00119)


26767 Re:数値に文字列は表示できません hidetake 2004/06/24-00:01
記事番号26764へのコメント
>うにんさんも書いている通り、数値項目に文字列を表示する事は不可能です。
>かと言って、未入力の表示のために文字列型とすると言うのも、感心できません。
>数値型のデータは、数の値として評価され、その数値で演算ができる事を特徴と
>しています。

sionさんは、もしかして Access や DBPro の書式設定のような事をイメージされていたのかな?
 だとすると桐では無理です。

Access や DBPro の場合は、
正の場合はどのように表現しなさい;
負の場合はどのように表現しなさい;
ゼロの場合はどのように表現しなさい;
ヌル値の場合はどのように表現しなさい
って、数値項目の場合は ; で区切って書式設定ができるのですが・・・

例)プラスです;マイナスです;ゼロです;未定義です

数値書式
http://www.softvision.co.jp/dbpro/help/guide/format.htm#number
>値による書式の使い分け
> * 正値用,負値用,ゼロ値用,ナル用の4種類の書式をセミコロン ; で
>区切って指定できます。

と言うことで、桐の場合は数値型項目でもし数値以外ものを表現したければ
文字列型に設定して使うしかないです。


前ゼロなんかも・・・
主キーのデータ型は文字列型がよく使われていますがカウンタ型や数値型に比べてどのようなメリットがありますか
http://www.fuku3.com/~habata/kbbs/kakov9/25178.htm

# 桐でもパスワードな設定も含めて書式設定が欲しい!!! (^^ゞ
26768 Re:数値に文字列は表示できません sion 2004/06/24-00:33
記事番号26764へのコメント
佐田 様、判り易く説明して頂き有難う御座います、

おっしゃる通りです、
とても、参考になります、

集計はしませんが、
kiriが、使えるようになったら
比較ぐらいはさせ、
それから・・・なんて、妄想しています。

とりあえず、その でかい数値をいれて・・・
というのをやってみます、

条件選択で、そのでかい数値は使わないなんて考えてます、
素人の思いつきですが、

では、あつかましくも、また宜しくですです。


26773 Re:データ型による速度差 尾形 2004/06/24-10:50
記事番号26767へのコメント
>http://www.fuku3.com/~habata/kbbs/kakov9/25178.htm
↑ここの中で

>速度面
> 桐の場合、文字列はすべて可変長になるので、長整数型のほうが
> 圧倒的に有利ですね。
とありますが、私はDOS時代からの流れで数値か


26789 Re:数値に文字列は表示できません sion 2004/06/24-23:15
記事番号26767へのコメント
hidetakeさん、有難う御座います、

ひ〜難しくて、ついていけましぇん、

ここでもっと勉強させてもらいます。

今後とも宜しくお願いします。

戻る