gooポイントが当たる質問投稿キャンペーン>>

期間から期間を引く計算方法を教えてください
○年○ヵ月○日から○年○ヵ月○日を引いて○年○ヵ月○日を表示する方法を教えてください。

たとえば、勤続年数が31年6ヵ月15日(A1)で休職期間が1年8ヶ月21日(A2)あった場合、実際に勤務についていた日数を祭日に関係なく、○年○ヵ月○日(A3)と表示させたい。

このQ&Aに関連する最新のQ&A

A 回答 (5件)

もう解っているようですが


正確な 数値ではありませんが 

入社日  昭和52年9月16日 から 休職開始日 平成18年1月8日 と
休職終了日 平成19年9月29日 から 退社日  平成21年3月31日 の期間を出し 足す
DATEDIF関数は 知っているようですから

または
=DATEDIF(DATE(1,8,21),=DATE(31,6,15),"Y")&"年"
&DATEDIF(DATE(1,8,21),=DATE(31,6,15),"YM")&"ヵ月"
&DATEDIF(DATE(1,8,21),=DATE(31,6,15),"MD")&"日"
あくまでも 正確ではないことを 承知の上でお願いします
    • good
    • 0
この回答へのお礼

有難うございます。

お礼日時:2009/04/03 14:41

datedifをいくつも使って「31年6ヶ月15日」となっているのは文字


列ですから、直接の四則演算は不可能です。datedifに戻って無理に
計算しようとしても、1ヶ月が何日であるかが不定なので、繰り上が
りや繰り下がりの一般的なルールが存在しませんね。30日が1ヶ月な
のか1ヶ月未満の端数なのか、1ヶ月と2日なのか、即答できないで
しょう。繰り上がりと繰り下がりの基準について、会社としての見
解を補足して下さい。

実は、○日ってのさえ言わなければ、話は簡単です。datedif関数
を"M"で使用して月数を数値で求め、足すなり引くなり好きにしてか
ら、12で割って余りも出すというわけ。1ヶ月未満の端数が本当に必
要なのかも補足して下さい。

で、ついでになぜこの質問を締めずに同じことを再質問したのかも
知りたいですね。重複質問は禁止事項です。

この回答への補足

バグがあることは知りませんでした。
昨日の質問なので、新たに具体的に数字を入れて見ました。

補足日時:2009/04/03 14:47
    • good
    • 0
この回答へのお礼

有難うございます。

お礼日時:2009/04/03 14:41

#1です。



補足にあった、在籍期間や休職期間は、どのような計算式なのでしょうか?
計算式を入力しているのではなく、自分の頭で計算した結果を、直接入力しているのでしょうか?

あと、
開始:昭和21年3月30日/終了:昭和21年4月15日
開始:昭和21年4月30日/終了:昭和21年5月15日
という2つの期間があった場合、それぞれ、どのような結果が欲しいのか、教えていただけますか?
    • good
    • 0
この回答へのお礼

有難うございます。

お礼日時:2009/04/03 14:42

ずばりこのURLですね



参考URL:http://kokoro.kir.jp/excel/datedif.html

この回答への補足

ありがとうございます。
ここまでは、何とかいきつけたのですが、このURLの○歳○ヶ月○日の歳を年に置き換えて、それぞれの期間の合計を出したり。又は、ある期間から期間を引いたりした結果を出したいのですが?

補足日時:2009/04/03 13:03
    • good
    • 0

勤続年数の「31年6ヶ月15日」は、どうやって求めるのでしょうか?


うるう年があるので、開始日や終了日の情報なしに、正確な日数を求めることは出来ません。

入社日、退社日、休職開始日、休職終了日、を使って計算するほうが楽で正確だと思いますよ。

この回答への補足

入社日  昭和52年9月16日
退社日  平成21年3月31日
在籍期間  31年6ヵ月15日

休職開始日 平成18年1月8日
休職終了日 平成19年9月29日
休職期間   1年8ヶ月21日

期間計算の方法はEXCELのDATEDIF関数で出してます。
期間同士を足したり引いたりする方法を教えてください。

補足日時:2009/04/03 13:26
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルで期間から期間を足したり引いたりする方法を教えてください

期間から期間を引く計算方法を教えてください
○年○ヵ月○日から○年○ヵ月○日を引いて○年○ヵ月○日を表示する方法を教えてください。

たとえば、勤続年数が31年6ヵ月15日(A1)で休職期間が1年8ヶ月21日(A2)あった場合、実際に勤務についていた日数を祭日に関係なく、○年○ヵ月○日(A3)と表示させたい。
入社日  昭和52年9月16日
退社日  平成21年3月31日
在籍期間  31年6ヵ月15日

休職開始日 平成18年1月8日
休職終了日 平成19年9月29日
休職期間   1年8ヶ月21日

期間計算の方法はEXCELのDATEDIF関数で出してます。
期間同士を足したり引いたりする方法を教えてください。

Aベストアンサー

DATEDIF関数のバグはご存知ですよね?
http://pc.nikkeibp.co.jp/article/NPC/20070530/272938/?P=3

日数計算の場合、このバグと同じ問題が常時付きまといます。

例えば、1ヶ月と20日から、1ヶ月と10日を引く場合、起点の月日次第で
答えは8日~11日まで変動します。コレをどう考えるかですね。
(例えば3月31日の1ヶ月と1日前は何日か、という問題がそうです)

ですので、この計算は、期間の定義を正確に行わないと算出できません
特に勤続年数などの「金額に直結する計算」の場合、定義の違いで金額
が変わってしまいますので重大な問題になります。計算式の提示はその
定義が確定してからです。

ちなみにこれらの定義を100%何とかする場合は、大概、VBAでコードを
書かないと計算できないような、複雑な計算になります。

Qエクセルで日数を年数に置き換えるには?

例えば、平成16年11月28日~平成23年12月10日までの日数を、「7、××年」と表示させるための、関数を使った計算式を知りたいのですが、お分かりの方がおられれば、よろしくお願いします。

Aベストアンサー

(1)365日を1年と考える
A1=H16.11.28
B1=H23.12.10
=(B1-A1)/365=7.04年

(2)実際の日数で経過日数を割る
=YEARFRAC(A1,B1,1)=7.03年

こんなところでしょうか。

Qエクセルで年月の合計の関数を教えてください。

エクセルで2つの日付から年月数を求める関数(=TEXT(DATEDIF(A1,BI,"Y"),"0年;;")&TEXT(DATEDIF(A1,B1,"YM"),"0ヶ月;;")で出た期間の合計を出す関数を教えてください。(たとえば,2年6ヶ月と1年3ヶ月を足し,3年9ヶ月となるように)
よろしくお願いします。

Aベストアンサー

=TEXT(DATEDIF(A1,BI,"Y"),"0年;;")&TEXT(DATEDIF(A1,B1,"YM"),"00ヶ月;;")
で月を2桁表示なら
=TEXT(SUMPRODUCT(SUBSTITUTE(SUBSTITUTE(E7:E8,"年",""),"ヶ月","")*1),"0年00ヶ月")
で3年09ヶ月になります。ただし12ヶ月以上になる場合に繰上げされません。

年=DATEDIF(A1,BI,"Y")と月=DATEDIF(A1,B1,"YM")を分けてもらえれば、
年=SUM(年の範囲)+INT(SUM(月の範囲)/12)
月=MOD(SUM(月の範囲),12)
で計算できます。
※「年」「ヶ月」はセルの書式設定の表示形式をユーザー定義で「0年;;」「0ヶ月;;」で表示してください。

QEXCELで○ヶ月を○年○ヶ月に変換したい。

EXCELで、例えば「430ヶ月を35年10ヶ月」に変換したいのですが、使える関数はありますか?又は、簡単な良い方法はありますか?

Aベストアンサー

=TEXT(DATE(0,430,1),"y年mmヶ月")
ですね。上記の式の430の所をセル参照
別解として
=INT(430/12)&"年"&MOD(430,12)&"ヶ月"

上記2つの式は12ヶ月で割り切れる場合の表示が異なります。
=TEXT(DATE(0,480,1),"y年mmヶ月")→39年12ヶ月
=INT(480/12)&"年"&MOD(480,12)&"ヶ月"→40年0ヶ月

Qエクセルで複雑な退職金の計算をしたいのですが

Excel2007で次の退職金の計算をしたいのですがご教授願います。

起算日 A1
退職日 A2
在職期間 =DATEDIF(A1,A2,"y")&"年"&DATEDIF(A1,A2,"ym")&"ヶ月"&DATEDIF(A1,A2,"md")&"日"       ←この計算式で○年○月○日を計算しました。

その後次の計算が必要になります。
(1)在職年数に端数がある時は月割りで計算し、1ヶ月未満の端数は1ヶ月に切り上げる。
 端数日数を1ヶ月単位に切り上げ、○年○ヶ月を求めます。
(2)在職年月に基本給を掛けて、更に係数を掛けて退職金を求める。
 (○年+○ヶ月/12)×基本給×係数 となります。

そこで(1)をトライしてみましたが、(2)の方法がわからないので、(1)の検証もできません。
(1)の計算は次のように求めてみました。
 =DATEDIF(A1,A2,"y")&"年"&DATEDIF(A1,A2,"ym")+(DATEDIF(A1,A2,"md")>0)&"ヶ月"
この計算では在職期間が○年11ヶ月○日となった場合、求めた在職年数は○年12ヶ月となってしまい、年に繰り上がりません。従って(2)の方法に影響が出そうですが、(2)の方法自体がわからないのでお手上げ状態です。

(1)と(2)、あるいは最初の方法からからでも構いませんので、ご教授を頂きたいと思います。

Excel2007で次の退職金の計算をしたいのですがご教授願います。

起算日 A1
退職日 A2
在職期間 =DATEDIF(A1,A2,"y")&"年"&DATEDIF(A1,A2,"ym")&"ヶ月"&DATEDIF(A1,A2,"md")&"日"       ←この計算式で○年○月○日を計算しました。

その後次の計算が必要になります。
(1)在職年数に端数がある時は月割りで計算し、1ヶ月未満の端数は1ヶ月に切り上げる。
 端数日数を1ヶ月単位に切り上げ、○年○ヶ月を求めます。
(2)在職年月に基本給を掛けて、更に係数を掛けて退職金を求める。
 (○年+○ヶ月/12)×基...続きを読む

Aベストアンサー

度々の訂正で申し訳ありません。
回答No.14の訂正です。

誤 年数(整数) =DATEDIF(A1,A2,"y")+INT(DATEDIF(A1,A2,"ym")+ROUNDUP(DATEDIF(A1,A2,"md")/100,0)/12)
正 年数(整数) =DATEDIF(A1,A2,"y")+INT((DATEDIF(A1,A2,"ym")+ROUNDUP(DATEDIF(A1,A2,"md")/100,0))/12)

1組の括弧が抜けていました。

Q勤続年数の平均を求めたい時の関数

エクセルで会社の従業員の勤続年数とその平均を求めたいです。
勤続年数のセルに
=DATEDIF(A1,TODAY(),"y")&"年"&DATEDIF(A1,TODAY(),"ym")&"ケ月"
といれて勤続年数を出してます。
それで次に従業員の勤続年数の平均を出したいのですが、AVERAGEを使うとエラー#DIV/0!が出ます。
どうすれば勤続年数とその平均が求められますか?
どんな方法でも良いので教えて下さい!!非常に困ってます(ー_ー)!!

Aベストアンサー

そりゃそうでしょう。計算対象が文字列扱いのデータなんですから、
エラーが出てアタリマエ、平均値が計算できワケがないです。

ですので、勤続年数の「数値」を持つセルを別に作る必要があります。
当然年/月のままじゃダメで勤続延べ何ヶ月という「月」の値にする
必要があります。ということで、上記のセルとは別に、

=DATEDIF(A1,TODAY(),"y")*12+DATEDIF(A1,TODAY(),"ym")

こうすれば、勤続延べ何ヶ月の数字が出てきます。この式を含むセル
についてAVARAGE関数で平均を取ってください。

で、出てくるのは勤続延べ何ヶ月ですから、こいつを12で割って「年」
余りを「月」にする必要があります。平均月が出たセルをB1として、

="平均"&INT(B1/12)&"年"&(B1-INT(B1/12)*12)&"ケ月"

こんな感じで表示できるはずです。
キモは「計算に使うセルと表示するセルを分ける」ということです。

計算に使うセルが表示上邪魔な場合は「書式」「列」「表示しない」
などで表示上隠す方法と、AA1~などの極端に離れたセルに記入して
おく方法などがあります。

そりゃそうでしょう。計算対象が文字列扱いのデータなんですから、
エラーが出てアタリマエ、平均値が計算できワケがないです。

ですので、勤続年数の「数値」を持つセルを別に作る必要があります。
当然年/月のままじゃダメで勤続延べ何ヶ月という「月」の値にする
必要があります。ということで、上記のセルとは別に、

=DATEDIF(A1,TODAY(),"y")*12+DATEDIF(A1,TODAY(),"ym")

こうすれば、勤続延べ何ヶ月の数字が出てきます。この式を含むセル
についてAVARAGE関数で平均を取ってください。

で...続きを読む

QEXCEL 何年何ヶ月間を求める関数を教えてください。

EXCEL
よろしくお願いします。 

入社日がB1のセルに平成10年12月5日と入っています。
退職の日がC1のセルに平成16年5月15日と入っています。

勤務期間を何年間何ヶ月間(満年月)をD1に出したのですが
どのような関数を使えばよいのか教え下さい。

よろしくお願いします。

Aベストアンサー

=DATEDIF(B1,C1,"Y")&"年間"&DATEDIF(B1,C1,"YM")&"ヶ月間"

◆下の、URLも参考に見てください

参考URL:http://www.microsoft.com/japan/users/office_expert/200304/01.asp

QDATEDIF関数と普通の引き算による日数計算

7月25日(セルA1)から7月1日(セルB1)までの日数を計算する場合、B1-A1で日数は出てくるようなんですが、例えば月を跨いだ場合、誤差は出てくるのでしょうか?(閏年や、月ごとの総日数の違いなどにより)

日数計算の場合、DATEDIF関数というものもあるようなのですが、これを使うと日数がマイナスになってしまう場合、エラーになってしまうようです。

後者の方が正確であるならば、DATEDIF関数を使いたいんですが、その場合、引き算の結果がプラスになる場合、マイナスになる場合が混在しているデータで使用する場合、どのような計算式を入力すればよいのかが分かりません。

どなたか御存知の方、よろしくお願いします。
ちなみに、単なる引き算で誤差がでないようでしたら、引き算で処理したいと思っています。

Aベストアンサー

用途によりますが、単純な日数計算なら基本的には誤差は出ないと思いますよ。
Excel内では、1900年1月1日を1として、1日ごとに1増える計算になっていますので。
ようするに、数字同士の引き算ですからね。

閏年は計算に入っていますし、月ごとの総日数も関係ないですし。

DATEDIFを使うなら、IF関数で大きさを比べて使ってみてはいかがでしょうか?

Qエクセルで平均年齢や平均勤続年数を求めるには?

エクセルで複数の構成員の平均年齢や平均勤続年数を求めるにはどうしたらいいのでしょうか?できれば、何年何ヶ月何日まで出せるといいのですが。

Aベストアンサー

それぞれの年齢と勤続年数の列を、日付関数を使ってつくります。関数ボックスにはない「DATEDIF関数」です。
=DATEDIF(A1,TODAY(),"D") ※A1は、生年月日、入社年月日が入力されているセルに書き換えてください。
平均値は「AVERAGE関数」で計算しましょう。=AVERAGE(C1:C4)
セルの書式をユーザー定義で「yy"歳"mm"ヵ月"dd"日"」や「yy"年"mm"ヵ月"dd"日"」などお好みに設定してください。

余談ですが、DATEDIF関数の第3引数「D」は日数を指定しています。年数なら「Y」、月数なら「M」です。解説しているサイトがありますので、検索してみてください。あと、年齢計算は =DATEDIF(A1,TODAY()+1,"D") の方が自然なのかな?

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング