マンガでよめる痔のこと・薬のこと

いつも質問ばかりですいません。
ファイルメーカー Pro7です。

フィールドA(数字タイプ)に整数(小数点以下はない)を
入力し、一の位が0ではない場合は切り上げて、
フィールドBに返したいのですが、
例) A.32 = B.40 , A.30 = B.30
指定桁数で切り捨ては関数Truncateがありますが、
指定桁数で切り上げの関数はないのでしょうか。

自分的には以下の関数を組んでみましたが、
他に良い手はないでしょうか。

Truncate ( A ; -1 ) + (If ( Right ( A ; 1 ) = 0; 0 ; 10 )

宜しくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

> 指定桁数で切り捨ては関数Truncateがありますが、


> 指定桁数で切り上げの関数はないのでしょうか。

ウチは諸般の事情で5.5ですが、切り上げの関数は聞いたことがな
いですね。

一般的にはたとえばAが30.000000001の場合でも正しく40になるよ
うに、truncate(a,-1)+if(mod(A,10),10,0)のような書き方をしま
すが、Aが整数であることが保証されているなら、round(A+4,-1)で
済むはずです。
    • good
    • 0
この回答へのお礼

ご回答有難うございます。
自分にとっては目から鱗です。
Round関数は指定桁数から四捨五入する
とテキストに書いてあったので四捨五入が
ひっかかり使わずじまいでしたが4足せば
必ず五入になりますね。(Aが整数になる事が前提ですが)

また自分なりに考えた
truncate(A,-1)+if(mod(A,10),10,0)
一般的な解答と同じということが少し自信持てました。

お礼日時:2009/03/11 14:25

7は知りませんが、8にはあります。

切り上げ関数。
    • good
    • 0
この回答へのお礼

chieffish様いつも有難うございます。
8には切り上げ関数あるのですね(゜◇゜)ガーン

Truncate ( A ; -1 ) + (If ( Right ( A ; 1 ) = 0; 0 ; 10 )
を導き出すのに結構時間かかったのに....

お礼日時:2009/03/11 14:29

このQ&Aに関連する人気のQ&A

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

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

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

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

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

Qファイルメーカーで小数点以下の切り上げ

ファイルメーカーで小数点以下の切り上げをするに、どのような関数を使えばよろしいでしょうか?
四捨五入と切り捨ては標準であるのですが、切り上げが見当たらず、またどのように計算を組めばよいか分からず困っています。
わずかでも小数点以下の端数が発生した場合に、整数に切り上げる処理をしたいと思っています。(例としては10.001→11)

ファイルメーカーの使用バージョンは9です。

Aベストアンサー

Ceiling ( 数値 )

参考URL:http://www.filemaker.co.jp/help/html/func_ref3.33.21.html#345077

QFilemakerの関数(切り捨て)を教えてください

ファイルメーカーを使ってます。VER6.0です。
いまタイムカードのシステムを作ろうとおもうのですが
Round関数があるのはわかったのですが
切り捨て(エクセルでいうとこのRoundDown)みたいな
関数ってないのでしょうか?
もしくは テクニックなんて あったら教えてください。

Aベストアンサー

Truncate()関数が切り捨てです。

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;そのフィールド)

QファイルメーカーでCountifの様な方法ありますか?

はじめまして
初めての質問です。

環境はWinXP ファイルメーカーpro7です。
テーブル「社員名簿」のレコードからテーブル「在籍人数」にcountifの様な方法で、値を返せればと思っています。

まず、社員名簿というテーブルがあります。
フィールドが
「エリア」(値一覧で選択、[東日本、中部、西日本、本社])
「部署」(値一覧で選択、[管理本部、事業本部、CS、BS]など)
「雇用形態」(値一覧で選択、[正社員、試験社員、契約社員]など)
「職責」(値一覧で選択、[部長、マネージャー、一般]など)
「性別」(男・女)
などです。

在籍人数テーブルは表の様に表すのが希望です。
例えば
「東日本」の「CS」部で「正社員」のうちの「一般」社員で「男」を
社員名簿履歴からカウントするフィールドを作成
上記のような感じで部署や雇用形態が違うフィールドをいくつも作成して最終的には合計人数を出したいのです。

エクセル的な考えでcountifを使用するつもりだったのですが、使えない事がわかり・・・。

ファイルメーカー初心者なので、なかなかいい方法が思いつかず困っています。

ぜひ、アドバイスお待ちしております。

はじめまして
初めての質問です。

環境はWinXP ファイルメーカーpro7です。
テーブル「社員名簿」のレコードからテーブル「在籍人数」にcountifの様な方法で、値を返せればと思っています。

まず、社員名簿というテーブルがあります。
フィールドが
「エリア」(値一覧で選択、[東日本、中部、西日本、本社])
「部署」(値一覧で選択、[管理本部、事業本部、CS、BS]など)
「雇用形態」(値一覧で選択、[正社員、試験社員、契約社員]など)
「職責」(値一覧で選択、[部長、マネージャー、一般]など...続きを読む

Aベストアンサー

集計結果を表にする時のレイアウトの自由度を考えると関連テーブルからリレーションを使った
計算がいいかも知れません。

在籍人数テーブルに社員名簿テーブルにあるフィールドを全部作ります。社員名簿テーブルには
重複のない社員IDなどというフィールドも必要です。

例えば、社員名簿テーブルと在籍人数テーブルの「エリア」と「部署」と「雇用形態」の3フィー
ルドとも等しいというリレーションを作って、とCount(社員名簿テーブル::社員IDフィールド)と
いう計算フィールドを定義します。

在籍人数テーブルの「エリア」と「部署」と「雇用形態」の各フィールドにそれぞれ「東日本」
「CS」「正社員」と入力するとその人数が出ます。

Qファイルメーカーpro5 の 計算フィールドと消費税について

初めて質問します。

職場で、ファイルメーカーpro5 を使って台帳を作成して使っています。税込みでキリの良い金額で契約してくる事があるのですが、その際に入金額を入力すると残金が計算されるようになっているのですが、売上金額=入金額のはずなのに、残金が1円になってしまうのです。どうも小数点以下の四捨五入の関係だと思うのですが、関数関係が苦手でどうしてもうまくいきません。どなたか教えて頂けませんか?
下記に具体的に例をあげました。


売上額(計算フィールド);\276,190
 
消費税(計算フィールド);\ 13,810
消費税=int(売上額)*0.05

売上計(計算フィールド);\290,000
売上計=(売上額)+(消費税)

入金額(数字フィールド);\290,000

残金 (計算フィールド);\-1
残金 =(売上計)-(Sum(入金額))


という具合です。
どうかアドバイスをよろしくお願いいたします。

Aベストアンサー

財務のときの消費税端数は切捨てが一般的ですよね。

消費税=int(売上額)*0.05

これを

消費税=int(売上額*0.05)

としてください。
あと、余談ですが調整費という数字フィールドを作って

消費税=int(売上額*0.05)-調整費

とすれば、コミコミ価格のときや足切したいときに便利です。
参考にしてください。

Qファイルメーカー(File Maker)の100円以下切り捨ての計算式

お世話になります。ファイルメーカー5.0をマックで使っています。

例えば、
「商品価格×消費税=12541円」
だった場合、12500円(100円以下切り捨て
)という数字に計算結果をしたい場合、どうすれば良いでしょうか?

小数点以下切り捨てという関数があれば、
100分の1に小さくしてから100をかければ良いと思うのですが、小数点以下は表記上表示しないようには出来るのですが、切り捨てる方法がわかりません。

正攻法でも良いですし、後者の方法でも良いので、
100円以下切り捨てる方法を教えていただければ幸いです。

よろしくお願い致します。

Aベストアンサー

int(12541/100)*100でできます。
int(x)はxの整数部分だけを取り出します。つまり今の例でいうと125.41の整数部分ですから125となります。これを100倍すれば12500となります。詳しくはヘルプをみてください。

QFilemakerのIF関数の関数式

FilemakerのIF関数の正しい関数式の作り方について教えてください。


Aが、「BまたはC」の条件を満たす場合は45を、満たさない場合は60を表示させるIF関数として、以下の関数式を作成・入力しましたが、うまく結果が出ません。どこが間違っているのか教えてください。困ってます(T-T)
ちなみにB、Cは全角文字という想定で“”をつけています。
If ( A=”B” or “C”; 45; 60 )

Aベストアンサー

ifで作るより、caseで作った方が楽だと思います。
case(
A=”B”;45;
A=”C”;45;
60)
で大丈夫です。

Qフィールドの中のテキストを分割したい(ファイルメーカー)

よく分からないタイトルですみませんm(_ _)m

先日もこちらでファイルメーカの事を質問したばかりで大変恐縮なのですがどうかお助け下さい。
現在ファイルメーカー5.5 macで作った住所録があるのですが、これの修正を頼まれたのです。
修正内容は現在、「氏名フィールド」というものがあるのですが、これを「氏フィールド」と「名フィールド」に分けたいと言う事なのです。

「氏名フィールド」の氏と名の間に全角スペースが入っておりますのでこれをキーワードに計算式を作れば何とかなると思うのですがそれが???なのです。

一つの「氏名フィールド」から氏と名の間にスペースが入っているものを新たに「氏フィールド」と「名フィールド」分ける。また、スペースの入っていないものは「氏フィールド」に分ける方法をどうか教えてください。よろしくお願いします。

Aベストアンサー

◆フィールド「氏」の計算
1.全角スペースの位置を出す
Position(氏名," ",1,1)
2.「氏名」からその位置の1文字前まで抽出する

フィールド「氏」=
Left(氏名,Position(氏名," ",1,1) - 1)

◆フィールド「名」の計算
1.「氏名」から『フィールド「氏」と全角スペース』を
  取り除く(ヌルに置換する)

フィールド「名」=
Substitute(氏名,Left(氏名,Position(氏名," ",1,1) - 1) & " ","")

Qファイルメーカー複数フィールドのコピー&ペースト

ファイルメーカPro8で複数のフィールド項目をコピーし別のテーブルを新規作成し、ひとつのテキストフィールドにペーストするスクリプト方法を教えてください。1つなら可能何ですが、・・・。

Aベストアンサー

ファイルメーカPro6までしか、使っていませんが、
スクリプトで、フィールド設定を使用しては、如何ですか?
まずは、フィールド定義で、一時作業用のグローバルフィールドをテキストタイプで新規に作成しておきます。
次に、スクリプトで、フィールド設定を使用します。
フィールド設定の指定フィールドを先ほど作った、グローバルフィールドにする。
(内容)指定としては、計算式で、コピペしたい複数のフィールドを & で繋げた物を指定します。

その次のステップとして、新規レコード作成

更に、もう一度、フィールド設定を使用します。
フィールド設定の指定フィールドをペーストしたいテキストフィールドにする。
(内容)指定としては、グローバルフィールド を指定する。

これでいけます。


人気Q&Aランキング