[[20051107132213]] 『日付』(名無し1107) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『日付』(名無し1107)

 日付のことで教えていただきたいのですが・・・・

 ・・・・例えば・・・・

        A                   B                  C
 1      年月日      有効期限       提出期限
 2 平成13年3月31日    平成18年3月30日    平成18年2月28日 

 こんな感じの表を作るとして、B列にはA列の5年後の一日前の日を、
 C列にはA列の5年後の1ヶ月前の日を出したいのですが、
 何か計算式はないでしょうか・・・・。

 A列には130331というように、6桁の数字をいれてあります。


 外してたら、スイマセン

 B2 =DATE(YEAR(A2)+5,MONTH(A2),DAY(A2)-1)
 C2 =DATE(YEAR(A2)+5,MONTH(A2),DAY(A2)+1)-DATE(,2,1)

 日付の管理は、閏年があるから難しい・・・
 検証不足だったら、ごめんなさい〜

 追伸:
   折角ですから、ニックネームも入れましょ^^

 (キリキ)(〃⌒o⌒)b


ありがとうございます。

せっかくなんですけど・・・・うまくいきません・・・・。

年が変わらず、月が変わってしまう・・・・。

うーん、自分でもやってみたんですけどわからなくて・・・・。


 ありゃりゃ、、、
 また、失敗!

 >A列には130331というように、6桁の数字をいれてあります。
 コレを見ていませんでした。。。

 こちらで如何でしょう?

 B2 =DATE(1988+MID(A2,1,2)+5,MID(A2,3,2),MID(A2,5,2)-1)
 C2 =DATE(1988+MID(A2,1,2)+5,MID(A2,3,2),MID(A2,5,2)+1)-DATE(,2,1)

 ※年度は、「平成」のみの対応です。
  西暦との誤差「1988」分を足しています。

 (キリキ)(〃⌒o⌒)b


 細かい仕分けが良く解ってないので外していたらすみません。

 B2
 =DATE(YEAR(A2)+5,MONTH(A2),DAY(A2))-1
 C2
 =EDATE(B2,-1) ツールアドイン→分析ツールにチェック
 BJ


キリキさん、ありがとうございます。

だいたいうまくいったのですが・・・・。

C列で、13年3月31日は18年2月28日で良かったし

13年4月17日は18年3月17日になって良かったのですが

13年5月25日は18年4月24日になったしまったりで

たまに1ヶ月の1日前になってしまうところがあるのですが、

これはなんでなんでしょうか?????


 やっぱり検証不足か・・・
 日付は難しいですね〜

 ここは、BJさんの仰っている方法で如何でしょう?
 C2 =EDATE(B2,-1)

 (キリキ)(〃⌒o⌒)b

むずかしいですね・・・・。

BJさんのにすると、最初のはいいのですが、

あとのがすべて1ヶ月の1日前になってしまいます・・・・。


 EDATE関数を使っていいなら、下記でどうでしょう?
 B1セル =EDATE(A1,5*12)-1
 C1セル =EDATE(A1,5*12-1) 
 第二引数は月数ですので、5年後は 60 とすればいいのですが、
 年数をわかりやすくするため、5*12 としています。
(純丸)(o^-')b


 衝突〜!!

 これでは如何でしょう?

 B2 =DATE(1988+MID(A2,1,2)+5,MID(A2,3,2),MID(A2,5,2)-1)
 C2 =EDATE(DATE(1988+LEFT(A2,2),MID(A2,3,2),MID(A2,5,2)),59)

 A1が、シリアル値に出来るなら純丸さんの方法がスッキリしていますね^^
 (キリキ)(〃⌒o⌒)b


 こんな関数見たくない!! って感じですが
 =IF(ISERROR(--(1988+MID(A2,1,2)+5&"/"&MID(A2,3,2)-1&"/"&MID(A2,5,2))),
    IF(ISERROR(--(1988+MID(A2,1,2)+5&"/"&MID(A2,3,2)-1&"/"&MID(A2,5,2)-1)),
      IF(ISERROR(--(1988+MID(A2,1,2)+5&"/"&MID(A2,3,2)-1&"/"&MID(A2,5,2)-2)),
           --(1988+MID(A2,1,2)+5&"/"&MID(A2,3,2)-1&"/"&MID(A2,5,2)-3),
           --(1988+MID(A2,1,2)+5&"/"&MID(A2,3,2)-1&"/"&MID(A2,5,2)-2)),
      --(1988+MID(A2,1,2)+5&"/"&MID(A2,3,2)-1&"/"&MID(A2,5,2)-1)),
    --(1988+MID(A2,1,2)+5&"/"&MID(A2,3,2)-1&"/"&MID(A2,5,2)))
 C列用です。
 ・・・・できますか?

 (HANA)

(追記)

 ちなみに、(キリキ)さんの式を参考にさせてもらっているので
 B列に
 B2 =DATE(1988+MID(A2,1,2)+5,MID(A2,3,2),MID(A2,5,2)-1)
 を使わせてもらうと、一応似た式が並びます。
 EDATE関数は便利なんですけどね、ここは根性で使わずに。(笑)

 (HANA)

(訂正)

 上の式では1月の時にエラーが出てしまうので
 =IF(--MID(A2,3,2)=1,
      --(1988+MID(A2,1,2)+4&"/12/"&MID(A2,5,2)),
      IF(ISERROR(--(1988+MID(A2,1,2)+5&"/"&MID(A2,3,2)-1&"/"&MID(A2,5,2))),
        IF(ISERROR(--(1988+MID(A2,1,2)+5&"/"&MID(A2,3,2)-1&"/"&MID(A2,5,2)-1)),
           IF(ISERROR(--(1988+MID(A2,1,2)+5&"/"&MID(A2,3,2)-1&"/"&MID(A2,5,2)-2)),
             --(1988+MID(A2,1,2)+5&"/"&MID(A2,3,2)-1&"/"&MID(A2,5,2)-3),
             --(1988+MID(A2,1,2)+5&"/"&MID(A2,3,2)-1&"/"&MID(A2,5,2)-2)),
           --(1988+MID(A2,1,2)+5&"/"&MID(A2,3,2)-1&"/"&MID(A2,5,2)-1)),
        --(1988+MID(A2,1,2)+5&"/"&MID(A2,3,2)-1&"/"&MID(A2,5,2))))
 月を判断するIF関数を追加です。
 度々申し訳ないです。

 (HANA)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.