• ベストアンサー

社員名簿を作っています。在籍年数を出したいのですが…わかりません。

従業員データの一覧表をエクセルで作っています。 関数は初心者なのですが、これまでの質問を参考にして、生年月日から年齢を抽出することはなんとかできました( ..)φメモメモ 同じ方法で在籍年数を抽出しようとしてわからなくなってしまいました。 在籍者と退職者の混在するリストで、退職者には退職日の入力があり、在籍者は空欄にしています。 在籍者は「入社日からリストを開いた日までの在籍年月数」を、退職者には「入社日から退職日までの在籍年月数」を、どちらも同じ列に表示させたいのです。 年齢の算出には C列に生年月日を入力して =DATEDIF(C2,TODAY(),"Y")&"年"&DATEDIF(C2,TODAY(),"YM")&"ヶ月"  を使いました。 A列:名前、B列:入社日 C列:空欄か退社日 D列:在籍年月数 この形で教えていただけませんか? 皆様、よろしくお願いします <(_ _)>

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

  • ベストアンサー
noname#77845
noname#77845
回答No.1

そこまで、関数を使えたらあと一歩でしょう。 例えば、 =DATEDIF(B2,TODAY()*(C2="")+C2*(C2<>""),"Y")&"年"&DATEDIF(B2,TODAY()*(C2="")+C2*(C2<>""),"YM")&"ヶ月" で、いかがでしょう? それぞれの値に(C2="")と(C2<>"")を掛けているところは、論理値が真なら1、偽なら0を利用してどちらかが有効になるようにしています。

kayanomama
質問者

お礼

ありがとうございました!! 無事に望んだ年数を表示させることができました(*^_^*) 式を並べる順番など関数の約束事があると思うんですが、作っていただいた式をよく見て、今度は自分で作れるように勉強します!(^^)! 今回は自分のやりたいことをうまく式の中に組み込むことができなかったので 同じ答えを求めるのにも何通りかの式があるようですし… どうしてもわからなかったらまた教えてください!! ホントにありがとうございました(_ _)

その他の回答 (2)

  • wisemac21
  • ベストアンサー率39% (171/429)
回答No.3

単純に 条件分けをして、C列が空白ならば在籍者、そうでない場合は退職者の在籍何月数を求める =IF(C2="",DATEDIF(B1,TODAY(),"Y")&"年"&DATEDIF(B1,TODAY(),"YM")&"ヶ月",DATEDIF(B1,C1,"Y")&"年"&DATEDIF(B1,C1,"YM")&"ヶ月")

kayanomama
質問者

お礼

ありがとうございました!! #1さんの式とは違いますが望んだ年数の表示ができました。 いろんなやり方がありますね。 もっと勉強したいと思います。 わからないことがでてきたらまた質問させていただきます。 その時はよろしくお願いします(^v^)!! ホントにありがとうございました(_ _)

  • keirika
  • ベストアンサー率42% (279/658)
回答No.2

=IF(C2<>"",DATEDIF(C2,TODAY(),"Y")&"年"&DATEDIF(C2,TODAY(),"YM")&"ヶ月","") でどうでしょう。

kayanomama
質問者

お礼

ありがとうございました!! ほかの方の意見を参考にして式に補足したところ無事に解決することができました。 またわからないことがあったら質問させてください。 よろしくお願いします。