• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルで勤続年数をだす。)

エクセルで勤続年数を出す数式と空白時の処理方法

このQ&Aのポイント
  • エクセルで勤続年数を出すための数式を作成しましたが、セルにデータが無い場合にマヌケな値が表示されます。
  • 入社日と退社日を元に勤続年数を求める数式は、空白の場合にも対応する方法を知りたいです。
  • 入社日が空白の場合、勤続年数を0か空白にしたいです。どうすれば良いでしょうか?

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.5

 次の様な関数にされると良いと思います。 =IF(ISNUMBER(1/DAY(T1)/DAY($AP$1)),IF(ISNUMBER(1/DAY(U1)),IF(T1>U1,"日付が間違っています",DATEDIF(T1,U1,"Y")&"年"&DATEDIF(T1,U1,"YM")&"ヶ月"&DATEDIF(T1,U1,"MD")&"日"),IF(T1>SUM($AP$1),"日付が間違っています",DATEDIF(T1,$AP$1,"Y")&"年"&DATEDIF(T1,$AP$1,"YM")&"ヶ月"&DATEDIF(T1,$AP$1,"MD")&"日")),"")

BIG1fukuoka
質問者

お礼

考えていただき有難うございました。 そのまま使わせていただきます。 無事解決しました。

その他の回答 (4)

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.4

>入社日T1が空白の場合 勤続年数も0か、空白にしたいのですが、あと一歩わかりません どうか教えてください。 難しく考える必要はありません。 IF関数を入れ子にすれば良いでしょう。 =IF(T1="","",質問の数式) 今日の日付(AP1)を =IF(U1="",TODAT(),U1) とすれば式を簡素化できます。 =IF(T1="","",DATEDIF(T1,$AP$1,"Y")&"年"&DATEDIF(T1,$AP$1,"YM")&"ヶ月"&DATEDIF(T1,$AP$1,"MD")&"日")

BIG1fukuoka
質問者

お礼

分かりやすい解説ありがとうございます。

回答No.3

>試したのですが T1が空白の時は良いのですが >入社日に入力があるとエラーが出るのですが、 >私の入力ミスでしょうか、 ・・・  >スミマセン U1の退職日を入力するとエラーが出ます。 >申し訳ありません 何か良い方法ありますか。 =IF(OR(U1<3000,400000<U1)+OR(T1<3000,400000<T1),"0",IF(U1="",DATEDIF(T1,$AP$1,"Y")&"年"&DATEDIF(T1,$AP$1,"YM")&"ヶ月"&DATEDIF(T1,$AP$1,"MD")&"日",DATEDIF(T1,U1,"Y")&"年"&DATEDIF(T1,U1,"YM")&"ヶ月"&DATEDIF(T1,U1,"MD")&"日") ) を試してください。 入社日T1、 退社日U1、 今日の日付AP1 のセルは表示形式が日付になっていますか?、 大失敗しですね、視線を向けてはいけなかったのだぁ。 U1 → A1、T1 → B1、$AP$1 → C1 に置き換えて 一般的な式にする配慮をお願いします。

BIG1fukuoka
質問者

お礼

何度も考えていただき ありがとうございました。 おかげさまで解決しました。

BIG1fukuoka
質問者

補足

遅い時間まですみません ありがとうございます。おやるとうり 配慮が足りませんでした。 ご迷惑かけついでに ・・・今度は、入社日に日にちは出てるのですが、値が0になります。

回答No.2

=IF(OR(T1<3000,400000<T1),"0",・・・) ですかね、ごまかしですけど。 =IF(OR(T1<3000,400000<T1),"0",IF(U1="",DATEDIF(T1,$AP$1,"Y")&"年"&DATEDIF(T1,$AP$1,"YM")&"ヶ月"&DATEDIF(T1,$AP$1,"MD")&"日",DATEDIF(T1,U1,"Y")&"年"&DATEDIF(T1,U1,"YM")&"ヶ月"&DATEDIF(T1,U1,"MD")&"日") )

BIG1fukuoka
質問者

補足

ありがとうございます。 スミマセン U1の退職日を入力するとエラーが出ます。 申し訳ありません 何か良い方法ありますか。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

もうちょっとやることを整理してみましょう。 入社日が空白なら空白 そうでないとき  退社日が空白なら今日まで  そうでない時退社日までのDATEDIF =IF(T1="","" ,DATEDIF(T1,IF(U1="",TODAY(),U1),"Y")&"年" &DATEIDF(T1,IF(U1="",TODAY(),U1),"YM")&"ヶ月" &DATEDIF(T1,IF(U1="",TODAY(),U1),"MD")&"日")

BIG1fukuoka
質問者

お礼

ありがとうございました。 おかげさまで解決しました。

BIG1fukuoka
質問者

補足

早々の回答ありがとうございます。 試したのですが T1が空白の時は良いのですが 入社日に入力があるとエラーが出るのですが、 私の入力ミスでしょうか、 スミマセン よろしくお願いします。 入社日に入力するとエラーになりますが

関連するQ&A