[[20170105160718]] 『一年の契約期間入力 〜と入力すると一年後の日付』(ヨンヨン) ページの最後に飛ぶ

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

 

『一年の契約期間入力 〜と入力すると一年後の日付を自動で表記したい』(ヨンヨン)

数か月ぶりに質問させていただきます。

一つのセルに「2017.1.10〜2018.1.09」というように1年の契約期間を入力しています。

〜と入力するとその後の2018.1.09を自動で表示するようにしたいのですが
どのように設定すればよろしいですか?

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

< 使用 Excel:Excel2013、使用 OS:Windows10 >


 >>自動で表示

 どこに自動で表示したいのですか?
 2017.1.10〜 と入力する、そのセルですか?

 数式で実現しようとしているなら、それは無理ですよね。
 数式が、そのセルに書かれていたとして、2017.1.10〜 と入力すると、数式が消えてしまいますから。

 やるなら、開始年月日のみをセルに入力。 別セルに、終了年月日を自動で作成する数式をいれる。
 必要なら、それら2つのセルを 〜 を挟んで連結して表示する式を、どこかに書いておく。
 あるいは、開始セルを参照して 別のセルに2017.1.10〜2018.1.09 と表示する。

 こういったことではないでしょうか?

(β) 2017/01/05(木) 16:26


 追加で。

 どうしても 1017.1.10 といったように ピリオド区切りで入力したいですか?
 ふつうに 1017/1/10 といった、標準的な日付入力だといやですか?

(β) 2017/01/05(木) 16:38


日付にピリオドを使うのはお薦めしませんが、とりあえず、マクロで無理矢理実現する例なぞ。

 Private Sub Worksheet_Change(ByVal Target As Range)
    Dim iw As Long
    Dim cw As String
    Dim dw As Date

    If Target.Address <> "$D$3" Then Exit Sub

    iw = InStr(Target.Value, "〜")
    If 0 < iw Then
        cw = Left(Target.Value, iw - 1)
        dw = CDate(Replace(cw, ".", "/"))
        Target.Value = cw & "〜" & Format(DateSerial(Year(dw) + 1, Month(dw), Day(dw) - 1), "YYYY.M.D")
    End If
 End Sub
(???) 2017/01/05(木) 16:41

 たとえば A1 に 1017.1.10 とピリオド区切りで入力するとして 
 B1 : =IF(A1="","",IFERROR(TEXT(SUBSTITUTE(A1,".","/"),"yyyy.mm.dd")&"〜"&TEXT(DATE(YEAR(SUBSTITUTE(A1,".","/"))+1,MONTH(SUBSTITUTE(A1,".","/")),DAY(SUBSTITUTE(A1,".","/"))-1),"yyyy.mm.dd"),""))

 とか。(素人なので長くなりました)

(β) 2017/01/05(木) 16:44


一つのセルです。

実は、ある一覧表にそのような設定がされており、コピーしようとしましたが、できませんでした。

出来れば、今まで通り、ピリオドで区切りたいと思います。

よろしくお願い致します。
(ヨンヨンj) 2017/01/05(木) 16:47


条件付き書式でも、何でも結構です。

よろしくお願い致します。
(ヨンヨン) 2017/01/05(木) 16:49


 >>一つのセルです。 

 なら、数式では無理です。マクロでどうぞ。

(β) 2017/01/05(木) 16:51


素人なもので、どこにどのように入力するのかわかりません。

もう少し、具体的に教えていただけますか。

お願い致します。
(ヨンヨン) 2017/01/05(木) 17:22


出来ました!

ありがとうございました!
(ヨンヨン) 2017/01/05(木) 17:32


コメント返信:

[ 一覧(最新更新順) ]


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