• ベストアンサー

エクセルで連続する条件を関数で処理する方法を教えて下さい。

会社で退職金の計算表の作成を頼まれてしまい、 途中で作業が行き詰ってしまいました。 助けて下さい。 勤続係数を求めたいのですが、その条件として 1年以上2年未満 0 2年以上3年未満 0.1 3年以上4年未満 0.2 4年以上5年未満 0.4 5年以上6年未満 0.6 以降1年増す毎に係数に0.2を加算 という条件で勤続計算を求めています。 この『以降1年増す毎に係数に0.2を加算』というのを 関数で表現するときにはどうすれば良いのでしょうか? VBAなど使う必要があるのでしょうか? 宜しくお願いします。

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

  • ベストアンサー
回答No.2

勤続年数がA列に表記されているとして、 B1に、下記の式を入れ、下へオートフィルして下さい。 B1=IF(AND(1<=A1,A1<2),0,IF(AND(2<=A1,A1<3),0.1,IF(3<=A1,(A1-2)*0.2,"")))

h-kewell
質問者

お礼

ありがとうございました! コレで解決しました。 なぜ、この数式になるかを理解して 応用したいと思います。

その他の回答 (3)

  • sige1701
  • ベストアンサー率28% (74/260)
回答No.4

こんな感じでもいいかな =IF(A1<4,LOOKUP(A1,{0,1,2,3},{"",0,0.1,0.2}),A1*0.2-0.4)

h-kewell
質問者

お礼

ありがとうございます。 他のパターンですね。 勉強になりました!

回答No.3

係数に0.2を加算ってことは、満6年の時に0.7で、満7年だと0.9って ことですね。だったらこの部分は =(int(年数)-6)*0.2+0.7 とあらわせますね。そこで、mu2011さんの係数表を 0     0 2     0.1 3     0.2 4     0.4 5     0.6 6     0.7 と改変し、式を =vlookup(年数, 係数表, 2, TRUE) + max(int(年数)-6,0)*0.2 とします。6年目まではmax(int(年数)-6,0)が0になって加算されな いってわけです。

h-kewell
質問者

お礼

回答ありがとうございました。 6年以上7年未満は係数0.8 7年以上8年未満は係数1.0 という感じで、0.2ずつ増えていきます。 係数は3年以上からは0.2ずつ増えていくので、 係数0.9になることはないんです。 だから違います。ごめんなさい。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

一案ですが次の方法は如何でしょうか。 (1)以下の係数表を作成 (2)数式は、=IF(VLOOKUP(勤続年数セル,sheet2!$A$1:$B$6,2,TRUE)=1,勤続年数セル*0.2,VLOOKUP(勤続年数セル,sheet2!$A$1:$B$6,2TRUE)) ■係数表をシート2(A1:B6)に作成 0 0 2 0.1 3 0.2 4 0.4 5 0.6 6 1

h-kewell
質問者

お礼

回答ありがとうございました。 6年以上7年未満は係数0.8 7年以上8年未満は係数1.0 という感じで、0.2ずつ増えていきます。 6年以上7年未満は係数1.0となっている mu2011さんからの回答は少し違うんです。 ごめんなさい。

関連するQ&A