ファイルメーカ5を使用しています。
入力年月日より現在までの経過月数を割り出す方法を教えてください。
たとえば、2004/04/01を入力すれば「12」、2003/04/01なら「24」のようにしたいのですが

A 回答 (1件)

基本は、


(year(today)*12+month(today))-(year(入力日)*12+month(入力日))-if(day(today)<day(入力日),1,0)
てな感じですかねぇ。
    • good
    • 1
この回答へのお礼

有難うございます。
早速、やってみてできました

お礼日時:2005/04/04 23:22

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

このQ&Aを見た人はこんなQ&Aも見ています

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QファイルメーカーPro7での経過月数の計算

ファイルメーカーPro7で機器の設置から経過月数の計算をしたいのですが方法を教えていただけないでしょうか?設置日『2005/1/1』の様な形式でフィールドを設けています。よろしくお願いします。

Aベストアンサー

ファイルメーカー4の頃に書いたモノですが、

(Year(基準日)*12+Month(基準日))-(Year(設置日)*12+Month(設置日))
 -If(Day(基準日)<Day(設置日), 1, 0)

これは設置から満何ヶ月経過したかを出します。4月30日設置なら、
5月30日で1を返すわけです。vinocchioさんのはdayの部分を評価し
てないので、5月1日で1を返すでしょう。

QFilemaker 経過日数の計算式の入れ方

ファイルメーカー11です。
起算日から90日期日の支払年月日を自動計算させる方法を教えてください。
以下の通り計算式を入力しましたが、全く計算してくれません(T-T)

1. 「管理」→「データベース」画面にて、“支払日”のタイプを「日付」とする
2. 「オプション」をクリックし→
3. 「計算式で制限」にチェックを入れた後→
4. 「指定」をクリックし→
5. “起算日”+”期日”という単純な計算式を入れてみました。
(以上)

Aベストアンサー

普通に計算フィールドを作って、式を起算日+期日として結果を日付にするだけ。

Qファイルメーカー 一ヵ月後の日付をだすには?

入力日、タイプ:日付に2005/8/5と手動でいれたら、
有効期限(タイプ:日付)に自動で2005/9/5というように、入力日から一ヵ月後の日付を出すにはどのような計算式をいれたらよいのでしょうか?

参考書に載っていた
Date(Month(入力日)+ 1 ; Day(入力日); Year(入力日)という式を使うと
2005/08/01 と打ち込むと、2005/9/9 とでてしまいます。
2005/12/30の場合は、2006/1/1と出ます。
どうしたら、よいか教えてください。

Aベストアンサー

---------------------------------------------------
If ( Month ( Date ( Month ( 入力日 ) + 1 ; Day ( 入力日 ) ; Year ( 入力日 ) ) ) > Month ( Date ( Month ( 入力日 ) + 1 ; 1 ; Year ( 入力日 ) ) )
;
Date ( Month ( 入力日 ) + 1 + 1 ; 0 ; Year ( 入力日 ) )
;
If(Day ( Date ( Month ( 入力日 ) ; Day ( 入力日 ) + 1 ; Year ( 入力日 ) ) ) = 1
;
Date ( Month ( 入力日 )+1+1 ; 0 ; Year ( 入力日 ) )
;
Date ( Month ( 入力日 ) + 1 ; Day ( 入力日 ) ; Year ( 入力日 ) ))
)
------------------------------------------------------
フィールドタイプは「計算」で結果は「日付」です。

私が過去に他の方の回答に使用した式です。コピペで使えます。
検証は適当ですのでご自分でどうぞ。

---------------------------------------------------
If ( Month ( Date ( Month ( 入力日 ) + 1 ; Day ( 入力日 ) ; Year ( 入力日 ) ) ) > Month ( Date ( Month ( 入力日 ) + 1 ; 1 ; Year ( 入力日 ) ) )
;
Date ( Month ( 入力日 ) + 1 + 1 ; 0 ; Year ( 入力日 ) )
;
If(Day ( Date ( Month ( 入力日 ) ; Day ( 入力日 ) + 1 ; Year ( 入力日 ) ) ) = 1
;
Date ( Month ( 入力日 )+1+1 ; 0 ; Year ( 入力日 ) )
;
Date ( Month ( 入力日 ) + 1 ; Day ( 入力日 ) ; Year ( 入力日 ) ))
)
------...続きを読む

QFileMakerで、フィールドの値が空欄だった時に0を返す計算式

ファイルメーカーで、フィールドの値が空欄だった場合に
数値の0を返し、"空欄ではなかった時はそのままの値を返す"
計算式を教えてください。

IsEmptyを使ってみたのですがうまく行きませんでした。

FileMaker Pro7を使っています。
よろしくお願いします。

Aベストアンサー

結果=Case(IsEmpty(そのフィールド);0;そのフィールド)

QFileMakerのcase関数の作り方

合計20個の条件(条件1~条件20)を詰め込んだ「case関数」を書いてみたところ、正常に結果を返してきてくれたのは最初の2つ(条件1、条件2)だけで、条件3以降は全て条件2の結果を返してきます。なぜでしょうか??
数十個に及ぶcase関数は、そもそも無理なのでしょうか? 記号の入れ方のコツをご指南ください。

Aベストアンサー

Case文の書き方が間違ってますね。
2行目以降も、計算式の内容が必要です。

あと、計算式は見やすいように以下のような表記にした方がいいですよ。
Case(
希望到着年月="2014年8";"August, 2014";
希望到着年月="2014年9";"September, 2014";
希望到着年月="2014年10";"October, 2014";
あとは同様に~~
)

Qファイルメーカー(FileMaker)の関数を使って入力を制限

例えばファイルメーカーPro(FileMaker Pro 7.0v3)でメールアドレスのテキストフィールドを作成する場合。
入力できるテキストを40字(半角小文字a~z、半角0~9、半角アッ
トマーク、半角ピリオド、半角ハイフン、半角アンダースコア)のみに制限する方法はありますか?

※メールアドレスはあくまでも一例です。

Aベストアンサー

ウチは5.5なんですが、

グローバルフィールド「AllowChar」を繰り返し40で作成。中身は許
可する文字を列記したもの

計算フィールド「AllowCharCount」を繰り返し40で作成。計算式は
PatternCount(Extend(アドレス), AllowChar)

「アドレス」の制限を計算して求める
Length(アドレス) =Sum(AllowCharCount)

これでオッケーでした。

Qファイルメーカ 検索実行せずに該当するレコード数を知りたい

FM7です。

条件に合致したレコード数を知るために、現在は検索実行をした後に
Get(対象レコード数)
として求めていますが、検索実行をせずに知ることは出来ますか?

テーブルA
顧客-----地区名-----担当者
テーブルB
担当者---顧客数(計算 If テーブルAの担当者 = テーブルBの担当者 then 担当する顧客の数)

のような感じになると、ありがたいのですが。

Aベストアンサー

テーブルAとBを担当者でリレーションしてあってAは1レコードに顧
客一人と思っていいでしょうか。

ウチは5.5ですが、リレーション名が「担当」として
count(担当::顧客)
で出来てますよ。7でも同じだと思います。

Qファイルメーカーによる勤務時間計算を簡単にする方法についてお尋ねします

 出勤退庁が全く不定時な特殊派遣業務の管理作業をファイルメーカーPro9で行っております。
 派遣報酬は時間制で、
実働時間(30分単位)×職務別時間制定額+深夜(22時~5時)従事時間×深夜加算定額
 により構成されています。
 不定時な出勤退庁の例は下記のとおりです。
(勤務)開始時刻~終了時刻(実働時間、深夜時間)     
9:00~18:00(実働9.0H、深夜0)     
20:00~3:00(実働7.0H、深夜5.0H)      
23:00~7:30(実働8.5H、深夜6.0H)       
23:30~4:00(実働4.5H、深夜4.5H)       
1:00~4:30(実働3.5H、深夜3.5H)       
2:00~9:00(実働7.0H、深夜3.0H)       
21:00~7:00(実働10.0H、深夜7.0H)      

 まず実働時間の計算ですが、入力は上記の時刻どおり行うため、翌日にまたがる勤務のときはそのままだと実働時間がマイナスになります。 これを避けるため、その場合は終了時刻に1日(86400秒)を加算する次の式を定義しております。
 出退庁時刻等の定義は、次のとおりです。
出勤時刻→「開始時刻」
退庁時刻→「終了時刻・入力」と「終了時刻・換算」
実働時間→「実働時間・時刻」と「実働時間・数値」

終了時刻・換算=If( 開始時刻>終了時刻・入力; 終了時刻・入力 + 86400; 終了時刻・入力 )
 そして実働時間は
実働時間・時刻=終了時刻・換算-開始時刻
 とし、これを数値化するため、
実働時間・数値=Hour(実働時間・時刻 ) + Round(Minute(実働時間・時刻) / 60; 2 )
 としております。

 さて最大の問題は前記実働時間中の深夜従事時間の算出です。
 まずフィールド定義を
深夜開始=Time(22; 0;0)
深夜終了=Time(5; 0; 0)
深夜終了29時=Time(29; 0; 0 )
深夜従事時間=深夜時間
深夜時間の数値=深夜時間・数値
 とし、次の式により深夜従事時間を求めています。

深夜時間=If(終了時刻・換算 > 深夜開始; If( 終了時刻・換算> 深夜終了29時; 深夜終了29時;終了時刻・換算 )-If( 開始時刻>深夜開始; 開始時刻; 深夜開始 );0) + If( 終了時刻・換算>深夜終了; 深夜終了; 終了時刻・換算 )- If(開始時刻 <深夜終了; 開始時刻; 深夜終了 )
 これを数値化するため、
深夜時間・数値=Hour(深夜時間) + Round( Minute(深夜時間) / 60; 2 )

 以上が一連の式の流れですが、これらの式は何とも冗長で分かりにくいので、もっと簡単で分かりやすい計算式ができないか、悪戦苦闘しましたがいい智恵が浮かびません。
 思い余ってファイルメーカーの時間計算に詳しい方のご指導をいただきたく投稿しました。
 よろしくお願いします。

 出勤退庁が全く不定時な特殊派遣業務の管理作業をファイルメーカーPro9で行っております。
 派遣報酬は時間制で、
実働時間(30分単位)×職務別時間制定額+深夜(22時~5時)従事時間×深夜加算定額
 により構成されています。
 不定時な出勤退庁の例は下記のとおりです。
(勤務)開始時刻~終了時刻(実働時間、深夜時間)     
9:00~18:00(実働9.0H、深夜0)     
20:00~3:00(実働7.0H、深夜5.0H)      
23:00~7:30(実働8.5H、深夜6.0H)       
23:30~4...続きを読む

Aベストアンサー

条件判断を何でもかんでもif関数に頼ると冗長になります。ETC時間
帯割引のように数直線を描いてみるのが幸せになる第一歩ですよ。

   5:00        22:00      29:00
├──╂──────────╂───────╂────┤
  ┣━━━━━━━━━━━━━━┫
    ┣━━━━━━━━┫
           ┣━━━━━━━━━━━━━━┫

最初の深夜加算は開始時刻と5:00の早い方から始まり、終了時刻と
5:00の早い方で終わります。後の深夜加算は開始時刻と22:00の遅い
方から始まり、終了時刻と22:00の遅い方で終わるけど29:00で頭打
ちですね。

この「早い方/遅い方」はmin関数やmax関数で書けます。
開始時刻と5:00の早い方 =min(開始時刻;time(5;0;0))
開始時刻と22:00の遅い方 =max(開始時刻;time(22;0;0))
終了時刻と22:00の遅い方だけど29:00で頭打ち
 =min(max(終了時刻・換算;time(22;0;0));time(29;0;0))

整理すると、
深夜時間 = min(終了時刻;深夜終了)-min(開始時刻;深夜終了) +
      min(max(終了時刻・換算;深夜開始);深夜終了29時)-max(開始時刻;深夜開始)
こんな感じですかね。

条件判断を何でもかんでもif関数に頼ると冗長になります。ETC時間
帯割引のように数直線を描いてみるのが幸せになる第一歩ですよ。

   5:00        22:00      29:00
├──╂──────────╂───────╂────┤
  ┣━━━━━━━━━━━━━━┫
    ┣━━━━━━━━┫
           ┣━━━━━━━━━━━━━━┫

最初の深夜加算は開始時刻と5:00の早い方から始まり、終了時刻と
5:00の早い方で終わります。後の深夜加算は開始時刻と22:00の遅い
方から始まり、終了時刻と22:00の遅い方で終わるけど29:00で頭打
...続きを読む

Qファイルメーカーでの西暦から和暦表示への変換方法

ファイルメーカーでの西暦から和暦表示への変換方法を教えて下さい。

Aベストアンサー

>例えば2006/06/29を
>平成18年6月30日と表示させるにはどうすればいいでしょうか?
スラッシュで区切って入力した日付より1日先の日を和暦で表示すると理解しました。
計算フィールドを使用した方が簡単でしょう。
入力フィールドを「西暦」、結果を表示するフィールドを「和暦」とします。「西暦」フィールドは日付タイプ、「和暦」フィールドは計算タイプ(結果は日付)として、=西暦+1とします。レイアウトモードで「西暦」フィールドの書式→日付で「入力どおりに表示」を選択します。「和暦」フィールドの書式→日付で「カスタム」から「平成XX年」を選択します。最後の曜日は<なし>にすればよいでしょう。
はずれでしたらごめんなさい。

Qファイルメーカーで関連レコードを作成する方法

お世話になっております。rapisと申します。
いつも有難うございます。
以下の件をお教えいただけませんでしょうか。

以下のような入力レイアウトがあります。

ID   業者ID   業者名   処理内容
----------------------------------------
00001  g010   abc工業  排水パイプ修理
00002  g003   def管工  パイプ溶接
00003  g010   abc工業  排水ポンプ設置


00100  g011   ghi工場  特殊パイプ加工
というデータが入っています。
業者名は業者IDを入力すれば業者名が表示されるように業者テーブルからルックアップしています。

各IDをクリックすると、IDをキーにした、
更に詳細を入力できるレイアウトが表示されるようになっています。

詳細レイアウト:
ID   処理日  担当者・・
----------------------------
00001  1/27   山本  


00100  1/31   鈴木

たとえば、入力レイアウトで
ID:00001とID:00101が関連するデータであるということを表示したい場合、
どうしたらよろしいでしょうか。

できれば、
ID:00001の詳細レイアウトを表示している状態で、「関連レコード作成」というボタンをクリックすると、自動的にID:00101(現時点での最新ID)の番号が生成されて、詳細データを入力できるレイアウトが表示される。
ID:00001で検索しても、ID:00101で検索しても、どちらにも関連するレコードとして分かるようにしたいと思っています。
※関連データとはいえ、同じ処理日や同じ業者とは限りませんが、関連する理由は特に表示する必要はありません。
また、関連レコードが3~4つまで追加されることもあれば、関連レコードが全く発生しないIDもあります。

分かりにくい質問で申し訳ございません。
ご教授いただけると大変助かります。
宜しくお願い致します。

お世話になっております。rapisと申します。
いつも有難うございます。
以下の件をお教えいただけませんでしょうか。

以下のような入力レイアウトがあります。

ID   業者ID   業者名   処理内容
----------------------------------------
00001  g010   abc工業  排水パイプ修理
00002  g003   def管工  パイプ溶接
00003  g010   abc工業  排水ポンプ設置


00100  g011   ghi工場  特殊パイプ加工
というデータが入っています。
業者名は業者IDを入...続きを読む

Aベストアンサー

それはIDを生成してから元のレコードに戻って「関連レコード」
フィールドに挿入することで解決します。今、ザッと作ってみまし
たが、

フィールド設定 [ 変数1,Status(レコード番号)]
フィールド設定 [ 変数2,ID&"¶"]
新規レコード/検索条件
計算結果を挿入 [ 関連レコード,変数2]
スクリプト一時停止/続行[ ]
フィールド設定 [ 変数2,ID&"¶"]
レコード/検索条件/ページへ移動 [ 変数1] [フィールドで指定]
計算結果を挿入 [ 関連レコード,変数2]

こんな感じになりました。実際には担当者名や店舗IDを入力してか
らIDを生成するため、スクリプト一時停止/続行ステップの後にID
フィールドに計算結果を挿入するステップを置くことになるはずで
す。とりあえずポータルはきちんと表示されています。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報