過去の桐井戸端BBS (桐ver.9)
30727 #条件選択の中での.andの使い方を教えてください miya 2005/08/07-04:13
TBLの項目計算式での#条件選択の中での書式について教えてください.
桐ver9を使用しています.
項目が
国語1,国語1単位,国語2,国語2単位,国語合計単位
と5つあるTBLがあります.項目のデータ型はすべて数値とします.
(整数でもいいのですが)
国語1,国語2には未定義か,1から5までの数値が入ります.
国語1が未定義なら,国語1単位も未定義で,国語1に1が入るとき
には国語1単位には0,国語1に2から5が入るときには国語1単位
には3が入ります.
国語2も同様ですが,国語2に2から5が入るときには国語2単位に
は4がはいるとします.
ここまでは,国語1単位や2の項目計算式に#条件選択文をいれてできました.
     ファイル属性の未定義項目値処理を未定義にして
     #COND([国語1]>=2,3, [国語1]=1,0)

お聞きしたいのは
国語合計単位
に,国語1単位と国語2単位の合計 をいれたいですが,
国語1,国語2ともに未定義なら,国語合計単位も未定義にし
どちらかに1以上の数値がはいっていれば,合計する.
という処理についてです.
過去BBSの 29372 #条件選択で複数の項目の判断をさせるにはどう書けばいいのでしょうか
を参考にして,
#COND([国語1]=#u .and [国語2]=#u,#u,1,[国語1単位]+[国語2単位])

#cond(.not #横合計([国語1],[国語1]).and .not #横合計([国語2],
[国語2]),#u,1,[国語1単位]+[国語2単位])
と書いて見たのですが,
どちらも,国語1,国語2ともに数値の入力がないと合計単位の項目に値を
返してくれません.私が書いた文のandがorになっているような動きです.
.and の使い方がまちがっているのでしょうか?

なにか考え違いをしていると思いますのでよろしくお願いします.

30728 Re:#条件選択の中での.andの使い方 V30 2005/08/07-07:17
記事番号30727へのコメント
>#COND([国語1]=#u .and [国語2]=#u,#u,1,[国語1単位]+[国語2単位])
>や
>#cond(.not #横合計([国語1],[国語1]).and .not #横合計([国語2],
>[国語2]),#u,1,[国語1単位]+[国語2単位])
>と書いて見たのですが,
>どちらも,国語1,国語2ともに数値の入力がないと合計単位の項目に値を
>返してくれません.私が書いた文のandがorになっているような動きです.
>.and の使い方がまちがっているのでしょうか?
>
>なにか考え違いをしていると思いますのでよろしくお願いします.

間違ってるかもしれないけど、書いてみます。
間違っていたら、ごめんなさいね(^^ゞ
カッコがないからうまく行かないのかなと見てました。
#COND(([国語1]=#u .and [国語2]=#u),#u,1,[国語1単位]+[国語2単位])
.andをカッコでくくる。
以前にカッコがいるって本で読んでから、必ずカッコを入れるようにしてます。
間違ってるかも知れんけど(^^ゞ



30741 Re:#条件選択の中での.andの使い方 佐田 守弘 2005/08/07-08:52
記事番号30727へのコメント
miyaさん

#条件選択([国語1]=#未定義 .and [国語2]=#未定義,#未定義,
     1, #未定義値変換([国語1単位],0)+#未定義値変換([国語2単位],0)
     )
として下さい。

質問分に書かれている
 >#COND([国語1]=#u .and [国語2]=#u,#u,1,[国語1単位]+[国語2単位])
では、[国語1単位]と[国語2単位]とを単純に加算しています。
加算の場合、一方が未定義値であると他方が値を持っていても、合計値は未定義値になります。

それを避けるには、「#未定義値変換」関数を使います。

佐田守弘(KS-00119)
30749 Re:#条件選択の中での.andの使い方 V30 2005/08/07-11:11
記事番号30741へのコメント
>質問分に書かれている
> >#COND([国語1]=#u .and [国語2]=#u,#u,1,[国語1単位]+[国語2単位])
>では、[国語1単位]と[国語2単位]とを単純に加算しています。
>加算の場合、一方が未定義値であると他方が値を持っていても、合計値は
>未定義値になります。

どうやらこれみたいですね(^^ゞ
一括処理で計算できなかったことを思い出した。
数値の変数を初期化してなくて、未定義で計算できなかったのだった。
カッコで囲まないといけないは、間違っていたのね。
あれって、どの本で読んだんだろう???

30758 Re:#条件選択の中での.andの使い方 うにん 2005/08/07-19:02
記事番号30749へのコメント

>カッコで囲まないといけないは、間違っていたのね。
>あれって、どの本で読んだんだろう???

カッコが必要なのは優先順位が問題になる場合ですから、
.andと.orを両方使ったり、結果の論理値を数値として計算する場合
などじゃないでしょうか。

30759 Re:#条件選択の中での.andの使い方 V30 2005/08/07-19:32
記事番号30758へのコメント
>カッコが必要なのは優先順位が問題になる場合ですから、
>.andと.orを両方使ったり、結果の論理値を数値として計算する場合
>などじゃないでしょうか。

その本には、必ずカッコを付けて書くって書いてあったような記憶があるんですよね。
それ以来、必ずカッコを付けて書くようにしています。


30769 Re:#条件選択の中での.andの使い方 miya 2005/08/07-23:16
記事番号30728へのコメント
V30さん,コメントありがとうござます.
括弧を付けてみましたが,変化はありませんでした.
やはり,未定義値の足し算に問題があったようです.
30771 Re:#条件選択の中での.andの使い方 miya 2005/08/07-23:45
記事番号30741へのコメント
佐田 守弘さん,コメントありがとうございます.

>#条件選択([国語1]=#未定義 .and [国語2]=#未定義,#未定義,
>     1, #未定義値変換([国語1単位],0)+#未定義値変換([国語2単位],0)
>     )
未定義値変換を使ったら,意図したように計算してくれました.
ありがとうございました.

>#COND([国語1]=#u .and [国語2]=#u,#u,1,[国語1単位]+[国語2単位])
>では、[国語1単位]と[国語2単位]とを単純に加算しています。
>加算の場合、一方が未定義値であると他方が値を持っていても、合計値は
>未定義値になります。
項目の単純な足し算(+で足す)では未定義値が1つでもあると未定義になるのでしょうか?
また,#横合計([項目1],[項目2])では未定義があっても,
値のあるものだけを足し算してくれるのですね.(いくつか試して,わかりました)
ファイル属性の未定義項目値処理をゼロに変えても未定義値があると,未定義を返して来ますね.
これは,すでに入力されている項目には未定義項目値処理の
変更(未定義からゼロへの)は影響しないのですね?
参考にした,過去BBSでのやりとりでは影響があるように思えました.

値がはいる前に,未定義項目値処理を未定義にしておくか,横合計([国語1],[国語1])のような工夫をして,#未定義値変換関数を使う というのが解決法だということですね.

未定義項目値処理の振る舞いに疑問が出てきましたが,表題の件は解決しました.
ありがとうございました.

疑問 1つの項目の「縦の合計」では未定義項目値処理の「未定義」か「ゼロ」が影響するのですよね.
また,すでにレコードがある状態で未定義項目値処理を変更しても既存のレコードにある「未定義」か「0」の値には変化がない?

30773 Re:#条件選択の中での.andの使い方 V30 2005/08/07-23:56
記事番号30769へのコメント
>V30さん,コメントありがとうござます.
>括弧を付けてみましたが,変化はありませんでした.
>やはり,未定義値の足し算に問題があったようです.

全部数値というのを見逃していました(^^ゞ
全部文字列だと思って考えてしまいました(^^ゞ
でも、カッコはつける癖を付けたほうがいいと、僕は思っています。
僕は、先ほどみたいな式のときは、必ずカッコを付けるようにしています。
カッコを付けているわけではありません(爆)。
一括処理でも、合計計算の場合、変数の初期化を忘れがちになります。
未定義になっていると、合計できません。

30777 Re:#条件選択の中での.andの使い方 悲しげ 2005/08/08-00:45
記事番号30771へのコメント
夜も更けているので1点だけ。(^^;)

>ファイル属性の未定義項目値処理をゼロに変えても未定義値があると,未定義を
>返して来ますね.これは,すでに入力されている項目には未定義項目値処理の
>変更(未定義からゼロへの)は影響しないのですね?

う〜ん、そんなことは無いと思うのですが?
ファイル属性の未定義項目値処理を変更した後に、当該項目について
項目置換をかけてみたらどうでしょう?


30780 【解説】未定義値未定義値を使った演算 佐田 守弘 2005/08/08-06:21
記事番号30771へのコメント
未定義値についての理解が不足の様なので、解説を致します。

●未定義値は
未定義値は、表の項目値であれば何も書き込んでない状態、変数であれば、宣言直後
で値を代入していない状態を言います。定数なら""と記述すれば未定義値になります。
ゼロは、0という値を持つのに対して、未定義値は何も値を持ちません。
受験して0点を取った人は0ですが、受験をしなかった人は0点ではなくて未定義値に
なるといった違いです。

●未定義値の処理
未定義値を強制的に0とみなす処理ができます。これは未受験者の成績を0点とする
といった扱いと同じです。どちらとするのが良いかは状況によって違います。

●未定義値を使った計算式の演算結果
加算に限らず、全ての四則演算、あるいは関数(集計関数を除く)を含む計算式の中に
未定義値があると、演算結果は未定義値になります。
項目計算式や、項目置換の計算式も含めて、全ての計算式がその対象になります。
理由は、「未定義値は値がないから計算そのものができない」と理解して下さい。

●集計関数での未定義値の扱い
集計関数、つまり、行集計での集計関数(#合計、#件数など)、および横集計関数
では、常に未定義値を除外して集計を行います。
例えば#件数では、未定義値を除いたデータの件数が求められます。

●参考情報
なお桐のヘルプで、「トピックスの検索」から「未定義値」を調べてみて下さい。
参考になる解説が記載されています。

佐田守弘(KS-00119)
30783 Re:【解説】未定義値未定義値を使った演算 miya 2005/08/08-09:17
記事番号30780へのコメント
佐田 守弘さん,解説ありがとうございます。

>●未定義値は
>受験して0点を取った人は0ですが、受験をしなかった人は0点ではなくて未定義値に
>なるといった違いです。
上記のことは認識していましたが、

>●集計関数での未定義値の扱い
>集計関数、つまり、行集計での集計関数(#合計、#件数など)、および横集計関数
>では、常に未定義値を除外して集計を行います。
>例えば#件数では、未定義値を除いたデータの件数が求められます。
成績の一覧表作成では、集計関数・横集計関数を使っていたので、いつの間にか
未定義値処理で、未定義とすればすべての関数で未定義値は省かれるものだと思いこんでいました。
ですから、
>●未定義値を使った計算式の演算結果
>加算に限らず、全ての四則演算、あるいは関数(集計関数を除く)を含む計算式の中に
>未定義値があると、演算結果は未定義値になります。
このような、基本的な(?)ことも意識の中になく、いろいろ思い違いをしているようです。
大変ありがとうございました。

>なお桐のヘルプで、「トピックスの検索」から「未定義値」を調べてみて下さい。
>参考になる解説が記載されています。
確認しました。桐のヘルプをよく調べないといけないですね。
でも、いつもパソコンを開いている訳にもいかず、解説本を購入しおうと先週秋葉原のLAOXの書籍コーナまでいったのですが、
桐関連はオンラインヘルプ本のみで、いわゆる解説本は1冊も、1種類もありませんでした。
アマゾンで検索しても、品切れか絶版のようで手に入りません。
桐ユーザーはそんなに少ないのでしょうか。
アクセスなどより取っつきやすく思えるのですが・・。
私にはわかりにくく思える、ヘルプ本をくまなく読むのが残された桐上達の道のようですね。
最後は愚痴になりすみませんです。
30786 Re:#条件選択の中での.andの使い方 miya 2005/08/08-11:30
記事番号30777へのコメント
悲しげさん、コメントありがとうございます。
>>これは,すでに入力されている項目には未定義項目値処理の
>>変更(未定義からゼロへの)は影響しないのですね?

>ファイル属性の未定義項目値処理を変更した後に、当該項目について
>項目置換をかけてみたらどうでしょう?

確認しました。ありがとうございます。
置換ー項目置換で計算式の入っている項目は、再計算するのですね。
エクセルなどの表計算ソフトを自動計算モードで使っているので、
入力時や再定義時にすぐ計算しないと??になってしまっていました。

もっとデータベース(桐)の勉強をしないといけませんね。


30815 Re:【解説】未定義値未定義値を使った演算 miya 2005/08/08-23:46
記事番号30780へのコメント
佐田 守弘さん,いろいろ教えて頂いてありがとうございます.

>●集計関数での未定義値の扱い
>横集計関数では、常に未定義値を除外して集計を行います。
未定義値についてあれから,ヘルプを参考にいろいろ試してみました.
自分のやりたいことはこの横集計関数を用いればもっと簡単にできることに思い至りました.
項目の順序を
国語1,国語2,国語1単位,国語2単位,国語合計単位
として,国語合計単位に
#横集計([国語1単位],[国語2単位])
と書けば,うまくいきます.
これならファイル属性での未定義処理がゼロでも未定義でも同じ振る舞いです.
.not .andや未定義値変換なども使わず,シンプルです.

#横集計2([国語1単位],[国語2単位])だとファイル属性での未定義処理
によって振る舞いが変わりました.

なかなかおもしろいです.他のDBソフトに横集計のような振る舞いの関数があるのだろうか?

コメントツリーでいろいろ教えて頂いた方々に改めて御礼申し上げます.
ありがとうございました.

30817 補足:横集計関数について 佐田 守弘 2005/08/09-05:33
記事番号30815へのコメント
miyaさん
●はじめに
始めに述べておきますと、横集計関数という用語は、総称ですから実際の
関数名として「#横集計」、「#横集計2」という関数名は存在しません。
実際の関数名は、#横合計、#横件数、#横平均など、および、#横合計2、
#横件数2などです。

ですから、
 >#横集計([国語1単位],[国語2単位])
 >#横集計2([国語1単位],[国語2単位])だと(以下略)
はそれぞれ#横合計、#横集計2の記述ミスかと思います。

●#横合計と#横合計2の違い
以下は、#横合計と#横合計2について記述しますが他の横集計関数についても
同じです。

・「#横合計」
この関数は、#横合計(item1,item2)の書式で記述し、item1およびitem2には項目名を指定します。
そしてitem1からitem2までの間の複数の項目値を合計します。
従って表定義で項目の順序を変更すると、集計内容が変わります。

・「横合計2」
この関数では、#横合計2(val1,val2,… valn)という様に合計する値を直接的に
並べて記述します。itemではなく、valと書かれているので、項目名だけなく、
変数や定数も記述できると理解してよい様ですね。(試した事はありません)

●未定義値の扱いの違いについて
#横合計と#横合計2では未定義値の扱われ方に違いがあるとの事ですが、
前回も引用したオンラインヘルプ等の記述と照らし合わせて考えるなら、
違いがあるのは本来はおかしいのではないかと思います。

なぜなら、オンラインヘルプでは、#横合計と#横合計2はいずれも集計関数として分類されています。
であれば、「式の書き方:未定義値を使用した計算」に記載されている以下の内容
 >集計関数は、[ファイル属性] の [未定義項目値処理] の扱いにかかわらず、
 >未定義値を除外して計算します。
に反する事になります。
(機会があったら管理工研に確認しておきたいと思います。)

佐田守弘(KS-00119)
30833 Re:#条件選択の中での.andの使い方 V30 2005/08/10-00:56
記事番号30758へのコメント
>カッコが必要なのは優先順位が問題になる場合ですから、
>.andと.orを両方使ったり、結果の論理値を数値として計算する場合
>などじゃないでしょうか。

僕の解釈が間違っていたようです。
式が二つ以上あるときは、カッコが必要というのを、A .and Bで式が二つと間違えて覚えていたみたいです(笑)。
A .and Bで、式が一つなのですね(^^ゞ
式が二つ以上というのは、A .and B .or C .and Dみたいなときでした。
この場合に(A .and B) .or (C .and D)にしなさいと、本に書いていたんだなと、
仕事中にふと気付きました(笑)。
近頃、仕事が暇で、桐でばかり遊んでます(爆)。


30836 演算子とその優先順位 佐田 守弘 2005/08/10-08:42
記事番号30833へのコメント
V30さん
 >式が二つ以上というのは、A .and B .or C .and Dみたいなときでした。
 >この場合に(A .and B) .or (C .and D)にしなさいと、本に書いていたんだなと、

人間にとっての見やすさの上では、括弧があった方が分りやすいかと思いますが、
この式の値について言えば、括弧があってもなくても、同じ結果です。

理由は、論理演算子「.and」と「.or」では「.and」の方が優先順位型書く、先に
演算されるからです。つまり上記の場合には、言葉で言えば、
*AであってBであるか、もしくは、CであってDであるかのいずれかの意味になります。

これに対して、.andと.orが逆の場合、つまり
 @ A .or B .and C .or D
 A (A .or B) .and (C .or D)
だと、両者の意味は全く変わります。
@は、Aもしくは、BであってCであるか、もしくはDである
Aは、AもしくはBであり、かつ、CもしくはDである。
となります。

佐田守弘(KS-00119)

30839 Re:補足:横集計関数について miya 2005/08/10-09:52
記事番号30817へのコメント
佐田 守弘さん,補足ありがとうございます。
ご指摘の通り、
#横合計、#横合計2の記述ミスです。すみませんでした。

>●未定義値の扱いの違いについて
>集計関数は、[ファイル属性] の [未定義項目値処理] の扱いにかかわらず、
>未定義値を除外して計算します。
と、確かに記述してありますが、実際に前に報告したように、
項目や項目計算式を同じにしたTBLを2つ用意し、一方は、、[ファイル属性] の
[未定義項目値処理]をゼロ(こちらをTBL0)、他方は未定義(こちらをTBL未と
します)にして、「国語1」と「国語2」に値を入れたり、未入力の行を作った
りして見ると(TBL0、TBL未ともにデータは同じとしました)、TBL未では
#横合計、#横合計2ともに同じ結果ですが、TBL0では違います。
TBL0では、#横合計2([国語1単位], [国語2単位])は単に項目を足した
[国語1単位]+[国語2単位]と同じになり、「国語1」と「国語2」が未記入で
も0を返します。#横合計([国語1単位], [国語2単位])は未定義を返します。
実験した結果です。


30861 Re:こんなのがありました。 V30 2005/08/11-01:41
記事番号30817へのコメント
>●未定義値の扱いの違いについて
>#横合計と#横合計2では未定義値の扱われ方に違いがあるとの事ですが、前回も
>引用したオンラインヘルプ等の記述と照らし合わせて考えるなら、違いがある
>のは本来はおかしいのではないかと思います。
>
>なぜなら、オンラインヘルプでは、#横合計と#横合計2はいずれも集計関数として
>分類されています。
>であれば、「式の書き方:未定義値を使用した計算」に記載されている以下の内容
> >集計関数は、[ファイル属性] の [未定義項目値処理] の扱いにかかわらず、
> >未定義値を除外して計算します。
>に反する事になります。
>(機会があったら管理工研に確認しておきたいと思います。)

会社でこんなのを見つけました。
>横合計2
>val1 からvalnまでの値の合計値を返す。
>未定義値の扱いは、ファイル属性の未定義項目値処理の指定によって次のように変わる。
> ゼロの場合 : 0 として扱う
> 未定義の場合 : 無視する
>val に文字列型と日時型の値は指定できない。
これが、横合計2の関数の説明です。
ゼロの場合と、未定義の場合で扱いが異なるようです。

ちなみに、横合計は下のような説明でした。
>項目 item1 から item2 までの<縦集計関数名>で指定する縦集計値の合計値を返す。
><縦集計関数名>には次の関数を指定する。
> #合計、#件数、#平均、#最大、#最小、#標準偏差

>item1 が日時型の場合、<縦集計関数名>に #件数 と #標準偏差だけが指定できる。
>item1 が日時型の場合、日時型項目だけを計算対象にする。
>item1 が時間型の場合、時間型項目だけを計算対象にする。
>この形式は行集計条件式の中でだけ指定できる。

集計って、会社で使わないので苦手です。

30862 Re:補足:横集計関数について V30 2005/08/11-01:48
記事番号30839へのコメント
>項目や項目計算式を同じにしたTBLを2つ用意し、一方は、、[ファイル属性] の
>[未定義項目値処理]をゼロ(こちらをTBL0)、他方は未定義(こちらをTBL未と
>します)にして、「国語1」と「国語2」に値を入れたり、未入力の行を作った
>りして見ると(TBL0、TBL未ともにデータは同じとしました)、TBL未では
>#横合計、#横合計2ともに同じ結果ですが、TBL0では違います。
>TBL0では、#横合計2([国語1単位], [国語2単位])は単に項目を足した
>[国語1単位]+[国語2単位]と同じになり、「国語1」と「国語2」が未記入で
>も0を返します。#横合計([国語1単位], [国語2単位])は未定義を返します。
>実験した結果です。

それは、#横合計2がファイル属性の未定義項目値処理により演算が異なる理由からです。
TBL0の場合は、ゼロ扱いなので、0が返ります。
TBL未の場合は、未定義扱いとなり、無視されます。
以上の理由により、結果が異なるようです。


30865 Re:こんなのがありました。 miya 2005/08/11-06:11
記事番号30861へのコメント
V30さんは No.30861「Re:こんなのがありました。」で書きました。
>会社でこんなのを見つけました。
>>横合計2
私も一度その記述を見つけて,上のような記事を書きました.
そのあと佐田さんにコメントいただいて,再度確認しようとしたら,
見つからなくなってしまっていました.
このヘルプの記述はどちらにあったのか,教えていただけないでしょうか?
ヘルプのなかなか思った物をみつけられない初心者で申し訳ありません.
30869 署名の引用は御遠慮願います 佐田 守弘 2005/08/11-07:07
記事番号30861へのコメント
V30さん
情報提供ありがとうございます。

さて、書かれているコメントの末尾に御自身の署名ではなく、私の公認SE番号入りの署名を
引用されるのは御遠慮願いたいと思います(これで2回目ですので)。
末尾に御自身の署名が入っているならともかく、私の署名の引用があると、途中から読んだ人は、
私の記述と間違える場合がないとも限りません。

佐田守弘(KS-00119)

30870 横集計関数に関して 佐田 守弘 2005/08/11-07:20
記事番号30861へのコメント
V30さん

#30863の
 >*Ver9が欲しいな。。
の記述から推定しますに、お使いのバージョンは桐ver.9以前でしょうか。
であるとすると、桐のバージョンによってヘルプ情報の記述が違うのかも知れませんね。

現在の桐ver.9-2005版の「横合計2」に関する説明には、
 | val1 から valn までの合計を求めます。
 | val に時間型の値を指定する場合は、すべて時間型の値を指定しなければいけません。
 | 計算結果は、val に実数があれば実数型、それ以外は数値型になります。
 | val に文字列型と日時型の項目を指定することはできません。
と書かれているだけで、なぜか未定義値に関する取扱の記述が入っていません。

佐田守弘(KS-00119)
30883 Re:こんなのがありました。 V30 2005/08/11-20:46
記事番号30865へのコメント
>>>横合計2
>私も一度その記述を見つけて,上のような記事を書きました.その
>あと佐田さんにコメントいただいて,再度確認しようとしたら,
>見つからなくなってしまっていました.
>このヘルプの記述はどちらにあったのか,教えていただけないでしょうか?
>ヘルプのなかなか思った物をみつけられない初心者で申し訳ありません.

一括処理を再定義で開く
入力できる状態にする。
メニューバーー→入力→桐関数→集計→#横合計2。
#横合計2をクリックして→拡大ボタンをクリックすると、見れます。
ちなみに、表の再定義で見ることもできます。
この場合、式入力画面にして見てください。

30884 Re:署名の引用は御遠慮願います V30 2005/08/11-20:47
記事番号30869へのコメント
どうも、済みませんでしたm(__)m

30885 Re:横集計関数に関して V30 2005/08/11-20:50
記事番号30870へのコメント
>#30863の
> >*Ver9が欲しいな。。
>の記述から推定しますに、お使いのバージョンは桐ver.9以前でしょうか。
>であるとすると、桐のバージョンによってヘルプ情報の記述が違うのかも知れませんね。

はい、Ver8SP6を使用しております。

>現在の桐ver.9-2005版の「横合計2」に関する説明には、
> | val1 から valn までの合計を求めます。
> | val に時間型の値を指定する場合は、すべて時間型の値を指定しなければいけません。
> | 計算結果は、val に実数があれば実数型、それ以外は数値型になります。
> | val に文字列型と日時型の項目を指定することはできません。
>と書かれているだけで、なぜか未定義値に関する取扱の記述が入っていません。

どういうことなんでしょう?
記述忘れなのでしょうか?
それとも、Ver9から仕様が変わったのでしょうか?

30888 横集計関数とその仕様 佐田 守弘 2005/08/11-21:46
記事番号30885へのコメント
V30さん
 >記述忘れなのでしょうか?
 >それとも、Ver9から仕様が変わったのでしょうか?
実の所、私にも良く分りません。

そもそも、この「#<横集計関数名>2」の関数がいつから登場したものか。
実の所、私の記憶にも残っていません。
桐ver.6〜7は確認できなかったので何とも言えませんが、桐ver.5を調べてみると
「#横合計2」等の関数はなく、逆に行集計の中で使う横合計などの関数、つまり
縦集計を行った結果を横集計する関数が、現在の桐ver.9とほぼ同じ形でありました。

現在の桐ver.9では、この関数は
 【書式】 #横合計( item1 , item2 , op )
の様に記述し、「op」のパラメータには「縦方向の集計方法を指定します。」と
記載されています。

これに対して桐ver.5のヘルプでは、
 【書式】 #横合計( item1 , item2 ,<縦集計関数名>)
となっていて、同じ機能である事が分ります。

後は私の想像でしかありませんが、桐ver.6以降に登場してた#横合計2などの関数が
その後仕様変更があったとは考えにくいと思います。
そう言った意味で言えば、桐ver.8と桐ver.9でのヘルプガイドの記載の違いは、
何か理由があって、記述を省略したのではないかと思いますが、その理由は分りません。
(以前のヘルプを元に編集するはずだから、記載洩れではないだろうと思います)

佐田守弘(KS-00119)
30889 補足と訂正>横集計関数とその仕様 佐田 守弘 2005/08/11-22:01
記事番号30888へのコメント
V30さん
#30883の
 >メニューバーー→入力→桐関数→集計→#横合計2
を見落としてました。これは式エディタで表示される関数ヘルプですね。

調べてみたら、ここには
 | 未定義値の扱いは、ファイル属性の未定義項目値処理の指定によって次のように変わる。
| ゼロの場合 : 0 として扱う
| 未定義の場合 : 無視する
とV30さんが書かれているものと同じ内容が出ていました。

とうも、桐のメニューから入ったる関数ヘルプと、式エディタで表示される関数ガイド
とは、関数の分類と仕様の記述に、微妙な違いがある様です。

佐田守弘(KS-00119)
30890 Re:こんなのがありました。 miya 2005/08/11-23:41
記事番号30883へのコメント
V30さんは No.30883「Re:こんなのがありました。」で書きました。
>式入力画面にして見てください。
確認しました.#横合計2のこの記述をみて,未定義と0での扱いが
違うと知ったのでした.(テストしてみて,確認もしましたが)
そのあと,見つからなくなっていたのですが,式入力画面で確認でき
ました.ありがとうございました.(一括処理はやっていないので
見ていません.)
ちなみに,私はver9−2005(9−2004SP2)です.

30893 Re:補足と訂正>横集計関数とその仕様 原山 正洋 2005/08/12-09:14
記事番号30889へのコメント
> | 未定義値の扱いは、ファイル属性の未定義項目値処理の指定によって次のように変わる。
> | ゼロの場合 : 0 として扱う
> | 未定義の場合 : 無視する

ご存知とは思いますが、
桐のSystemホルダーに
KIRICMND.TBL  桐2004 一括処理コマンド一覧
KIRIFUNC.TBL  桐2004 関数仕様
KIRIODBC.TBL  桐2004 ODBC関数一覧
KIRIORCL.TBL  桐2004 ORACLE関数一覧
KIRIPROP.TBL  桐2004 フォームプロパティ一覧
があります。

私はこれをテキストに落として、ヘルプファイルを作っています。
ここには上記コメントが表示されています。

私の環境はV9-2004です。
ご参考になれば・・・



戻る