過去の桐井戸端BBS (桐ver.9)
18021 重量逓減の計算(関数)をしたい 桐部 2002/11/23-07:16
コピー機の保守料(重量逓減)の計算式についてご質問させて頂きます。
下記の通り使用枚数によって単価が違います。

   1枚〜1000枚=3.5円(A料金)
1001枚〜2000枚=3.0円(B料金)
2001枚〜3000枚=2.8円(C料金)
3000枚以上    =2.1円(D料金)

            表(3500枚使用した場合)

使用枚数 A料金   B料金   C料金   D料金   合計
3500 3500  3000  2800  1050  10350

            表(2500枚使用した場合)

2500 3500  3000  1400     0   7900

 ※使用枚数を入れると「横合計」を自動計算をさせたい。
 ※もしくは合計だけを求めたい。

よろしくお願い致します。
18022 Re:重量逓減の計算(関数)について たてお 2002/11/23-09:12
記事番号18021へのコメント
まちがってたらごめんなさい

使用枚数→数値

A料金  #条件選択([使用枚数]<=1000,[使用枚数]*3.5,1,3500)

B料金  #条件選択(([使用枚数]>=1001 .and [使用枚数]<=2000),
      ([使用枚数]-1000)*3.0,[使用枚数]<=1000,0,1,3000)

C料金  #条件選択(([使用枚数]>=2001 .and [使用枚数]<=3000),
      ([使用枚数]-2000)*2.8,[使用枚数]=<2000,0,1,2800)

D料金  #条件選択([使用枚数]>=3001,([使用枚数]-3000)*2.1,1,0)

合計   [A料金]+[B料金]+[C料金]+[D料金]

かな〜?


18023 Re:重量逓減の計算(関数)について tuji 2002/11/23-09:16
記事番号18021へのコメント
[枚数],[A料金],[B料金],[C料金],[D料金]の項目を作り,
[A料金]以降の項目計算式にそれぞれ,
#条件選択([枚数]≦1000,3.5×[枚数],[枚数]>1000,3.5×1000)
#条件選択([枚数]≦1000,0,[枚数]>2000,3×1000,1000<[枚数]≦2000,3×([枚数]-1000))
#条件選択([枚数]≦2000,0,[枚数]>3000,2.8×1000,2000<[枚数]≦3000,2.8×([枚数]-2000))
#条件選択([枚数]≦3000,0,3000<[枚数],2.1×([枚数]-3000))
#横合計([A料金],[D料金])
と設定すればどうでしょう?
18024 有り難うございました。 桐部 2002/11/23-10:00
記事番号18021へのコメント
「たておさん」/「tujiさん」早々ご回答有り難うございました。
私1人では、解決できませんでした。

お二人の方法で再定義したら、どちらも出来ました。
有り難うございました。

別件ですが「桐Ver9」を9ライセンス購入して
社内で桐を広げようと思います。これからもアドバイス
よろしくお願い致します。
18025 Re:重量逓減の計算(関数)について KH 2002/11/23-10:28
記事番号18021へのコメント
テストしている間にもう解決されましたね。作ってしまったので
見ていないでしょうがコメントします・・・。間違っていたりして!

[A料金]、[B料金]、[C料金]、[D料金]、[合計]の計算項目に、

#条件選択([使用枚数]<=1000,[使用枚数]*3.5,1,3500)
#条件選択([使用枚数]<=1000,0,[使用枚数]<=2000,([使用枚数]-1000)*3.0,1,3000)
#条件選択([使用枚数]<=2000,0,[使用枚数]<=3000,([使用枚数]-2000)*2.8,1,2800)
#条件選択([使用枚数]>3000,([使用枚数]-3000)*2.1,1,0)
#横合計([A料金],[D料金])


18028 HKさん有り難うございます。 桐部 2002/11/23-11:27
記事番号18025へのコメント
KHさん有り難うございました。

>見ていないでしょうがコメントします・・・。間違っていたりして!
とんでもございません。ちゃんと参考にさせて頂きました。

>#条件選択([使用枚数]<=1000,[使用枚数]*3.5,1,3500)
>#条件選択([使用枚数]<=1000,0,[使用枚数]<=2000,([使用枚数]-1000)
>*3.0,1,3000)
>#条件選択([使用枚数]<=2000,0,[使用枚数]<=3000,([使用枚数]-2000)
>*2.8,1,2800)
>#条件選択([使用枚数]>3000,([使用枚数]-3000)*2.1,1,0)
>#横合計([A料金],[D料金])

こちらも、再定義でテストしましたが大成功でした。
早々有り難うございました。
3種類の方法で、それぞれ若干式が違いますが答えは正解でした。
それぞれ、検証して理解して自分のものにしていきたいと思っております。
これからもよろしくお願い致します。

さておさんの事例
#条件選択([使用枚数]<=1000,[使用枚数]*3.5,1,3500)
#条件選択(([使用枚数]>=1001 .and [使用枚数]<=2000),([使用枚数]-1000)*3.0,[使用枚数]<=1000,0,1,3000)
#条件選択(([使用枚数]>=2001 .and [使用枚数]<=3000),([使用枚数]-2000)*2.8,[使用枚数]=<2000,0,1,2800)
#条件選択([使用枚数]>=3001,([使用枚数]-3000)*2.1,1,0)[A料金]+[B料金]+[C料金]+[D料金]

tujiさんの事例
#条件選択([枚数]≦1000,3.5×[枚数],[枚数]>1000,3.5×1000)
#条件選択([枚数]≦1000,0,[枚数]>2000,3×1000,1000<[枚数]≦2000,3×([枚数]-1000))
#条件選択([枚数]≦2000,0,[枚数]>3000,2.8×1000,2000<[枚数]≦3000,2.8×([枚数]-2000))
#条件選択([枚数]≦3000,0,3000<[枚数],2.1×([枚数]-3000))
#横合計([A料金],[D料金])

18032 Re:HKさん有り難うございます。 うにん 2002/11/23-14:45
記事番号18028へのコメント
合計項目だけですませる方法を一応書いておきます。

#条件選択([使用枚数]≦1000,[使用枚数]×3.5,[使用枚数]≦2000,3500+([使用枚数]-1000)×3.0,[使用枚数]≦3000,6500+([使用枚数]-2000)×2.8,1,9300+([使用枚数]-3000)×2.1)

区切りになる数値(このケースでは[使用枚数]で1000,2000,3000)の小さい順に条件として、そのときの値は
「ひとつ下の区切りまでの金額」+(計算する数値-ひとつ下の区切りの数値)xこの区切りの単価
という具合です。

18034 うにんさん有り難うございます。 桐部 2002/11/23-15:24
記事番号18032へのコメント
うにんさん、これで全て解決です。
有り難うございました。
18035 まとめ!! 桐部 2002/11/23-20:17
記事番号18021へのコメント
皆さんの回答をとりまとめてみました。

※条件選択とは
条件式 condi を i=1 から評価し、真の式が現れたら vali を返す。
条件式がすべて偽(0)であれば未定義値を返す。
【例】 #条件選択(&A>&B,"大",&A<&B,"小",1,"等しい")
… 最後の条件式は 1 が常に真であることを利用する
《別名》 #COND #条件選択

※質問内容
@   1枚〜1000枚=3.5円(A料金)
A1001枚〜2000枚=3.0円(B料金)
B2001枚〜3000枚=2.8円(C料金)
C3000枚以上    =2.1円(D料金)
D合計

※合計項目だけですませる計算(Sパタン)
区切りになる数値(このケースでは[使用枚数]で1000,2000,3000)の小さい順に条件として、
そのときの値は「ひとつ下の区切りまでの金額」+(計算する数値-ひとつ下の区切りの数値)xこの区切りの単価という具合です。
@#条件選択([使用枚数]≦1000,[使用枚数]×3.5,[使用枚数]≦2000,3500+A
([使用枚数]-1000)×3.0,[使用枚数]≦3000,6500+B([使用枚数]-2000)×2.8,1,9300+C([使用枚数]-3000)×2.1)

※項目ごとに計算(Aパタン)
@#条件選択([使用枚数]<=1000,[使用枚数]×3.5,1,3500)
A#条件選択([使用枚数]<=1000,0,[使用枚数]<=2000,([使用枚数]-1000)×3.0,1,3000)
B#条件選択([使用枚数]<=2000,0,[使用枚数]<=3000,([使用枚数]-2000)×2.8,1,2800)
C#条件選択([使用枚数]>3000,([使用枚数]-3000)×2.1,1,0)
D#横合計([A料金],[D料金])

※項目ごとに計算(Bパタン)
@#条件選択([使用枚数]<=1000,[使用枚数]×3.5,1,3500)
A#条件選択(([使用枚数]>=1001.and [使用枚数]<=2000),([使用枚数]-1000)×3.0,[使用枚数]<=1000,0,1,3000)
B#条件選択(([使用枚数]>=2001.and [使用枚数]<=3000),([使用枚数]-2000)×2.8,[使用枚数]=<2000,0,1,2800)
C#条件選択([使用枚数]>=3001,([使用枚数]-3000)×2.1,1,)
D[A料金]+[B料金]+[C料金]+[D料金]

※項目ごとに計算(Cパタン)
@#条件選択([使用枚数]≦1000,3.5×[使用枚数],[使用枚数]>1000,3.5×1000)
A#条件選択([使用枚数]≦1000,0,[使用枚数]>2000,3×1000,1000<[使用枚数]≦2000,3×([使用枚数]-1000))
B#条件選択([使用枚数]≦2000,0,[使用枚数]>3000,2.8×1000,2000<[使用枚数]≦3000,2.8×([使用枚数]-2000))
C#条件選択([使用枚数]≦3000,0,3000<[使用枚数],2.1×([使用枚数]-3000))
D#横合計([A料金],[D料金])

皆様有り難うございます。桐の発展を心から願います。
18039 項目計算式 尾形 2002/11/25-08:30
記事番号18035へのコメント
どうも、こんにちは

コピーの業者さん側になられるのではないかと思いますが
こういうのって、後々に単価が変わったりしないのでしょうか?
計算式に記述してしまうと後で苦労されるような気もします

18040 Re:項目計算式 桐部 2002/11/25-10:18
記事番号18039へのコメント
尾形さんこんにちは、ご意見有り難うございます。

>コピーの業者さん側になられるのではないかと思いますが

コピー機の保守料「リコー社のパフォーマンスチャージ」、「富士ゼロックスのトータルサービス料)が重量逓減になりますが、
ご指摘のように機種ごとに単価が違います。
今回は、わかりやすいようにコピー機を例に取ったのですが実際は別の用途で使用致します。

>こういうのって、後々に単価が変わったりしないのでしょうか?
>計算式に記述してしまうと後で苦労されるような気もします

外にどのような方法があるのでしょうか?良い方法があったらアドバイス願います。

18043 Re:重量?従量? 隅の中年 2002/11/25-13:12
記事番号18021へのコメント
桐部さん

>コピー機の保守料(重量逓減)の計算式についてご質問させて頂きます。

重箱の隅を楊枝でほじくるようでためらいましたが、どうしても気になるので失礼を顧みず悪役になって。
「重量」逓減は「従量」逓減ではないでしょうか。
ご本人が訂正されていないので、ひょっとして何らかの業界用語で「重量」なのかもしれませんが。

18046 Re:重量?従量? 桐部 2002/11/25-16:45
記事番号18043へのコメント
隅の中年さんこんにちは

>重箱の隅を楊枝でほじくるようでためらいましたが、どうしても気になるので失礼
>を顧みず悪役になって。
>「重量」逓減は「従量」逓減ではないでしょうか。
>ご本人が訂正されていないので、ひょっとして何らかの業界用語で「重量」なのか
>もしれませんが。

まぎわらしい言葉を使っても申し訳ございません。
当社は貨物を取り扱っておりまして「重量逓減制」を利用しております。
(航空貨物の業界用語だと思います。)

戻る