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

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

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

You are not logged in.

Announcement

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


#1 2017-09-07 15:24:17

ハタ坊
Member

続、経過年数の算出方法

ハタ坊 さんの発言:

Hiro さんの発言:

製造「月」データがない場合は、便宜的に中間月=6と仮定した式例です。

Let([
   #set=
      Let([
         #ym=Substitute(製造年月フィールド; ["年";¶];["月";¶]);
         #y=GetValue(#ym; 1);
         #m=GetValue(#ym; 2);
         #m=Choose(IsEmpty(#m);#m; 6)
      ];
         #y*12 + #m
      );
   #now=Year(Get(日付))*12 + Month(Get(日付));
   #pas=#now - #set
];
   Div(#pas; 12) & "年" & Mod(#pas; 12) & "月"
)

ありがとうございました。
要望通りの動きになりました。
Hiro様、大変感謝いたします。



先ほどはありがとうございました。
おかげさまで希望通りのDBに近づくことができました。
もう少しだけ質問があります。

先ほどの計算式を入力した場合に、新しいレコードを作成すると、製造年月フィールドは空欄なのに
「経過年数」というフィールドに「2017年2ヶ月」と表示されてしまいます。
これを修正したいです。
製造年月フィールドが空欄ならば、先ほどの計算式を行わずに「経過年数」フィールドを空欄に保ちたいです。
製造年月フィールドに入力されたときにはじめて計算されて、「経過年数」フィールドに計算により導かれた答えが
出力されるようにできないでしょうか?

ちなみに、計算式の指定ウインドウの(式内の全フィールドの値が空欄の時、計算しない)チェックボックスにチェックを入れてもやはり計算されてしまいます。

ご教授の程、宜しくお願い致します。

Offline

#2 2017-09-07 15:59:26

Hiro
Member

Re: 続、経過年数の算出方法


Choose(IsEmpty(製造年月);
   //▼先の式
   Let([
      #set=
         Let([
            #ym=Substitute(製造年月; ["年";¶];["月";¶]);
            #y=GetValue(#ym; 1);
            #m=GetValue(#ym; 2);
            #m=Choose(IsEmpty(#m);#m; 6)
         ];
            #y*12 + #m
         );
      #now=Year(Get(日付))*12 + Month(Get(日付));
      #pas=#now - #set
   ];
      Div(#pas; 12) & "年" & Mod(#pas; 12) & "月"
   )
   //▲ココまで

)

Offline

#3 2017-09-08 09:52:52

ハタ坊
Member

Re: 続、経過年数の算出方法

ありがとうございます。
要望通りの動きが実現できました。
誠にありがとうございました。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.008 seconds, 9 queries executed - Memory usage: 505 KiB (Peak: 515.81 KiB) ]