アプリ版:「スタンプのみでお礼する」機能のリリースについて

ファイルメーカープロ5.5で集計表を作っています。ある条件の時には、そのときの数字を加算しないようにしたいのですが。計算式をいろいろ試したりしているのですがうまくいきません。ここでこういう質問してもよいのかわかりませんが、よろしくお願いします.

A 回答 (9件)

質問が漠然としていて、どうアドバイスしたら良いのかわかりませんが・・・


pro5.0までしか使用していないので、(5.5は使用したことがありません)
なんともいえませんが、if文とIsEmpty,IsValid関数で何とかならないでしょうかね???
    • good
    • 0

計算フィールドをもう一つ作って、「ある条件の時」には0になる様にしてしまえば


すむような気がしますが…それじゃぁダメなんですか?

この回答への補足

表の説明を。うまく伝わるといいのですが。

1ヶ月分の集計表で10の項目のフィールドを31日分繰り返しでつくりました。各項目に数字をいれて合計をだすのですが、ある項目に数字があるときはその日のほかの項目の数字を加算したくないのです。ifの計算式の中にsum(フィールド)は使えますか?やってみましたが、うまくいかなくて・・・ですから、数字を数字として読ませない方法とかあれば、と思ったり。すみません、超初心者なもので、伝わるでしょうか?

補足日時:2002/09/25 14:50
    • good
    • 0

繰り返しフィールドの特定の部分だけを加算しないという意味であれば、


いきなり計算式で出すのは難しいでしょう。

No.2の方の答えと同じですが、
計算フィールド(繰り返し31)を作り、「ある条件の時」には0にする。
この計算フィールドを合計する。
    • good
    • 0

no1です。



自分も今、filemaker5.0でファイル作成しており、ちょっと空き時間に考えてみました。状況が違っていたら補足ください。

現在のフィールドをtemp1~10として、その繰り返し関数を31とします。
31個が日付にあたるものとしますよね。

集計するフィールドをsumとします。
合計はその日の合計を出すということですよね。

その場合の関数は計算フィールドで作成し、
「=temp1+temp2~temp10」で作成できると思います。
(この場合、sumフィールドも繰り返し関数を31にしなければいけません。)
これで、sumフィールドにはその日付けの合計が表示されると思います。

もし、temp1のフィールドに値が入っているときは計算せずにtemp1のフィールドを出す。temp1のフィールドに値がないときには、temp2~temp10までの合計を出すという関数は、計算フィールドで
「If( IsEmpty(temp1) , temp2+temp3~temp10 , temp1 )でできます。

どうでしょう???

うまく作成できると良いですね!

この回答への補足

お答えがうまく頭に入ってこないので、とんちんかんなことを言っているかもしれませんが、お許しを。  合計は項目(temp1)の1ヶ月の合計です。縦に日付、横に項目、で、縦の計算で項目の1ヶ月の合計を出したいのです。

補足日時:2002/09/25 17:48
    • good
    • 0

おはようございます。

再度、no1です。

自分にとっても、良い勉強になります。
がんばりましょう!

vivanonさんの伝えたいところがうまく伝わらないので
たいへんですね。

要するに、ひとつのフィールドに31個の繰り返しがあるものの合計ということで
良いでしょうか?

こんなのどうでしょう?
sumフィールドが

If( IsEmpty(GetRepetition( temp , 2 )), Sum(temp) , GetRepetition(temp, 2 ) )

GetRepetitionというのは、繰り返し関数の何番目かの値を得る関数です。
GetRepetition( temp , 2 )というのは、tempフィールドの2番目の値を取得します。

IsEmptyというのは、そのフィールドが、空(NUL)の場合は真「1」を返し、その他の場合に偽(0)を返します。

ここでは、tempフィールドの2番目の値に何も入っていなければ、 Sum(temp)。
2番目に値が入っていれば、その2番目の値を返します。

どうでしょう?
    • good
    • 0

no1です。

何度もすみません。

ちょっと内容がわかってきた気がします。
基本的に、値があるのを認識しないというのはやはり無理があるかと・・・

temp1の3日目に値があるときはtemp2の3日目をsum2の合計に入れない。
temp1の4日目に値があるときはtemp2の4日目をsum2の合計に入れない。
ということでしょうか?

この場合、他の方が書かれたように、temp2_1などのフィールドを作成し、
こちらの合計を表示させるのが後からも変更が楽でよいと思います。

temp2のフィールドを繰り返し31で作成しますよね。
そして、temp2_1を計算フィールドの繰り返し31で作成します。
temp2=If(IsEmpty(temp1), temp2 , 0)です。
temp1の日付ごとに、値が入っている場合は、0を返します。
値がない場合は、temp2の値を返します。

そして、sum2=Sum(temp2_1)とすれば、いろいろ応用がきくかも♪

この回答への補足

付き合って下さり、ありがとうございます。とてもうれしいです。

31繰り返しの項目フィールド10個なら31繰り返しの計算フィールドも10個いるということですね?この理解であってますか?表が2つある、みたいなものですよね?値があるのを認識しないというのは、やはり無理なのでしょうか?( )を使えば数字として読まない、とかそういう設定はできないのですね?もう1つ表を作らなくてはいけないのか・・・と思ってしまいました。

補足日時:2002/09/26 15:48
    • good
    • 0

混乱しているようなので繰り返しますが、計算フィールドで整理してから集計すれば


済むことです。
条件項目 項目1 項目2 項目3 …が、それぞれ繰り返し項目になっているとして、

計算項目1 :=if(isEmpty(条件項目),項目1,0)
計算項目2 :=if(isEmpty(条件項目),項目2,0)
計算項目3 :=if(isEmpty(条件項目),項目3,0)

を項目の数だけ作り繰返し項目に設定すると、条件項目が空欄の日だけを抽出した繰り
返しリストになりますね。そうすると

合計項目1 :=sum(計算項目1)

でいいわけです。もちろんすべての計算項目について同一の条件項目を使う必要はあり
ませんし、計算項目はレイアウトに表示しなくてもいいです。

この回答への補足

すみません。理解するのに時間がかかってしまいます。

項目が10個なら、計算項目は10個でいいんですよね?31個じゃないですよね?
お答え戴いたとおり計算式をいれてみました。しかし、最初の数字しか入っていないのです。合計項目も最初の数字しかはいっていないです。
計算項目は1つなのに31日分の合計は合計項目で加算されるのですか?

すみません。まだわからないです。見捨てないでください。

補足日時:2002/09/26 15:28
    • good
    • 0

できました?


なかなか、文章から理解するのは難しいようですね。
    • good
    • 0
この回答へのお礼

なんとか一生懸命理解してとりあえず、1項目やってみました。思うように数字がはいってくれて感激しています。が、全部の項目つくるのかと思うと・・
・。本当は項目18個あるんです。用紙の大きさからはみだしていても印刷しないようにすれば大丈夫なのでしょうか?全然お礼になってなくて申し訳ありません。

お礼日時:2002/09/26 16:47

そうですね。

。。
乗りかかった船です。。とりあえずがんばりますか。
俺にもいい勉強です。

No.7の方が書いてくれたのも、同じようなこと「のようです」。
項目1の計算項目1を作成して、その合計を出すということだと思います。
当然、項目が10個ならば、計算項目も10個必要です。
18個なら計算項目は18個必要となるでしょう。

フィールドを定義するときに、数字フィールドで定義するか、
テキストで定義するか。
計算用のフィールドの場合は、数字フィールドが無難ですよ。
混在(計算する個所と()などを使用して計算しないところ)に
してしまうと、後々、不具合が生じるかもしれません。

印刷に関しては、オブジェクトを選択し、
選択部分を印刷しないとすると、問題はありません。

No7のかたが書いてくれたように、計算フィールドは
レイアウト上になくても構いません。
レイアウトを印刷用に分けても構いませんし。
    • good
    • 0
この回答へのお礼

最後までお付き合いくださり感謝いたします。がんばってとりあえず、完成させました。思うように数字がはいってくれて爽快!!です。でも、まだまだ慣れていないので大変でした。私もいつか回答者になれるよう、勉強します!!ありがとうございました。

お礼日時:2002/09/27 06:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す