[[20190115161541]] 『指定した年月日が末日か判定する方法』(けんたろう) ページの最後に飛ぶ

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

 

『指定した年月日が末日か判定する方法』(けんたろう)

a列に
例: 20150131、20180210、20180729、20190228
という表示形式で約1000行ほど入っているのですが
それが月末日(月の最終日)だった場合、その隣のb列に○をつける方法はありますでしょうか?

どなたかお知恵を貸していただけたらと思います。
よろしくお願いいたします。

< 使用 Excel:Excel2007、使用 OS:Windows7 >


 >という表示形式で

 表示形式で、ということは実際はシリアル値だけど表示が「yyyymmdd」になっているのですか?
 それとも単純に8桁の数値なんですか?
(コナミ) 2019/01/15(火) 16:24

コメントありがとうございます。
手打ちしてたので、単純に8桁の数値になっていると思われます。

(けんたろう) 2019/01/15(火) 16:27


 A2セルからデータがあるとして、B2セルに
 =IF(MID(A2,5,2)*1=MONTH(TEXT(A2,"0-00-00")+1),"","○")
 と入力して下へフィルコピーではどうか?

(ねむねむ) 2019/01/15(火) 16:36


Sub main()
    Dim c As Range, d As Date
    For Each c In Range("A:A").SpecialCells(2)
        d = DateSerial(Left(c.Value, 4), Mid(c.Value, 5, 2), Right(c.Value, 2))
        If Month(d + 1) <> Month(d) Then
            c.Offset(, 1).Value = "○"
        Else
            c.Offset(, 1).Value = ""
        End If
    Next c
End Sub
(mm) 2019/01/15(火) 16:37

 シリアル値にすることで問題がないのであれば、A列を選択→データタブ→区切り位置
 →次へ→次へ→右上の日付を選択→完了

 でシリアル値になります。
 その後B列に

 =IF(MONTH(A1)=MONTH(A1+1),"","◯")

 とかでは如何でしょうか?
(コナミ) 2019/01/15(火) 16:38

 =IF(ISERR(TEXT(A1+1,"0-00-00")*1),"○","")

 でも。
(GobGob) 2019/01/15(火) 16:39

 コナミさん方式でシリアル値に変換した場合は
 =IF(A1=EOMONTH(A1,0),"○","")
 でも。
(ねむねむ) 2019/01/15(火) 16:46

皆様ご回答ありがとうございます!
同じようなブックが15個ほどあったので
今回はmmさんのvbaにて対応したいと思います。
今後も同じようなことが出てきそうなので計算式も助かります。
ありがとうございました!
(けんたろう) 2019/01/15(火) 16:57

コメント返信:

[ 一覧(最新更新順) ]


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