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

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

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

You are not logged in.

Announcement

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


#1 2019-08-31 22:30:06

aries106
Member

軽減税率と標準税率の計算式について

OS:Windows 7、Ver:FileMaker Pro 12

軽減税率と標準税率の計算式について、私なりに考えて編集してみました。
フォームはパターンⅠとパターンⅡがあります。
パターンⅠはフィールドごとにそれぞれ作って配置したものです。
パターンⅡは繰り返しフィールドを使って配置したものです。
軽減税率フラグはテキストタイプで、「*」がついているのは軽減税率(8%)とします。

box-l-ouqpz3phcdomqx5rqzhqq7hsw4-1001?uid=c7883b02-7c2a-4759-87b3-a7aefe2eea72&etag=3a5e5bcf4ddd11a91efed39fe115b57a

パターンⅠの計算式(タイプ:計算式、結果:数字)
★軽減税率(8%)
Int(If(軽減税率フラグ1>" * ";小計1;"")*.08)+
Int(If(軽減税率フラグ2>" * ";小計2;"")*.08)+
Int(If(軽減税率フラグ3>" * ";小計3;"")*.08)+
Int(If(軽減税率フラグ4>" * ";小計4;"")*.08)+
Int(If(軽減税率フラグ5>" * ";小計5;"")*.08)

★標準税率(10%)
Int(If(軽減税率フラグ1<" * ";小計1;"")*.1)+
Int(If(軽減税率フラグ2<" * ";小計2;"")*.1)+
Int(If(軽減税率フラグ3<" * ";小計3;"")*.1)+
Int(If(軽減税率フラグ4<" * ";小計4;"")*.1)+
Int(If(軽減税率フラグ5<" * ";小計5;"")*.1)

パターンⅡの計算式(タイプ:計算式、結果:数字)
★軽減税率(8%)
Int(If(軽減税率フラグ[1]>" * ";小計[1];"")*.08)+
Int(If(軽減税率フラグ[2]>" * ";小計[2];"")*.08)+
Int(If(軽減税率フラグ[3]>" * ";小計[3];"")*.08)+
Int(If(軽減税率フラグ[4]>" * ";小計[4];"")*.08)+
Int(If(軽減税率フラグ[5]>" * ";小計[5];"")*.08)

★標準税率(10%)
Int(If(軽減税率フラグ[1]<" * ";小計[1];"")*.1)+
Int(If(軽減税率フラグ[2]<" * ";小計[2];"")*.1)+
Int(If(軽減税率フラグ[3]<" * ";小計[3];"")*.1)+
Int(If(軽減税率フラグ[4]<" * ";小計[4];"")*.1)+
Int(If(軽減税率フラグ[5]<" * ";小計[5];"")*.1)

これで合っているのでしょうか。
もっとコンパクトな計算式があればご伝授いただきたくお願いいたします。

Last edited by aries106 (2019-09-01 09:59:11)

Offline

#2 2019-09-01 08:52:52

Shin
Member

Re: 軽減税率と標準税率の計算式について

フラグは、テキストではなく、数値にしておくとシンプルになります。論理値として扱えますので、0かそれ以外、という判別式が成り立ちます。

ファイル構造そのものを変更すると、スッキリします。
これらは、伝票のテーブルにあるのだと思いますが、別に明細テーブルを作り、その中で1項目ごとに計算させて、それを最後に集計する、という構造の方がいいです。その場合、集計フィールドを作ってもいいですし、リレーションで合計してもいいでしょう。

今のままで構成したいのでしたら、繰り返しフィールドに持ち込むのでしたら(あまりオススメしませんが)、計算用の繰り返しフィールドを作り、そこで計算させ、それを合計する、という計算の方がいいです。計算式は1行ですみます。

Offline

#3 2019-09-01 10:27:41

aries106
Member

Re: 軽減税率と標準税率の計算式について

Shin wrote:

フラグは、テキストではなく、数値にしておくとシンプルになります。論理値として扱えますので、0かそれ以外、という判別式が成り立ちます。

ファイル構造そのものを変更すると、スッキリします。
これらは、伝票のテーブルにあるのだと思いますが、別に明細テーブルを作り、その中で1項目ごとに計算させて、それを最後に集計する、という構造の方がいいです。その場合、集計フィールドを作ってもいいですし、リレーションで合計してもいいでしょう。

今のままで構成したいのでしたら、繰り返しフィールドに持ち込むのでしたら(あまりオススメしませんが)、計算用の繰り返しフィールドを作り、そこで計算させ、それを合計する、という計算の方がいいです。計算式は1行ですみます。

Shinさま、ありがとうございます。
画像は見れなかったのでしょうか?

Offline

#4 2019-09-01 17:14:45

Shin
Member

Re: 軽減税率と標準税率の計算式について

見えませんでしたが、見当はつきます。
明細は、別テーブルにしましょう。

Offline

#5 2019-09-01 18:55:21

aries106
Member

Re: 軽減税率と標準税率の計算式について

Shin wrote:

フラグは、テキストではなく、数値にしておくとシンプルになります。論理値として扱えますので、0かそれ以外、という判別式が成り立ちます。

軽減税率フラグにテキストタイプを数字タイプに変更しました。

Shin wrote:

ファイル構造そのものを変更すると、スッキリします。
これらは、伝票のテーブルにあるのだと思いますが、別に明細テーブルを作り、その中で1項目ごとに計算させて、それを最後に集計する、という構造の方がいいです。その場合、集計フィールドを作ってもいいですし、リレーションで合計してもいいでしょう。

明細テーブルとは商品リストなどのマスタデータベースでしたらあります。
そのような構造なのか、集計フィールドを別に作るということでしょうか?

Shin wrote:

今のままで構成したいのでしたら、繰り返しフィールドに持ち込むのでしたら(あまりオススメしませんが)、計算用の繰り返しフィールドを作り、そこで計算させ、それを合計する、という計算の方がいいです。計算式は1行ですみます。

計算用の繰り返しフィールドとは「消費税額試算」という繰り返しフィールドにありますが、そうじゃないでしょうか?
計算式は1行ですみますと書いてありますが、どうもわからないのでご教示いただければと思います。

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

Offline

#6 2019-09-02 09:40:38

チポ
Member

Re: 軽減税率と標準税率の計算式について

両方のパターンの明細1行を別テーブルの1レコードにする。

これがShinさんのお薦めです。
私も同意ですが、それがDBの正規化につながりますね。


フラグを数字に変更したということですが、
変更したら、その値も数値にしないと意味がありませんよ。


フラグの判定に不等号を使っていますが、
> 軽減税率フラグ1>" * "
> 軽減税率フラグ1<" * "

これではフラグに「*」が入っているとどちらも偽になりますよ。
前後にスペースが入っていますが、これは間違いですよね。。

Offline

#7 2019-09-02 11:10:35

Shin
Member

Re: 軽減税率と標準税率の計算式について

回答がわりに、2通りの構成を入れたサンプルです。
https://www.dropbox.com/s/eo7n128ig2qma … 2.zip?dl=0

Last edited by Shin (2019-09-02 11:11:11)

Offline

#8 2019-09-17 22:20:48

aries106
Member

Re: 軽減税率と標準税率の計算式について

Shin先生、チポ先生
ご教示ありがとうございます。
ご教示内容もしくはサンプルファイルを見ながら勉強することができました。
これで解決といたします。
こんごもどうぞよろしくお願いいたします。

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, 12 queries executed - Memory usage: 526.38 KiB (Peak: 547.28 KiB) ]