初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2016-11-07 17:55:30

mks
Guest

ある期間を集計する計算式を教えてください。

OS:[windows7]
FileMaker Ver:[Filemaker pro Advanced 12]

お世話になります。
以下のような期間を集計したいです(月単位)。
レコードも作業が発生すればどんどん増えていきますが
例として3レコードにしています。

            開始日         終了日
A作業  2016/8/5     2016/8/25
B作業  2016/8/25   2016/9/10
C作業  2016/9/10 

もし集計日フィールドが...
7/31ならば、対象なし

8/10ならば、A作業=6日(8/5~8/10)

8/30ならば、A作業=21日(8/5~8/25)
                  B作業=6日(8/25~8/30)

9/20ならば、B作業=10日(9/1~9/10)
                  C作業=11日(9/10~9/20)

10/5ならば、C作業=5日(10/1~10/5)

集計日フィールドがどんな日付に代わってもそのたびに、
対象期間を月単位で計算するにはどのような計算式を作ればよろしいでしょうか?
なにかスマートな計算式はありますでしょうか。
よろしくお願い致します。

#2 2016-11-07 20:41:17

シャチ
Member

Re: ある期間を集計する計算式を教えてください。

mks wrote:

OS:[windows7]

もし集計日フィールドが...
7/31ならば、対象なし
8/10ならば、A作業=6日(8/5~8/10)
8/30ならば、A作業=21日(8/5~8/25)
                  B作業=6日(8/25~8/30)
9/20ならば、B作業=10日(9/1~9/10)
                  C作業=11日(9/10~9/20)
10/5ならば、C作業=5日(10/1~10/5)

ここに出てくる 各作業の後ろの日にちは どこから出てくるので?

検索する日付を探すことは
リレーション使えば絞り込めるけど。。。
後ろの日付はデータがないと検索できないのでは?

Last edited by シャチ (2016-11-08 10:29:09)

Offline

#3 2016-11-07 23:41:49

Shin
Member

Re: ある期間を集計する計算式を教えてください。

集計、というか、表示すれば良いのであれば、条件で検索して、表示データを調整すれば良いでしょうね。
https://www.dropbox.com/s/r1rn7g65r4bgi … 7.zip?dl=0

Offline

#4 2016-11-08 10:57:27

旅人
Member

Re: ある期間を集計する計算式を教えてください。

スマートでもないし、日付や時刻が苦手な私が想像できた期間範囲条件
を思い付くまま羅列してみただけです。修正や単純化必須で自信無し!!

Let(月初= Date(Month(集計日);1;Year (集計日));
Case((
IsEmpty(開始日)and IsEmpty(終了日)) or (not IsEmpty(終了日) and 終了日 < 月初)or 集計日 < 開始日;0;
IsEmpty(終了日) and 月初 ≤ 開始日 and 開始日 ≤ 集計日;集計日-開始日+1;
IsEmpty(終了日) and 開始日 ≤ 月初;Day (集計日);
開始日 ≤ 集計日 and 終了日 ≤ 集計日 and 月初 ≤ 開始日;終了日-開始日+1;
開始日 ≤ 集計日 and 終了日 ≤ 集計日 and 開始日 ≤ 月初;終了日-月初+1 ;
月初 ≤ 開始日 and 集計日 ≤ 終了日;集計日-開始日+1;
開始日 ≤ 月初 and 集計日 ≤ 終了日;集計日-月初+1;
開始日 ≤ 月初 and 集計日 ≤ 終了日;Day (集計日)
))

Offline

#5 2016-11-08 11:35:12

シャチ
Member

Re: ある期間を集計する計算式を教えてください。

Shinさんと旅人さんのレス見てようやくわた日が誤解していた様だと気づいて、赤面

しかし、もとデータの作り方がわからないと、私には難しい問題の様です。
月単位と言いながら、月の途中での集計なのかな?
どうも考えが遠いので、身を引きます。

Last edited by シャチ (2016-11-08 13:19:46)

Offline

#6 2016-11-08 11:43:28

チポ
Member

Re: ある期間を集計する計算式を教えてください。

集計日の月の月初と月末を得て、
  月初 <= 終了日
  and
  月末 >= 開始日
が対象レコードです。

その日数は
  Min ( 月末 ; 終了日 ) - Max ( 月初 ; 開始日 ) + 1
で求められますね。

終了日が空白なら、
遠い未来の日付を入力する計算フィールドにすればいいでしょう。


集計日がグローバルフィールドならば、
リレーションと計算で求められますが、
他のテーブルで異なる集計日ごとに求めるのなら、スクリプトになりますかね。。

Offline

#7 2016-11-08 15:25:23

チポ
Member

Re: ある期間を集計する計算式を教えてください。

>   月初 <= 終了日
>   and
>   月末 >= 開始日

これだけではダメですね。

  and
  集計日 >= 開始日
を追加してください。

Offline

#8 2016-11-08 15:35:22

Hiro
Member

Re: ある期間を集計する計算式を教えてください。

動的なポータルフィルターによる作例サンプルをアップしました。
フィルター条件式は、チポさんの考え方と同様です。
(※チポさん #6の「月末」は、→「集計日」のタイポかと?そうすれば#7補正は不用かと?)

●ポータルフィルタ使用サンプル「対象期間の月単位集計.fmp12」 → http://yahoo.jp/box/4YwBXg

Offline

#9 2016-11-08 16:18:09

チポ
Member

Re: ある期間を集計する計算式を教えてください。

Hiroさん
まったくその通りですね ;;;

月内
と最初から思い込んでの始末でした。。

Offline

#10 2016-11-09 11:29:11

mks
Guest

Re: ある期間を集計する計算式を教えてください。

皆さま、いろいろとご回答ありがとうございます。

Shin様
サンプル見させて頂きました。
Min、Max関数で、集計日に係る対象期間を簡単に求められるのですね。
この方法で、検討してみようと思います。
ありがとうございました。

旅人様
私も全く同じように、集計日・開始日・終了日をそれぞれ比較しながら計算させておりました。
Shin様の方法で検討してみます。
ありがとうございました。

チポ様
Min ( 月末 ; 終了日 ) - Max ( 月初 ; 開始日 ) + 1という計算で簡単に求められることが分かり
とてもいい収穫になりました。
ありがとうございました。

Hiro様
サンプル確認させて頂きました。
とても立派なもので、こんな風に作れるようもっと勉強します。
やはり、Min、Max関数を使ってみようと思いました。
ありがとうございました。

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.009 seconds, 9 queries executed - Memory usage: 522.23 KiB (Peak: 527.14 KiB) ]