• ベストアンサー

Excel : 日にちの計算

【例】    (A列)        (B列) (1) 開始年月日:(入力) 平成12年10月1日 と表示  (2) 終了年月日:(入力) 平成19年4月16日 と表示 (3) 期 間 : 6年7ヶ月 ← これを表示させたい  (4) 期間年数 : 7年(6年1ヶ月でも6年11ヶ月でも)    ≪(3)期間を 6年7ヶ月 (4)期間年数を7年 と表示させたいのです≫ 平成12年10月1日~31日までが1ヶ月で あと、1日でも越えると11/1でも11/30でも2ヶ月とする。 平成12年10月1日~平成18年9月30日までが、6年で 平成18年10月1日~平成19年4月の1日でも31日でも             7ヶ月になります。 結果 B3に [6年7月] でも、 B3に[6] C3に年と打ち込み D3に[7] E3にヶ月と打っておく。 でも構わない。 最終的に 期間:6年7ヶ月は→期間年数:7年とする。  当然  期間:7年0ヶ月は→期間年数:7年       ( 6年12ヶ月と出る?)   【 期間の年数は○年 】 の結果が欲しい。 B1、B2への打込み方や書式設定(分類)とかも教えてください。 YEAR、や MONTH、IF、を使って見たのですが、日付を扱うのは 初めてで、上手くいきません。 どうか、よろしく、お願いします。

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

  • ベストアンサー
回答No.2

#1のななせです。 補足です。 式中に&を使っているのは、文字を結合する為です。 ="1月"&"1日" とすると1月1日となります。 【B3に入れる式】   =DATEDIF(B1,B2,"Y") & "年" & DATEDIF(B1,B2,"YM") + IF(DATEDIF(B1,B2,"MD")=0,0,1) & "ヶ月" 【B4に入れる式】   =DATEDIF(B1,B2,"Y") + IF(DATEDIF(B1,B2,"YM")=0,0,1) & "年" "Y"・・・満年数を求める "M"・・・満月数を求める "D"・・・満日数を求める "YM"・・・何年経ったかは無視して月数を求める "YD"・・・何年経ったかは無視して日数を求める "MD"・・・何ヶ月経ったかは無視して日数を求める

koro_orok
質問者

お礼

早々に回答いただき、早速実行しました。見事、成功!! ありがとうございます。 DATEDIFとヘルプに打ち込んでみましたが、"意味がわかりません"。と返ってきました。(笑) ‥そんな関数なんですね。 勉強します。 とても解りやすく説明していただき、感激です。(^^♪ +IF(DATEDIF(B1,B2,"MD")=0,0,1 この辺の概念は理解できます。 ところで、求めた年数 7 B4を別のセルの計算式に使用しているのですが、今のところ#VALUE! となりました。 少し、自分でがんばってみます。お手上げになったら、また、質問しますので、その際はよろしくお願いします。 感謝!

その他の回答 (3)

回答No.4

#1,2のななせです。 &を利用したことによって文字列になってしまいましたね^^; 文字列は計算に利用できませんので、B4は & "年"をいれずに、セルの書式設定で 0"年" と指定したほうがいいのかも知れません。

koro_orok
質問者

お礼

はい。単純なエラーでした。 DATEDIF なんて、初めて目にした関数に面食らってしまいました。 無事、解決いたしました。 本当にお世話になりました。 あと、やっかいな計算ツールの作成が控えているのですが nanase_p_qさんや maron--5さんがいらっしゃると想うと心強いです。

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.3

◆こんな方法もありますよ     A         B 1  開始年月日  平成12年10月1日 2  終了年月日  平成19年4月16日 3  期  間     6年7ヶ月 4  期間年数    7年 B3=DATEDIF(B1,B2,"Y")&"年"&DATEDIF(B1,B2,"YM")+(DATEDIF(B1,B2,"MD")>0)&"ヶ月" B4=DATEDIF(B1,B2,"Y")+(DATEDIF(B1,B2,"MD")>0)&"年"

koro_orok
質問者

お礼

なるほど。こういう方法もあるのですね。とても、勉強になります。 やる気が湧いてきます。 ありがとうございました。

回答No.1

まず、今回使っていただきたい関数はDATEDIF関数です。 DATEDIF関数はなぜか関数リスト内にはなく、手入力をしなければいけないというご無体な関数です^^; =DATEDIF(B1,B2,"Y") 上の式を入力すると、年数が表示されます。 =DATEDIF(B1,B2,"YM") 上の式を入力すると、年数を無視して月数が表示されます。 6年7ヶ月としたい場合にはDATEDIF(B1,B2,"Y")とDATEDIF(B1,B2,"YM")を組み合わせることで可能になります。 そこでできるのがこんな式。 =DATEDIF(B1,B2,"Y") & "年" & DATEDIF(B1,B2,"YM") & "ヶ月" ここまでで出るには出るのですが、このままでは6年6ヶ月と1日のような場合にも6年6ヶ月になってしまいます。 そこで、DATEDIF(B1,B2,"YM")のほうに一工夫。 日数が0以外のときは+1するように変化させてみましょう。 =DATEDIF(B1,B2,"YM")+IF(DATEDIF(B1,B2,"MD")=0,0,1) ちょっとばかり複雑になってきましたね^^; そろそろまとめです♪ B3に入れる式は =DATEDIF(B1,B2,"Y") & "年" & DATEDIF(B1,B2,"YM")+IF(DATEDIF(B1,B2,"MD")=0,0,1) & "ヶ月"

関連するQ&A

  • Excelで入社・退社年月日を入力して、勤続年数表示したい

    Excelで入社年月日と退社年月日を入力すると、 勤続年数が表示できるようにしたいのですが、 方法が分かりません。 DateDifという関数があると過去の質問を検索してみたらでてきましたが、どのように使ったらよいのかが分かりません。 入社年月日⇒14年4月1日 退社年月日⇒16年4月20日 勤続年数⇒2年1ヶ月 という具合に、一ヶ月未満の日数がある場合は1ヶ月に繰上げて表示したいです。 そして、休業期間がある場合は同様に休業期間を表示して、勤続年数からマイナスして結果的に 勤続年数-休業期間=在職期間 と表示できるようにしたいです。 ご存知のかた教えてください!よろしくお願いいたします。

  • 在籍年数の計算について

    EXCELで社員の在籍年月数を計算式で出したいのですが、 A列に入社年月日(例:H11.1.1) B列に退社年月日(例:H12.12.31) C列に在籍年数を=YEAR(B)-YEAR(A) D列に余りの月数を=MONTH(B)-MONTH(A) とした場合、 正しくは1年0ヶ月となるはずが、 なぜか「0年11ヶ月」となってしまいます。 正しく表示されるにはどうしたらいいのでしょうか? よろしくお願いいたします。

  • 日にちを数えたい(エクセル)

    A1セルに、昭和50年1月5日 B1セルに、平成5年8月12日 と入力してある場合に C1セルに、何日間か表示させたい。 (昭和50年1月5日と平成5年8月12日を含んで何日間か) (何年何ヶ月何日という表示方法の方がありがたいです) ご教授願えませんか?

  • 特定の期間内に何か月あるかの計算方法

    よろしくお願いします。 平成20年1月1日から平成27年7月31日の間で、 1.平成19年1月1日から平成20年5月31日まで何か月あるのか?   答え 5ヶ月 2.平成22年1月1日から平成22年12月31日まで何か月あるのか?   答え 12ヶ月 3.平成27年1月1日から平成27年8月31日まで何か月あるのか?   答え 7ヶ月 A1に平成20年1月1日、A2に平成27年7月31日と入力してあり、 B1に数える初めの年月日(上記1では平成19年1月1日)、B2に数える最後の年月日 (上記1では平成20年5月31日)と入力するものとして、どのような式を入れれば、 答えが出るでしょうか? もう3日間も唸っていますが、どうしてもできません。 達人の方、ご指導お願いします。

  • エクセルで、ある期間の日付のカウントのやりかた

    例 A列に 平成16年1月1日    平成17年5月1日    平成  年 月 日    平成17年12月31日    平成18年4月2日     … と日付と文字が入力されているとします。  A列の中に平成17年4月1日から平成18年3月31日の期間に含まれる日付がいくつあるかをカウントしたいのです。  この期間をあとで変えられるようにしたいので、平成17年4月1日はB1のセルに平成18年3月31日はB2のセルにそれぞれ入力して、リンクを張った形でカウントする数式を作りたいのです。  わかりにくい説明ですがよろしくご教示願います。

  • 日にちの隣の列を書き出すには?

    A列に日付(西暦、月、日)、B列には曜日(祝日は祝と反映)が一年分入力されています。(2009年とは限りません) C1セルにある日にちを月と日だけで入力(たとえば1月1日)したときにD1セルに対応する日付の曜日の欄のセル番号(1月1日の場合は B1、2月1日の場合はB32)と表示させる方法を教えて下さい。(なぜB1と表示させたいのかというと、 B1 をindex関数で参照して別の作業をしたいからです) 以下は私がチャレンジしてダメだった内容です。 難しいのは、A列の日付が過去の日付という事です。C1セルにはただ単に1月1日、とだけ入力するようにしたいので、セルの日にちは自動的に「今年の」1月1日になってしまいます。A列が昨年以前の日付だとすると、C1=A列にはならないので、簡単なlookup関数などでは処理できません。 E列に=month(A1)、F列に=day(A1) 、として下までコピーし、month(C1)とday(C1)と同じものを探す、なんていうやり方は頭にあるのですが、それを表現できません。 また、A列でヒットした場合、B列のセル番号を返す、(A123が同じだった場合にB123と返す)というのが私の知識では及びません。(1つ下のセル、なら、row+1ですが、1つ右のセル、だと、column+1ではできない) いろいろなやり方があると思いますが、これを使って1年分の売り上げ分析を一枚のシートでやろうと思っているので、なるべくこの部分で複雑な展開にはしたくありません(ファイルが重たくなる)。 皆さんのお知恵をお願いいたします。 よろしくお願いします。

  • エクセルの作成(日にち入力)について

    A1に1と入力すると、B列に1月の1日から31日までの土曜・日曜・祝祭日(休日)を除いた日、 A1に2と入力すると、B列に2月の1日から28、29日まで土曜・日曜・祝祭日(休日)を除いた日のように、 A1に月の数(1~12)を入力すると、その月の土曜・日曜・祝祭日(休日)を除いた日を表示させたいのですが、 可能でしょうか。 可能であれば、どのように作成すれば良いのか教えて頂きたいと思います。 よろしくお願いします。

  • エクセルの計算式について

    いつもお世話になっています。 ある日を基準として、5年経過すると「更新」というように表示したいと考えています。 例えば、基準日(A1)に平成22年4月1日とします。 A2に平成15年3月31日と入力していた場合、B2に「更新」と表示させたいです。 また、A3に平成20年3月31日(5年経過していない場合)は空白にしたいです。 計算式は、どのようにすればいいか教えてください、宜しくお願いします。

  • エクセル関数(勤続年数計算)

    経歴書を作成の際、少し込み入った勤続年数を自動計算するエクセル関数を お教え願います。 尚、前提条件として、エクセル(Office2010)を使用で、 (1)例):D7セルに「1993/2/1」と入力し、D8セルに「1994/2/28」とします。     結果表示として、D7セルには「1993(平成5)年2月」、     D8セルには「1994(平成6)年2月」、     E7(E7セルとE8セルが結合)セルには、勤続年数「1年1ヵ月」と表示する関数 (2)例):D7セルに「2003/4/1」と入力し、D8セルに「2003/5/31」とします。     結果表示として、D7セルには「2003(平成15)年4月」、     D8セルには「2003(平成15)年5月」、     E7(E7セルとE8セルが結合)セルには、勤続年数「2ヵ月」と表示する関数     決して、「0年2ヵ月」と表示はしない (3)例):D7セルに「2003/4/1」と入力し、D8セルに「2004/3/31」とします。     結果表示として、D7セルには「2003(平成15)年4月」、     D8セルには「2004(平成16)年3月」、     E7(E7セルとE8セルが結合)セルには、勤続年数「1年0ヵ月」と表示する関数     決して、「0年12ヵ月」と表示はしない (4)例):D7セルに「1993/2/1」と入力し、D8セルに「1995/1/31」とします。     結果表示として、D7セルには「1993(平成5)年2月」、     D8セルには「1995(平成7)年1月」、     E7(E7セルとE8セルが結合)セルには、勤続年数「2年0ヵ月」と表示する関数     決して、「1年12ヵ月」と表示はしない ※上記の(1)~(4)を統合したエクセル関数を是非、ご教示願います。   物理的に困難な場合は、日付入力するD7、D8の箇所を変更しても構いません。 何方かこの手でお詳しい方、よろしくお願い致します。

  • エクセル関数(勤続年数計算)

    経歴書を作成の際、少し込み入った勤続年数を自動計算するエクセル関数を お教え願います。 尚、前提条件として、エクセル(Office2010)を使用で、 (1)例):D7セルに「1993/2/1」と入力し、D8セルに「1994/2/28」とします。     結果表示として、D7セルには「1993(平成5)年2月」、     D8セルには「1994(平成6)年2月」、     E7(E7セルとE8セルが結合)セルには、勤続年数「1年1ヵ月」と表示する関数 (2)例):D7セルに「2003/4/1」と入力し、D8セルに「2003/5/31」とします。     結果表示として、D7セルには「2003(平成15)年4月」、     D8セルには「2003(平成15)年5月」、     E7(E7セルとE8セルが結合)セルには、勤続年数「2ヵ月」と表示する関数     決して、「0年2ヵ月」と表示はしない (3)例):D7セルに「2003/4/1」と入力し、D8セルに「2004/3/31」とします。     結果表示として、D7セルには「2003(平成15)年4月」、     D8セルには「2004(平成16)年3月」、     E7(E7セルとE8セルが結合)セルには、勤続年数「1年0ヵ月」と表示する関数     決して、「0年12ヵ月」と表示はしない (4)例):D7セルに「1993/2/1」と入力し、D8セルに「1995/1/31」とします。     結果表示として、D7セルには「1993(平成5)年2月」、     D8セルには「1995(平成7)年1月」、     E7(E7セルとE8セルが結合)セルには、勤続年数「2年0ヵ月」と表示する関数     決して、「1年12ヵ月」と表示はしない ※上記の(1)~(4)を統合したエクセル関数を是非、ご教示願います。   物理的に困難な場合は、日付入力するD7、D8の箇所を変更しても構いません。 何方かこの手でお詳しい方、よろしくお願い致します。

専門家に質問してみよう