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

社員への有給付与日を管理する表をExcelで管理しようと考えています。

入社日を起点として6ヶ月を経過した日をExcelの式で計算することは可能ですか。


入社日
2014/04/01 → 2014/09/30
2014/04/22 → 2014/10/21
2014/10/15 → 2015/03/14

もし、可能なら式を教えて下さい。
宜しくお願いいたします。

A 回答 (4件)

こんにちは!



別案として・・・
A1セルからデータがあるとすると
B1セルに
=EDATE(A1,6)-1

でも大丈夫だと思います。m(_ _)m
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

お礼日時:2014/02/10 23:00

残念ながら、まだ正解の回答は出ていないのではないかと考えております。

大の月・小の月を考慮する必要があると思います。

「暦による 6 か月を超えない最後の日」を算出する数式は、ちょっと難しいですが、添付図の E1 セルのとおりではいかがですか。C 列や D 列だと、答えを誤っている行(黄色いセルの行)がありますよね。

各数式は、次のとおりとなっています。

A列  2014/8/25 など
B1  6
C1  =edate(a1,b1)-1
D1  =date(year(a1),month(a1)+B1,day(a1)-1)
E1  =edate(a1,b1)-(day(a1)=day(edate(a1,b1)))

EDATE 関数は n か月後の日付を求めるわけですが、E1 の数式は、その n か月後の日の「年」、「月」、「日」のうち、「日」が元の日の「日」と同じである場合は 1 日を差し引き、そうでない場合は引かない、という計算をします。
「6ヶ月経過日を算出する式」の回答画像4
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

お礼日時:2014/02/10 23:01

No2さんの補足として



EDATE関数を使います。
EDATE(値、月)で値の何か月後か、ってのをシリアル値で出します。
例えば
EDATE(2014/4/1,6)なら2014/10/1になります。
その前日を知りたいのでその数値から-1する
”EDATE(2014/4/1,6)-1”で2014/9/30となります。

なんでA行に入社日、B行にEDATE(A1.6)-1
で希望する計算日がでます。
    • good
    • 0

A1に「入社日」を入力して、計算したいセルに



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

の式を入力。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

お礼日時:2014/02/10 23:00

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

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

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

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

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エクセルで6ヵ月後を自動入力できますか?

エクセルで指定した日付からちょど6ヵ月後の日付を
自動入力することはできますでしょうか?

例)
「A1」に「2009/1/7」と入力し「B1」に「2009/7/6」と
自動入力できるようにしたい。

ちなみに用途は定期の購入時期を整理したいためです。
宜しくお願い致します。

Aベストアンサー

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

QExcelで半年後の日付を計算したい

おしえてください。

今日の日から半年後の日付を自動計算したいのです。
どういう式を使ったらいいでしょうか。

Aベストアンサー

セルA1に"2003/3/17"という形で日付が入っているとして、セルB1に

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

です。"MONTH(A1)+6"が12を超えても、Excelが自動的に1年繰り上げてくれます。

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ベストアンサー

こんにちは。

ユーザー定義関数で作ってみました。Ver4 マクロ関数で十分だと私は思いますが、Ver 4 マクロ関数ではケシカランというような方?は、以下のようなVBAでの解決方法が便利かなって思います。

VB Editor の標準モジュールに貼り付けてください。(挿入-標準モジュール)

なお、一般のブックの標準モジュールのユーザー定義関数に、Public キーワードをつけたところで、グローバル関数になるわけではありませんので、もしその点に不安のある方は、マニュアル等で、確認されたほうがよいかもしれませんね。

なお、以下は、引数のインデックスに0を入れると、配列出力するようにしてあります。

'------------------------------------
Function ColorCellCount(範囲 As Range, Optional インデックス As Integer = 1, Optional パターン As Integer = 0)
  Dim myRng As Range
  Dim myIndex As Integer
  Dim myPattern As Integer
  Dim myColor() As Integer
  Dim Ret() As Double
  Dim c As Range
  Dim i As Long
  Dim j As Long
  Set myRng = 範囲
  myIndex = インデックス
  myPattern = パターン
For Each c In myRng
   On Error Resume Next
   If myPattern = 0 Then
     i = WorksheetFunction.Match(c.Interior.ColorIndex, myColor, 0)
   Else
     i = WorksheetFunction.Match(c.Font.ColorIndex, myColor, 0)
   End If
   If i = 0 Then
     ReDim Preserve myColor(j)
     ReDim Preserve Ret(j)
      If myPattern = 0 Then
       myColor(j) = c.Interior.ColorIndex
      Else
       myColor(j) = c.Font.ColorIndex
      End If
      Ret(j) = 1
     j = j + 1
     On Error GoTo 0
     Else
      Ret(i - 1) = Ret(i - 1) + 1
   End If
  Next
  If myIndex <= 0 Then
   ColorCellCount = Ret()
  ElseIf myIndex > UBound(Ret) + 1 Then
   ColorCellCount = Ret(UBound(Ret()))
   Else
   ColorCellCount = Ret(myIndex - 1)
  End If
  Set myRng = Nothing
End Function

ワークシート上での使い方は、

A列
色付き
色なし
色なし
色付き
色付き

=ColorCellCount(A1:A5, 1 )

とすれば、上から数えて、1番目の色のセルの数が出ます。

=ColorCellCount(A1:A5, 2 )
を入れれば、色なしのセルの数が出ます。

=SUMPRODUCT(ColorCellCount(A1:A5, 0 ))

とすれば、全部の合計が出ます。

なお、
=ColorCellCount(A1:A5,1,1)

とすれば、文字の色を数えます。

こんにちは。

ユーザー定義関数で作ってみました。Ver4 マクロ関数で十分だと私は思いますが、Ver 4 マクロ関数ではケシカランというような方?は、以下のようなVBAでの解決方法が便利かなって思います。

VB Editor の標準モジュールに貼り付けてください。(挿入-標準モジュール)

なお、一般のブックの標準モジュールのユーザー定義関数に、Public キーワードをつけたところで、グローバル関数になるわけではありませんので、もしその点に不安のある方は、マニュアル等で、確認されたほうがよいかもし...続きを読む

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関数で平均を取ってください。

で...続きを読む

Qエクセルで一定期間が経過したら色が変わる

エクセルで
24/1/20と和暦で入力しているセルがあります。
このセルが180日経過したら
色が変わるように設定したいのですができますか?

あと24.1と和暦で月を入力してあるセルがありますが
このセルが6ケ月経過したら
色が変わるようにしたいのですができますか?

Aベストアンサー

条件付き書式で数式を使うときには,「いま実際に操作しているセル番地」に合わせた数式を設定しないと全然ダメ,ってのは判ってますか?
そのために,回答では「わざわざ」A1に記入したときにはこういう式にします,という回答が寄せられます。でもそこが判って無くて出来ないご相談者さんが,イッパイいらっしゃいます。
アナタのご相談が手抜きせずに「ココの番地にこう入れてます」と具体的なエクセルの目に見える姿が情報提供されていれば,こういった二度手間や失敗も防げるんですけどね。



さて。
>和暦のつもりで実際は西暦が記入されている

そういう「アナタのエクセルの事実」の情報提供に(ウソや)手抜きがあると,このように皆さんの回答を無駄にしたり二度手間させる,直接の要因になります。次回以降ご相談のご参考に。

A1に「2024/1/20」など(今日H24/1/25の180日前なら23/7/29ですか)を記入し
A1で条件付き書式を開始し
セルの値が → 数式が に変更して
右の空欄に
=TODAY()-("H"&TEXT(A1,"yy/mm/dd"))>=180
と記入し,書式ボタンで色を塗る。

A1のテストデータで動作が確認できたら,A1をコピーし,実際のアナタのセルに形式を選んで貼り付けの「書式」で貼り付ける。



>「24.1」と「文字列」で記入している

そのままで,回答した手順で行えば出来ます。わざわざ違う風に変えないでください。
まだやってないなら,やってください。

条件付き書式で数式を使うときには,「いま実際に操作しているセル番地」に合わせた数式を設定しないと全然ダメ,ってのは判ってますか?
そのために,回答では「わざわざ」A1に記入したときにはこういう式にします,という回答が寄せられます。でもそこが判って無くて出来ないご相談者さんが,イッパイいらっしゃいます。
アナタのご相談が手抜きせずに「ココの番地にこう入れてます」と具体的なエクセルの目に見える姿が情報提供されていれば,こういった二度手間や失敗も防げるんですけどね。



さて。
>和...続きを読む

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

Qexcelからexcelへの差し込み印刷

お世話になります。

excelでwordへの差し込み印刷をよく利用するのですが、
同様に、
excelのデータをexcelに流し込んで印刷する方法はありますでしょうか。

excelの名簿のデータを
excelの表のフォーマットに流し込んで
1人づつ印刷したいのですが。

お分かりの方いらっしゃいました教えてください。
どうぞ宜しくお願い致します。

Aベストアンサー

イメージはわかるが、エクセルに差込印刷の機能はありません。
ワードなどと違ってA.X氏1人分書類シート作成、B印刷、Aのシートををy氏分のデータでシート内容(セル)を置き換え、印刷、の繰り返しをします。
ーー
例データ Sheet1 A1;D3
連番氏名住所品物
1山田 三郎東京都江東区かばん
2植田 健横浜市港北区帽子
A列はこのたび連番を振りました。
Sheet2   に送り状の書式を体裁よく作ります。
H1セル(どこでも良いが、下記のVLOOKUPの式は変わる)

送り状

住所X
氏名Y

品物Z

上記の品をお送り申し上げます。
ご査収ください

以上
Xの場所のセルに =VLOOKUP($H$1,Sheet1!$A$1:$D$3,2,FALSE)
Yの場所のセルに =VLOOKUP($H$1,Sheet1!$A$1:$D$3,3,FALSE)
Zの場所のセルに =VLOOKUP($H$1,Sheet1!$A$1:$D$3,4,FALSE)

---
結果

送り状

住所山田 三郎
氏名東京都江東区

品物かばん

上記の品をお送り申し上げます。
ご査収ください

以上
ここで
VBE画面で標準モジュールに
Sub test01()
For i = 1 To 2 '人数分
Range("H1") = i
Range("A1:G20").PrintOut '印刷範囲は各人同じとする
Next i
End Sub
を張り付け、実行する。
山田、植田分の紙が2枚印刷されました。
これは質問者はVBAの経験も無いでしょうと、最低限にしてあります。
VBAを勉強してください。
別ブックにある名簿を対象などは複雑になるので避けています。

イメージはわかるが、エクセルに差込印刷の機能はありません。
ワードなどと違ってA.X氏1人分書類シート作成、B印刷、Aのシートををy氏分のデータでシート内容(セル)を置き換え、印刷、の繰り返しをします。
ーー
例データ Sheet1 A1;D3
連番氏名住所品物
1山田 三郎東京都江東区かばん
2植田 健横浜市港北区帽子
A列はこのたび連番を振りました。
Sheet2   に送り状の書式を体裁よく作ります。
H1セル(どこでも良いが、下記のVLOOKUPの式は変わる)

送り状

住所X
氏名Y

品物Z

...続きを読む

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&Aを見た人がよく見るQ&A

人気Q&Aランキング