出産前後の痔にはご注意!

例えば、A1に
入社年月日 2000年6月
と入力し、DATEDIF関数を利用すると、

=DATEDIF(A1,TODAY(),"Y")では 6年、
=DATEDIF(A1,TODAY(),"M")では 73ヶ月

と表示することができますが、

6年1ヶ月

表示する方法はありますか?

A 回答 (1件)

こんな式でどうでしょうか。


=DATEDIF(A1,TODAY(),"Y")&"年"&DATEDIF(A1,TODAY(),"YM")&"ヶ月"
    • good
    • 12
この回答へのお礼

おおっ、完璧です。ありがとうございました。
また機会ありましたら、教えてくださいね。
ありがとうございました。

お礼日時:2006/07/04 14:31

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

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

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

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

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

Qエクセルで勤続年数を○年△ヶ月×日まで算出したい

●勤続年数を日数まで算出したい。

●上記で求めた勤続年数を日数が15日以上の場合は1ヶ月とし、15日未満の場合は切り捨てて、○年△ヶ月と表示したい。

上記2つの関数を知りたいので詳しい方ご回答よろしくお願いします。

Aベストアンサー

こんな式でどうでしょうか。
最初の方はA1に入社日
A2に指定した日にちとして
=DATEDIF(A1,A2,"y")&"年"&DATEDIF(A1,A2,"ym")&"ヶ月"&DATEDIF(A1,A2,"md")&"日"

15日以上の場合については
=DATEDIF(A1,A2+15,"y")&"年"&DATEDIF(A1,A2+15,"ym")&"ヶ月"

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で入社年月日と退社年月日を入力すると、
勤続年数が表示できるようにしたいのですが、
方法が分かりません。

DateDifという関数があると過去の質問を検索してみたらでてきましたが、どのように使ったらよいのかが分かりません。

入社年月日⇒14年4月1日
退社年月日⇒16年4月20日
勤続年数⇒2年1ヶ月
という具合に、一ヶ月未満の日数がある場合は1ヶ月に繰上げて表示したいです。

そして、休業期間がある場合は同様に休業期間を表示して、勤続年数からマイナスして結果的に
勤続年数-休業期間=在職期間
と表示できるようにしたいです。

ご存知のかた教えてください!よろしくお願いいたします。

Aベストアンサー

○年□ヶ月△日
=DATEDIF(A1,B1,"Y")&"年"&DATEDIF(A1,B1,"YM")&"ヶ月"
&DATEDIF(A1,B1,"MD")&"日"

ですが、
入社年月日⇒14年4月1日
退社年月日⇒14年4月30日
と書いた場合、DATEDIFの仕様として「初日不算入」です
ので、4/2~4/30にちまでを数えることになります。
→【0年0ヶ月29日】
と表示されるはずです。

=DATEDIF(A1,B1+1,"Y")&"年"&DATEDIF(A1,B1+1,"YM")&"ヶ月"
&DATEDIF(A1,B1+1,"MD")&"日"

で多少マシになるかもしれませんが、上記の式は
使わないほうがよいです。なぜなら、

DATEDIF(A1,B1,"MD")

DATEDIF(A1,B1,"YD")
には、うるう年に絡む不具合があり正しく計算されない
ことが知られていますので。

例えば、
A1に
1998/10/31
B1に
2000/03/01
と入力した場合など。

詳しくは角田さんのページの
http://www.h3.dion.ne.jp/~sakatsu/ktfunc_ref0206.htm#DATEDIF
をご覧いただき、【kt関数アドイン】導入することを
お勧めします。

参考URL:http://www.h3.dion.ne.jp/~sakatsu/index.htm

○年□ヶ月△日
=DATEDIF(A1,B1,"Y")&"年"&DATEDIF(A1,B1,"YM")&"ヶ月"
&DATEDIF(A1,B1,"MD")&"日"

ですが、
入社年月日⇒14年4月1日
退社年月日⇒14年4月30日
と書いた場合、DATEDIFの仕様として「初日不算入」です
ので、4/2~4/30にちまでを数えることになります。
→【0年0ヶ月29日】
と表示されるはずです。

=DATEDIF(A1,B1+1,"Y")&"年"&DATEDIF(A1,B1+1,"YM")&"ヶ月"
&DATEDIF(A1,B1+1,"MD")&"日"

で多少マシになるかもしれませんが、上記の式は
使わないほうがよいです。なぜなら、

DATEDI...続きを読む

QExcel:セルに入力されている日付の、半年後の日付を自動表示させたい

誰か教えてください。
A列のセルに「2004/3/4」という日付が入っていたとします。
A列の日付を参照して、B列に「半年後」、C列に「16ヶ月後」という日付を自動表示させたいのですが、そういう事って出来ますか?
出来るとしたらどんな関数を書けばいいのでしょう?
教えてください!

Aベストアンサー

こんにちは。maruru01です。

基本形(半年後)は、

=DATE(YEAR(A1),MONTH(A1)+6,DAY(A1))

です。
(16ヶ月後は、数式中の6→16にする)
ただし、月末の場合は問題があります。
例えばA1に、「2004/8/31」と入力すると、半年後は、「2005/3/3」になります。
これを、「2005/2/28」にするなら、数式を、

=MIN(DATE(YEAR(A1),MONTH(A1)+6,DAY(A1)),DATE(YEAR(A1),MONTH(A1)+6+1,))

とします。
また、分析ツールが利用出来るのなら、

=EDATE(A1,6)

としても、「2005/2/28」という日付が求まります。
なお、分析ツールは、メニューの[ツール]→[アドイン]→[分析ツール]にチェックをすると利用可になります。

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エクセルで打ち込んだ数字を自動で別シートに表示したい

エクセルでセルに打ち込んだ数字を自動で別シートに表示できる方法があれば、教えてください。

例えば、シート1のC1に5を打ち込んだら、シート2のD2にシート1で打ち込んだ5が自動で表示される。

また1列すべてを自動で表示させる場合、一つのセルの時と違いがありましたら教えてください。よろしくお願いします。

Aベストアンサー

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コピー&リンク貼り付けを使うと便利です。

例)例)シート1のC1~C5に何かを入力したら、
  シート2のD2~D7にシート1で打ち込んだものが自動で表示される

  シート1にあるコピー元のセルを範囲選択して、
  シート2のD2の上で「右クリック」⇒「形式を選択して貼り付け」
  をクリックします。

  そして出てきた小さな画面の左下にある「リンク貼り付け」という
  ボタンをクリックすると完成です。
  試してみてください。。

  念のためにリンク貼り付けを図解しているURLを載せておきます。
  参考にしてみてくださいね。。
  http://www.geocities.jp/office_inoue/excel/eq21.htm

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コ...続きを読む

Qエクセルで〇の数を数えたい

エクセルで〇の数を数えたい。関数式はどうなりますか。
c5~c45の○を挿入したセルの数をc50にだしたいのですが。
ひさしぶりにエクセルやったので、忘れてしまいました。

Aベストアンサー

#1です。
おかしいですねえ。

まさかとは思いますが、
・「○」のつもりが、英語の O になってるとか、数字の0とか、漢数字の〇になってるとか
・○の前後にスペースが入っていないか

このあたりを見てみましょう。

Qエクセルで特定の列にある日付データの中から、指定した日付範囲を抽出する方法を教えてください

例えばこんなデータなのですが、

2002/07/01 99 25 36
2002/07/05 55 33 25
2002/08/01 80 20 51

日付の入っている列を検索して、2002/07/01から2002/07/31
の範囲ならば、その行のデータを別のシートに抽出したいのですが、
日付の範囲は関数でどうすればよいのか分かりません。ACCESSなら
between 9999/99/99 and 9999/99/99って感じで簡単にできるの
ですが。。。エクセルの関数だとIF関数の論理式にAND関数を使って
>=2002/07/01
<=2002/07/31
と入力したので、2002/07/05ならば、いずれもTRUEなので、値を返して
くれると考えたのですが、なぜかダメでした。
(↓こういう入力をしました)
=IF(AND(Sheet2!A1>=2002/7/1,Sheet2!A1<=2002/7/31),Sheet2!A1,"該当月ありません")

Aベストアンサー

こんばんは!

=IF(AND(Sheet2!A1>=2002/7/1,Sheet2!A1<=2002/7/31),Sheet2!A1,"該当月ありません")

おしいですね(^^;
日付をそのまま入力してしまうと数式上では
 2002/7/31 → 2002÷7÷31 になってしまいます。
ダブルクォーテーションで括って(文字列)入力して
それを数値化しましょう!

=IF(AND(Sheet2!A1>="2002/7/1"*1,Sheet2!A1<="2002/7/31"*1),Sheet2!A1,"該当月ありません")

文字列 ="10" に対して 乗算 *1 としても数式が
なり立ち文字列の数字が数値化されます。="10"*1

------------余談--------------------------
ご質問の条件例の場合特例で 2002/7でればOKなので

=IF(TEXT(Sheet2!A1,"yyyym")="20027",Sheet2!A1,"該当月ありません")

でも可能ですね!

こんばんは!

=IF(AND(Sheet2!A1>=2002/7/1,Sheet2!A1<=2002/7/31),Sheet2!A1,"該当月ありません")

おしいですね(^^;
日付をそのまま入力してしまうと数式上では
 2002/7/31 → 2002÷7÷31 になってしまいます。
ダブルクォーテーションで括って(文字列)入力して
それを数値化しましょう!

=IF(AND(Sheet2!A1>="2002/7/1"*1,Sheet2!A1<="2002/7/31"*1),Sheet2!A1,"該当月ありません")

文字列 ="10" に対して 乗算 *1 としても数式が
なり立ち文字列の数字が数値化されます。="10"*1

--...続きを読む


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

人気Q&Aランキング