• ベストアンサー

エクセルでの手当計算:続き お願いします

一ヶ月ほど前に下記の質問をしました↓ 勤務年数によって支給率が変わるもので 勤務年数 5年以上10年以下 1年につき1.0ヶ月      10年以上15年以下 1年につき1.1ヶ月      15年以上20年以下 1年につき1.2ヶ月      20年以上25年以下 1年につき1.3ヶ月                以下続く・・・ とあったとして 勤務年数15.678年の人がいたとします。 そうするとこの人の計算方式は 5年以上10年以下 1.0ヶ月×10年= 10 10年以上15年以下 1.1ヶ月× 5年= 5 15年以上20年以下 1.2ヶ月×.678年=0.836       で 合計の掛数は15.836になります 表を作って、勤務年数を入れたらこのような計算をすぐしたいのですがどうしたらいいのか教えてもらいたいので よろしくお願い致します。 ※5年以上10年以下 1.0ヶ月×10年= 10 この意味は  5年以上10年以下の間に勤務していた期間が10年  あるので=10(年間)という意味です。 ・・・という質問をして、良回答を頂きました。 そこで続きなのですが、 勤務年数12.92年の人がいたとして、入社して最初の10年は 違う計算の仕方で手当を出していて、11年目からは上記のような計算にすることになりました。5年~10年の分は計算しなくていい・でも11年目から計算する・しかしあくまでも勤務年数は12年という・・・計算をしたいのです。 上の式に当てはめると 12.92年 (11年)←計算しない分:これは計算できてます 5年以上10年以下 1.0ヶ月×10 年= 0 10年以上15年以下 1.1ヶ月× 1 年= 0 10年以上15年以下 1.1ヶ月× 1.29年=1.419 質問も分かりづらいかと思いますがよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

#2です。後半は下記で良いでしょうか。 (データ)A2:D9 データはA列。関数式の結果B-D列を含む A列   B列   C列   D列 12.59 1.59 0 0 9.1 0 0 0 14.9 3.9 0 0 16.12 4 1.12 0 19.03 4 4.03 0 21.23 4 5 1.23 24.34 4 5 4.34 18.36 4 3.36 0 (関数式) B2に=($A2>11)*MIN($A2-11,4) B3以下に複写する。 C2に=($A2>15)*MIN($A2-15,5) C3以下に複写する。 D2に=($A2>20)*MIN($A2-20,5) D3以下に複写する。複写はB2:D2を下方向に複写するのも 同じ。 あと=B2*1.1+C2*1.2+d2*1.3と計算する。 以下式を下方向に複写する。

その他の回答 (3)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

>ややこやしいんです。 あるセルに年数を入れると手当が別のセルにでるようになっているんですよね。(計算式自体は完成している) 行単位で処理しているなら、 一行余分にとって 11年の勤続年数の手当を普通に求めて もう一行余分にとって 12.92の勤務年数の手当を普通に求めて 元々の必要なセルから#1の様にすればいいと思います。 余分に取った行は、非表示にすればいいし。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

前半の答えの方式 よく見ると回答は済んでいるのですか。 前の回答は判りませんが下記の方がスッキリしてませんか。 (テスト結果)A1:F15 A列が勤続年数、B-Fは期間を段階に分解したもの A列  B列   C列    D列   E列   F列 4 0 0 0 0 0 6.78 5 1.78 0 0 0 15.678 5 5 5 0.678 0 24.67 5 5 5 5 4.67 3.7 0 0 0 0 0 4.9 0 0 0 0 0 5.1 5 0.1 0 0 0 9.8 5 4.8 0 0 0 10.1 5 5 0.1 0 0 12.34 5 5 2.34 0 0 14.59 5 5 4.59 0 0 16.1 5 5 5 1.1 0 19.19 5 5 5 4.19 0 20.1 5 5 5 5 0.1 23.4 5 5 5 5 3.4 (関数式) B1は=($A1>5)*MIN($A1,5) C1は=($A1>5)*MIN($A1-5,5) D1は=($A1>10)*MIN($A1-10,5) E1は=($A1>15)*MIN($A1-15,5) F1は=($A1>20)*MIN($A1-20,5) ---- =(B1+C1)*1.0 =D1*1.1 =E1*1.2 =F1*1.3 を計算し、加え合わせる。 =(B1+C1)*1.0+D1*1.1+E1*1.2+F1*1.3 でも良いわけです。 ---- 後半は、わかりにくい。 10年以上15年以下 1.1ヶ月× 1 年= 0 10年以上15年以下 1.1ヶ月× 1.29年=1.419 は何を意味するのですか。11年間は払わず、それを越えるものは、25年まで一律1.29払う? 上記と同じ方式で (例データ)A18:B21 12.92 1.92 15.9 4.9 18.36 7.36 22.34 11.34 A18に=(A18>11)*(A18-11) 以下下方向に複写。

neba
質問者

お礼

前回は、imogasiさんの回答でみごとに!計算表を作ることができまして、重ね重ねお礼申し上げます。 後半の方の補足です。 11年間は別の計算でだしたもので払うので いらないのです。 11年目以降の12.29年から11年引いた分、残り1.29年 を、10年以上15年以下 の枠に入れて そこの係数は1.1ヶ月なので× 1.29年=1.419  になるのです。 12.29年働いていて、11年分まで支給していますよ。 と言うときに、10年以上15年以下の枠に1.419年が出て計算するようにしたいのです。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

手当(年数)で手当がでる式があるとして、 例えば 手当(15.678)で15.836が求まるような手続きが既にあるなら 手当(12.92)-手当(11)+計算できている分の手当 でできると思いますが

neba
質問者

お礼

回答ありがとうございます。 うまく言えないんですが、ややこやしいんです。

関連するQ&A