- ベストアンサー
勤続年数の出し方で詰まっています・・・。
勤続年数を書類作成日から求めるっていう数式で、 DATEDIF関数を使って H3 =書類作成日(yyyy/mm/dd) F27 =入社年月日(yyyy/mm/dd) F28 =勤続年数 (○年 と表示したい) *H3,F27、いずれかが空白の場合はF28は空白表示 if文でネストすると F28=if($H$3="","",if(F27="","",DATEDIF(F27,$H$3,"y")&"年")) でOK・・・なのですが、勤続年数が1年未満だと「0年」と表示されて しまい、じゃあ、「▲ヶ月」で表示・・・と思ったら、 ExcelのヘルプでDATEDIF(F27,$H$3,"ym")では だせないみたいです。 どなたか「▲ヶ月」と表示が出来る方法を教えて 頂けませんか?仕事の書類なので、とりあえずは 「▲ヶ月」の従業員はベタ打ちにしてしまってますが、 1年後にこの書類を開きH3の日付を打ち変えれば 「1年」と表示がなると助かる、という書類なので。 よろしくお願いします。
- tmknok
- お礼率89% (17/19)
- オフィス系ソフト
- 回答数4
- ありがとう数5
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 >ExcelのヘルプでDATEDIF(F27,$H$3,"ym")では >だせないみたいです。 ↑の意味がよくわからないのですが‥ F28セルに↓でどうでしょうか? ----------------------------- =IF(OR($H$3="",F27=""),"",IF(DATEDIF(F27,$H$3,"Y")>0,DATEDIF(F27,$H$3,"Y")&"年",DATEDIF(F27,$H$3,"YM")&"ヶ月")) ------------------------------------
その他の回答 (3)
- narino
- ベストアンサー率40% (2/5)
私は 簡単に、IF関数で作ってみました。 どうでしょうか。 F28=IF(F27="","",IF((DATEDIF(F27,H3,"y"))>1,DATEDIF(F27,H3,"y")&"年",DATEDIF(F27,H3,"ym")&"ヶ月")) 答えが1年以上ならその年数を、 そうでなければ○ヶ月を表示する、という命令です。 また、usami33さんがおっしゃるように、 その日の時点の年月を知りたい場合は、 h3のところを ↓ today() 又は now() でもOKですね。
お礼
>F28=IF(F27="","",IF((DATEDIF(F27,H3,"y"))>1,DATEDIF(F27,H3,"y")&"年",DATEDIF(F27,H3,"ym")&"ヶ月")) ですと、 1年5ヶ月→5ヶ月 と表示 0年7ヶ月→7ヶ月 と表示 されてしまいました。 narino様の数式を見つつ、自分で数式を変えてみたら IF(F27="","",IF(DATEDIF(F27,H3,"y")>1,DATEDIF(F27,H3,"y")&"年",DATEDIF(F27,H3,"ym")&"ヶ月")) でうまくいくようです。ありがとうございました。
補足
すみません、 IF(F27="","",IF(DATEDIF(F27,H3,"y")>=1,DATEDIF(F27,H3,"y")&"年",DATEDIF(F27,H3,"ym")&"ヶ月")) でした。
- fly_moon
- ベストアンサー率20% (213/1046)
tmknokさんの関数にもう一つネストさせた形です。 F28=IF(ISERROR(DATEDIF(E27,$H$3,"y")),"",IF(DATEDIF(F27,$H$3,"y")<1,DATEDIF(F27,$H$3,"m")& "ヶ月",DATEDIF(F27,$H$3,"y")&"年")) F28=if($H$3="","",if(F27="","", の部分はエラー回避だと思うのですが、 ISERROR(DATEDIF(E27,$H$3,"y") を使えば、DATEDIF()関数がエラーかどうか判別してくれます。 エラーのときはTrueがかえります。 これを利用すれば、少し簡単になります。
お礼
ISERROR関数は名前しかしらなかったです。今までずっと if(セル="","",数式)という風に書いてました。 これまた勉強になります。 勤続年数が1年以上なら「○年」表示、1年未満なら「▲ヶ月表示」ばっちりです!ありがとうございました。 ただ、F27(入社年月日)がブランクの場合 数式をコピー していると「105年」という表示になってしまいます。 F27を0と認識してしまっているのでしょうか?
- usami33
- ベストアンサー率36% (808/2210)
これでどうですか =TEXT(DATEDIF(F27,H3,"y"),"0年;;""""")&TEXT(DATEDIF(F27,H3,"ym"),"0ヶ月;;""""") それから,もともとのH3に =TODAY() と記載しておくと、開いた日になりますよ
お礼
TEXT関数!目からうろこでした。 "0年;;""""" の部分はEXCELのヘルプでは 見当たらなかったのですが、セル書式のユーザー定義 の書き方と同じ、なんでしょうね。関数もまだまだ 知らない事があるので、勉強になります。 ただ、残念な事に、usami33様の記述だと「○年▲ヶ月」 と表記されてしまうので、今回のケースは「○年」または 1年未満は「▲ヶ月」という表記が良いようです。 ありがとうございました。 >TODAY() これは私もそうしておきたいのですが、提出する先に よって、作成日がまちまちで、関数を消されるなら 各自で入力、の方向でお願いするほうが(施主が記入する ケースもあり提出時はブランクの場合もあるようです) 良さそうなのです。
関連するQ&A
- エクセルで勤続年数をだす。
エクセルで勤続年数を出す数式を作ったのですが セルにデータが無い場合 114年1か月19日などのマヌケな値が出ます。 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 入社日T1が空白の場合 勤続年数も0か、空白にしたいのですが、 あと一歩わかりません どうか教えてください。
- ベストアンサー
- Excel(エクセル)
- 勤続年数の計算式を教えてください
また、お世話になります。 Excelで名簿を作成したのですが、今現在で勤続年数を、何年何ヶ月とだしたいのです。今はDATEDIFで何年まではでるのですが、例えばH201.1入社で今日現在で2年3ヶ月と出るようにしたいのです。(2.3)でも良いのですが。 よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- 勤続年数の平均の出し方を教えて下さい。
エクセルで勤続年数の表を作成しました。 左のセルから 名前:生年月日: 年齢(=DATEDIF(E3,$I$1,"Y")&"歳"&DATEDIF(E3,$I$1,"YM")&"ヶ月"):入職日:勤続年数(=DATEDIF(G3,$I$1,"Y")&"年"&DATEDIF(G3,$I$1,"YM")&"ヶ月") という表です。 その中で勤続年数の平均を出したいのですが、 勤続年数を足して、人数で割るという形では駄目なようです・・・。 何か方法はないでしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセル関数で勤続年数を求めた時の表示
社員勤続年数を以下のように求めました。 =DATEDIF(A1,TODAY(),"D") 「yy"年"mm"ヵ月"dd"日"」の表示にする。 すると、2年経過した社員など、『1年12ヶ月』と表示されてしまいます。 これを『2年』と表示する方法はないのでしょうか? また、関数自体 =DATEDIF(A1,TODAY()+1,"D") の方が自然なんでしょうか? ご教示ください。よろしくお願いします。
- 締切済み
- オフィス系ソフト
- ■勤続年数給の計算(エクセル)について
勤続年数給の計算(エクセル)について教えてください。 勤続年数は”DATEDIF”で求める事が出来たのですが、そこから自動計算で勤続年数給分を出したいと思っています。 6ヶ月毎に2500円UPする計算です。 基準日 2011/3/18 番号 氏名 入社日 勤続年数 勤続年数給 1 山田 2009/3/18 2年0ヶ月 こんな感じで作成しようと思っているのですが、どなたかアドバイスをお願いいたします。
- ベストアンサー
- 財務・会計・経理
- 勤続年数の平均を出したい
エクセル2000で社員名簿を作っています。 平均勤続年数を出したいのですが、=AVERAGE(勤続年数の入ったセル一覧)としても答えが出ず、#DIV/0!となります。 ちなみに勤続年数は =DATEDIF(E4,$F$2,"Y")&"年"&DATEDIF(E4,$F$2,"YM")&"ヶ月" ※F2セルに今日の日付、E列に入社年月日が入っています という関数で出しており、セルの書式は「標準」です。 平均年齢は同じ方法で出せるので、不思議です。。。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 勤続年数の平均を求めたい時の関数
エクセルで会社の従業員の勤続年数とその平均を求めたいです。 勤続年数のセルに =DATEDIF(A1,TODAY(),"y")&"年"&DATEDIF(A1,TODAY(),"ym")&"ケ月" といれて勤続年数を出してます。 それで次に従業員の勤続年数の平均を出したいのですが、AVERAGEを使うとエラー#DIV/0!が出ます。 どうすれば勤続年数とその平均が求められますか? どんな方法でも良いので教えて下さい!!非常に困ってます(ー_ー)!!
- ベストアンサー
- Windows XP
- 勤続年数の平均値の求め方
こんにちは、エクセルについて教えてください。 ある会社での各社員の勤続年数の計算でA列に入社年月日、B列に本日の年月日があり、C列にAとBの期間(勤続年数)計算を =DATEDIF(A30,B30,"Y")&"年" & DATEDIF(A30,B30,"YM") & "月"で ●年●月で表示させています。 さて、この各社員の勤続年数の平均を出すために通常のAvarage関数を使うと「ゼロで割りました」のメッセージが出て計算してくれません。勤務年数の平均を求める方法を教えてください。
- ベストアンサー
- オフィス系ソフト
- エスセルで勤続年数を調べていますが、=DATEDIFを使っています。
エスセルで勤続年数を調べていますが、=DATEDIFを使っています。 例えば、2009/4/1入社で 2010/4/1現在までの入社年数を計算させると 答えが1900/1/1と表示されます。 単に、1年とか表示されないんですかね。 計算式が間違っているのでしょうか。 どなたか教えてください。
- ベストアンサー
- 財務・会計・経理
- エクセルで勤続年数を計算しているのですが・・
いつもお世話になっております。 今回はエクセルの計算式について、ご指導の程お願い致します。 勤続年数の計算をexcel2007で管理したいと思っています。 例えば2011/12/21入社で、2012/3/20退社とします。 今までの計算からしますと、「0年3か月と0日」の勤続年数としたいのですが DATEDIFで計算しましたところ、「2か月と28日」となりました。 下記は現在の計算式です。 「=DATEDIF(A6,B6,"Y")&”年”&DATEDIF(A6,B6,"YM")&"ケ月"&(DATEDIF(A6,B6,"MD"))&"日"」 極端な話ですが、1/1入社で1/2退社ですと勤続年数は「2日」としていますので 単純に計算式に「+1」を加えると「2か月と29日」でカレンダーで勘定したところ正解ではあるのですが、「3か月と0日」にしたいと思っています。 基本的な考え方に問題があるのでしょうか? 色々調べてみたのですが、解決に至らず困っております。 ご指導の程、宜しくお願い致します。
- ベストアンサー
- その他MS Office製品
お礼
ありがとうございます。F27(入社年月日)がブランク だとしてもこれなら大丈夫ですね。 最初に、DATEDIF(F27,$H$3,"YM")&"ヶ月" を入れてはいたのですが、「1ヶ月」でも「1ヶ月」、 「4ヶ月」でも「1ヶ月」と表示されていたのです。。。 セルの設定が何かいけなかったのかしら?なぞです。 ともあれ、うまくいきましたのでありがとうございます!