• ベストアンサー

特定の日~特定の日までの日数を数える方法(EXCEL)

エクセルで、特定の日~特定の日までの日数を数える方法はありませんか? A1に入社日、B1に退職日を入力。 C1に入社日~退職日までの在籍期間。 表示は○年○ヶ月○日とする。 無理ですか?

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.9

こんにちは。 #8 の続きです。 途中で疲れてしまったのでが、再度、やり直してみました。 =DATEDIF(A1,B1,"y")&"年"&DATEDIF(A1,B1,"ym")&"ヶ月"&IF(DAY(A1)>DAY(B1),DAY((MONTH(A1)+1&"/1")-1)-DAY(A1)+DAY(B1),DATEDIF(A1,B1,"md"))&"日" これで出来たと思います。 ただし、あくまでも、0ヶ月、0日という表示はします。 日付関係の問題は、いろんなバリエーションがあって、とても面白いです。

mu-no6329
質問者

お礼

何度も考えていただきありがとうございます。 日付関係の問題はエクセルの計算じゃなくても難しいです。 今回は上司に「在籍期間を出して」とだけ言われて作り始めました。 エクセルの知識が全くと言っていいほど無いのに、人数が多かったので計算でできたらいいなぁというちょっとした気持ちで投稿してしまい、質問も的確ではなかったようで申し訳ありませんでした。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (8)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.8

こんばんは。 >「表示は○年○ヶ月○日とする。」というのは、表現がおかしいのではないですか。 しばらく考えてみました。ご指摘とは違うかもしれませんが、以下で、展開していきます。 これは、DATEDIF の作り方のコンセプトが、そういうものになっているようです。これは、Lotus123の関数をExcelが取り込んだものですね。 Excelの回答者で有名なチップパーソン氏の  http://www.cpearson.com/excel/datedif.htm The DATEDIF Function に、今回の私の回答と同じものが出ています。しかし、この件は、もう少し、複雑のようなのです。 ------------------- 普通、ビジネスなら、DATEDIF は、(日付の)片入れですから、両入れにするなら、本来は、1日を足したほうがよいです。 =DATEDIF("2004/1/30","2005/10/1","MD") これは、「-1」と出てきてしまいます。これでは、ロジックが合いません。ひとつには、片入れの計算のための問題だとは思います。だから、片入れを両入れにすると、こういうことになるのですが……。   A1     B1 2005/1/30  2005/3/1 =DATEDIF(A1-1,B1,"MD") でも、これだと、0 になってしまいます。でも、0ではありませんね。 =DATEDIF(A1,B1,"YD") これで、30 日になりますから、片入れの計算ですが、これは、正しいですね。 (1/31-1日,2月-28日,3/1日) →30日 インターネット検索で、この周辺の話は出てくるようですが、やっぱり、"MD"のこの計算自体がおかしいですね。(^^; だって、日だけで計算できるはずがありませんもの。 これは、年をまたぐ場合は、年で別けて計算しないといけないようです。ちょっと、ここまでで疲れました。(^^;。。

mu-no6329
質問者

お礼

とても丁寧にご回答いただいて、本当にありがとうございました。 エクセルについてはまだまだ知識がありませんが、またわからないことが出てきたらご回答よろしくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.7

>特定の日~特定の日までの日数を数える と表題に書きながら、「表示は○年○ヶ月○日とする。」というのは、表現がおかしいのではないですか。 カレンダーに基づいた年月数とでも表現すべきでは。 これから人生で色々な場面で、誤解する表現は恐ろしい結果を招きますよ。

全文を見る
すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.6

mshr1962 さんへ どうもありがとうございます。 0日と表示するべきかは考慮したのですが、生のままで出したほうがよいかと思い、そのままにしてしまいました。(^^;

全文を見る
すると、全ての回答が全文表示されます。
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.5

#2,3のmshr1962です。 #4 Wendy02さんへのフォロー =DATEDIF(A1,B1,"y")&"年"&DATEDIF(A1,B1,"ym")&"ヶ月"&DATEDIF(A1,B1,"md")&"日" にTEXT関数を加えれば出来ますよ。 =TEXT(DATEDIF(A1,B1,"y"),"0年;;")&TEXT(DATEDIF(A1,B1,"ym"),"0ヶ月;;")&TEXT(DATEDIF(A1,B1,"md"),"0日;;") これで年月日が0の場合、省略されます。

mu-no6329
質問者

お礼

下の方のを入れたら、年月日の0が消えてスッキリしました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんばんは。 #1 ororo1208さんのバックアップ >この方法は、年月日をそれぞれ違うセルに分けなければできないということですか? お試にはならなかったようですね。詳しくは、ヘルプで調べてください。 C1:~ =DATEDIF(A1,B1,"y")&"年"&DATEDIF(A1,B1,"ym")&"ヶ月"&DATEDIF(A1,B1,"md")&"日" 悔しいことに、今まで他の方法を試してみましたが、このような方法以外は、あまりうまくいきません。たぶん、できるような気がしますが、長い式になるはずです。それは、0日とか、0月というものは、日付書式には存在しないからです。年の差を取り、残りを月の差を取り、最後は、日付の差を取るという計算です。 しかし、日付ならば、 単に、=DATEDIF(A1,B1,"d")&"日" で、=B1-A1 と変わらないはずです。 (ちなみに、この関数は、MS社オリジナルではありませんので、挿入-関数の日付の関数の中にはありません。) 例: 2000/8/6 ~ 2005/10/6 という時に、 5年2ヶ月0日 という表示が出てきます。つまり、5年2ヶ月であって、それ以上でも、それ以下でもないからです。

mu-no6329
質問者

お礼

試したんですけどね。 &で繋げられる事がわからなかったです。 エクセルを習ったことがないので理解が遅くてスミマセンです。 #3の方法と#4の方法では答えが違って出てきます。 #3は 2004/1/1~2004/12/31 → 00年12ヵ月31日 2004/1/1~2005/1/1 → 01年 1ヵ月 1日 #4 2004/1/1~2004/12/31 → 0年11ヶ月30日 2004/1/1~2005/1/1 → 1年 0ヶ月 0日 普通に考えると#4が正しいですよね? 日付って考え出すとわけがわからなくなっちゃいます。 2004/1/1~2005/1/1って1年なのか1年と1日なのか。。。

全文を見る
すると、全ての回答が全文表示されます。
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.3

#2のmshr1962です。 >今日現在の方法がうまくいきません。そのままコピーしているのですが。。。 すみません。単純な記述ミスです。 =IF(B1="",TODAY(),B1)-A1+1 ですね。C1は自己セルですので...

mu-no6329
質問者

お礼

訂正していただいたものをいれたらできました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.2

>表示は○年○ヶ月○日とする。 なら =IF(B1="","",B1-C1+1) で出来ませんか? 退職以外の場合に、今日現在の在籍期間なら =IF(B1="",TODAY(),B1)-C1+1 後はセルの書式設定の表示形式をユーザー定義で yy年mヵ月d日 とする。

mu-no6329
質問者

補足

回答ありがとうございます。 今日現在の方法がうまくいきません。 そのままコピーしているのですが。。。

全文を見る
すると、全ての回答が全文表示されます。
  • oriro1208
  • ベストアンサー率40% (66/165)
回答No.1

こんにちは。 DATEDIF関数を試されることを お勧めします。 「=DATEDIF(A1,B1,”X”)」 Xに入るのは満年数のY、満月数のM、満日数のD、 一年未満の月数YM、一年未満の日数YD、 一月未満の日数MDの6種類です。 宜しくです。

mu-no6329
質問者

お礼

こんにちは。 &で繋げればセルを分けなくてもいいんですね。 エクセル習ったことないので、すぐに理解できなくてごめんなさい。 参考になりました。

mu-no6329
質問者

補足

回答ありがとうございます。 この方法は、年月日をそれぞれ違うセルに分けなければできないということですか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルで特定日からの経過日数を表示する方法

    エクセルでの営業記録の作成を依頼されました。 その中に、顧客を訪問した日からの進捗を記録する のですが、顧客訪問からの営業日日数というセルを 作らないといけません。例えば、6月1日を顧客訪問日 とすれば、6月2日は2日目、3日は3日目、4,5日は週末 なので飛んで6日(月)が4日目といった具合です。 これを自動計算で表示されるようにしたいのですが、 その方法がわかりません。 エクセルの日付表示は=NOW( )しか知りません。 例えば、A1に特定日6月1日と入力してB1に 「=A1-NOW( )」のような計算式を入れれば良いと 思ったのですが、さすがにうまくいきませんでした。 もし、平日のみを計算するのが難しそうでしたら、 特定日から休日を含めた実日数でも良いです。 お願いします。

  • エクセルである期間内の特定の期間の日数を抜き出す方法について

    下記の例の入院日と退院日における特定期間の日数の抜き出し方についてについていずれも計算可能な数式の組み方についてどうしてもわからないのでご教授願います。 (例)   入院日  退院日 入院日~  15日~              14日以内 30日以内              の日数   日数  A 18.4.15 18.4.22  8     0  B 18.3.20 18.4.10  14    8 C 18.2.1  18.4.5   0     0 

  • エクセルでの年数、月数、日数の差引

    エクセルの日数等の計算についてです。 A1セルに「H20.10.15」の日付データ、 B1セルに「H1.4.1」の日付データを入力します。 C1セルにて、「=DATEDIF(B1,A1,"Y")&"年"&DATEDIF(B1,A1,"YM") &"ヶ月"&DATEDIF(B1,A1,"MD")&"日"」を入力し、A1とB1の間の期間 「19年6ヶ月14日」を得ました。 C1で得たこの「19年6ヶ月14日」にさらに期間を足したいのです。 例えば、A2セルに「1」、B2セルに「7」、C2セルに「19」を入力し、 「19年6ヶ月14日」に「1年7ヶ月19日」を足した期間値である 「22年2ヶ月3日」をD2セルに表示させる方法はありますか。 繰り上がり(13ヶ月→1年1ヶ月など)の処理をうまくやる方法が あればいいのですが。 どなたかよろしくお願いします。

  • Excel 日数計算について

    Excelの日数計算について質問です。 H18.9.20(A2)からH19.2.22(B2)の期間を月数と残りの日数で表示すると =DATEDIF(A2,B2,"M")&"月" =DATEDIF(A2,B2,"MD")&"日" ここまでは何とかできましたが、 上記期間の1/2、及び1/3の月数と残日数を整数(端数は切捨て)で表示するにはどのような式が必要でしょうか? 月数は=DATEDIF(A2,B2,"M")で求めた月を1ヶ月30日で計算します。 よろしくご指導お願いします。

  • エクセルで日数の出し方

    例えばA列に本を貸し出した日、B列に戻ってきた日が入力されているものを、C列に何日間貸し出していたかの日数が出るような数式を入れたいのですが、A列-B列としても日数が表示されません。どうしたらよいのでしょうか、教えてください。

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

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

  • EXCELでの日数計算の方法

    こんにちは。いつも大変お世話になります。 申し訳ありませんが、また皆様方のお知恵を貸して下さい。 条件は以下のとおりです。 A1セルに「与えられた日数」単位は日(整数) B1セルに「使用した日数」単位は日(小数点1位) C1セルに「使用した日数」単位は時間(整数) D1セルに「残りの日数」単位は日(小数点1位) E1セルに「残りの日数」単位は時間(整数) A1セルにあらかじめ任意の数字をいれておく。 B1、C1セルに使用した日数を入れる。 D1、E1セルに残りの日数を表示させる。  ※1日を8時間とする。0.5日(0.2や0.6の入力はありま  せん。0.5日=4時間です)と入力する場合もある。 例えばA1セルに20日が入力されていて、B1セルに1.5日、C1セルに3時間を入力すると、D1セルに17.5日、E1セルに5時間を表示させる。 大変ご面倒な事をお願いしておりますが、何卒よろしくお願い致します。

  • 日数を求める計算方法について

    日数を求める計算方法について A1:開始日入力、B1:終了日を入力しました。 単純にB1-A1にした結果の日数が開始日か終了日のどちらかが含まれず1日少ない日数です。 やり方が違うのでしょうかカウントの基本も合わせて教えて下さい。 開始日も終了日も両方カウントされるものだと理解してます。これ違いますか? 年/月/日で表示させています。

  • エクセルで日数計算

    エクセル2003で、 A1に「5月10日」 B1に「8月3日」 と入力したとして C1に5月10日~8月3日までの日数(両端入れ) で自動的に計算してくれる関数ってありますか? よろしくお願いします。

  • エクセルの関数を教えてください。

    エクセルの関数を教えてください。 この従業員はこの月はいたのかいないのか、入社したのか退職したのかを計算したいんです。 A1 従業員名 B1 入社日 C1 退職日 D1 4月 ~ ~ O1 12月 D2以下から、A2の従業員は4月入社、5月在籍、6月退職 と表示できるようにしたいのですが、どのような関数を入れればよいでしょうか?

専門家に質問してみよう