- ベストアンサー
エクセルで連続する条件を関数で処理する方法を教えて下さい。
会社で退職金の計算表の作成を頼まれてしまい、 途中で作業が行き詰ってしまいました。 助けて下さい。 勤続係数を求めたいのですが、その条件として 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など使う必要があるのでしょうか? 宜しくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
勤続年数が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,"")))
その他の回答 (3)
- sige1701
- ベストアンサー率28% (74/260)
こんな感じでもいいかな =IF(A1<4,LOOKUP(A1,{0,1,2,3},{"",0,0.1,0.2}),A1*0.2-0.4)
お礼
ありがとうございます。 他のパターンですね。 勉強になりました!
- grumpy_the_dwarf
- ベストアンサー率48% (1628/3337)
係数に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になって加算されな いってわけです。
お礼
回答ありがとうございました。 6年以上7年未満は係数0.8 7年以上8年未満は係数1.0 という感じで、0.2ずつ増えていきます。 係数は3年以上からは0.2ずつ増えていくので、 係数0.9になることはないんです。 だから違います。ごめんなさい。
- mu2011
- ベストアンサー率38% (1910/4994)
一案ですが次の方法は如何でしょうか。 (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
お礼
回答ありがとうございました。 6年以上7年未満は係数0.8 7年以上8年未満は係数1.0 という感じで、0.2ずつ増えていきます。 6年以上7年未満は係数1.0となっている mu2011さんからの回答は少し違うんです。 ごめんなさい。
お礼
ありがとうございました! コレで解決しました。 なぜ、この数式になるかを理解して 応用したいと思います。