
No.3ベストアンサー
- 回答日時:
A1に日付があるとして、月末日なら"月末"と表示、それ以外は日にちを表示として
=IF(A1=DATE(YEAR(A1),MONTH(A1)+1,0),"月末",DAY(A1))
「ツール」「アドイン」で「分析ツール」にチェックが必要ですが、こんな方法も
=IF(A1=EOMONTH(A1,0),"月末",DAY(A1))
http://www.relief.jp/itnote/archives/000491.php
ありがとうございます。
いろいろ方法があるのですね。
最初にNo.4さんの方法(貴法の2つ目と同じですね)に気づき、それを使わせて頂いたので、お礼を言うのが遅くなりました。申し訳ありません。
No.8
- 回答日時:
NO7です。
大変申し訳ございません。コード間違えてました。以下の通りです。Function 月末判定(hiduke As Date) As String
Dim lastdays As Variant '月末格納
Dim toshi As Long '年格納
Dim tuki As Long '月格納
Dim niti As Long '日格納
lastdays = Array(0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
toshi = year(hiduke)
tuki = month(hiduke)
niti = day(hiduke)
If (toshi < 1) Or (niti < 1) Or (niti > 31) Or (tuki < 1) Or (tuki > 12) Then
月末判定 = "値が間違ってます。"
Else
'-----------------------------------------------------------------
'↓↓↓↓↓↓うるう年の時配列を、うるう年用に変える。↓↓↓↓↓↓
If tuki = 2 Then
If (toshi Mod 400 = 0) Or (toshi Mod 4 = 0) And (toshi Mod 100 <> 0) Then
lastdays(2) = 29
End If
End If
'-----------------------------------------------------------------
If niti = lastdays(tuki) Then
月末判定 = hiduke & "は月末です。"
Else
月末判定 = hiduke & "は月末でない。"
End If
End If
End Function
ありがとうございます。
いろいろ高度な方法があるのですね。
今回はNo.3~No.6で教えて頂いた通りExcelの関数が使えるとのことですので、そちらで処理することにしました。
懇切丁寧なご指導ありがとうございました。
No.7
- 回答日時:
VBAで出来ますよ。
A1に2010/12/31がある場合
セルをクリックしてダブルクリックして、=月末判定(A1)とするか=月末判定("2010/12/31")
として下さい。月末判定できます。フォーマットをもっと詳しく教えてくれたら、もっとダイレクトにできます。
以下のコードをVBE(alt F11 で表示されます。)に貼り付けてください。
Function 月末判定(hiduke As Date) As String
Dim lastdays As Variant '月末格納
Dim toshi As Long '年格納
Dim tuki As Long '月格納
Dim niti As Long '日格納
lastdays = Array(0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
toshi = year(hiduke)
tuki = month(hiduke)
niti = day(hiduke)
If (toshi < 1) And (niti < 1) And (niti > 31) And (tuki < 1) And (tuki > 12) Then
MsgBox "値が間違ってます。", vbCritical
Else
'-----------------------------------------------------------------
'↓↓↓↓↓↓うるう年の時配列を、うるう年用に変える。↓↓↓↓↓↓
If tuki = 2 Then
If (toshi Mod 400 = 0) Or (toshi Mod 4 = 0) And (toshi Mod 100 = 0) Then
lastdays(2) = 29
End If
End If
'-----------------------------------------------------------------
If niti = lastdays(tuki) Then
月末判定 = hiduke & "は月末です。"
Else
月末判定 = hiduke & "は月末でない。"
End If
End If
End Function
No.6
- 回答日時:
A1にある「年月日」があるとすると
=IF(MONTH(A1+1)=MONTH(A1),"","月末日")
などのようで。
#その日の次の日(+1した日)が翌月なら,その日は月末日です。というだけの計算です。
No.4
- 回答日時:
こんばんは!
日付がはいるセルに「ある言葉」を表示することはできませんので、
↓の画像のようにA2セルに日付を入力した場合、月末なら「月末」と表示させる方法です。
B2セルに
=IF(A2=EOMONTH(A2,0),"月末","")
(エラー処理はしていません)
という数式を入れています。
これでA2セルの日付を色々入れてみてください。
月末の場合だけB2セルに「月末」と表示されます。
尚、当方使用のExcel2003以前のバージョンでは
EOMONTH関数を使用するにあたって
メニュー → ツール → アドイン → 「分析ツール」にチェックを入れておく必要があります。
参考になれば良いのですが・・・m(_ _)m

No.2
- 回答日時:
月末日は年と月によって変わる。
その年と月はどうするのか質問に書かないと。A1セルに年月日が入っているとして、そのセルの値は日付シリアル値(注)として、その部分はA1セルの年と月を使うなら
B1セルに=IF(A1=DATE(YEAR(A1),MONTH(A1)+1,0),"月末","")
と入れて下方向に式を複写する。
これもエクセル関数の本を勉強すれば、本に書いてある手法ですよ。
例
A列 B列
2011/8/1
2011/8/30
2011/8/31月末
2011/9/30月末
(注)エクセルの日付シリアル値について知らないのでないかとおもう。Googleででも、「日付シリアル値」で照会し勉強のこと。非常に大切なことです。
もしA列に文字列日付ででも入っていると、簡単にはいかないし、実例の説明でもないと回答できない。
ありがとうございます。
No.4、No.5、No.6などの方法が、あらゆる年のどの月末にもユニバーサルに使えて便利ですので、それらを使わせて頂くことにしました。
No.1
- 回答日時:
ifについては使えると仮定しまして、
式の中で、
月末日を取得してその結果と日付がイコールであれば月末と判定し、ある言葉を表示する
という流れになるかと思います。
同じ式の中で作ると難しいようであれば、作業用列をひとつ作って、
そこに月末日を表示して、日付セルと比較すればわかりやすいかと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの数式で教えてください。 3 2023/04/17 09:25
- Excel(エクセル) エクセルについて教えてください。 1 2023/03/03 08:38
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/01/10 09:15
- Excel(エクセル) 下記エクセルの式がなぜこうなるのか理由が知りたいです。 6 2022/08/20 00:43
- Excel(エクセル) エクセルで日付が入っているセルを一定の法則に従って違うセルに表示したい 2 2022/04/04 17:16
- Excel(エクセル) エクセルについて教えてください。 1 2022/12/26 09:01
- Excel(エクセル) Excelで2つのセルにある日付を参照させ期間として1つのセルに表示したいです。 例 c9セルに開始 3 2023/04/06 12:16
- Excel(エクセル) Excel ある日の45日後の計算 及び 3か月後の計算 6 2022/04/05 13:44
- Excel(エクセル) Excelヘルプの原文を表示する最速の方法(手順)には? 1 2023/08/11 11:30
- Excel(エクセル) Excel2019、2021の日付、曜日の表示について 2 2022/11/29 15:01
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルで月末、月初の判定をしたい。
Excel(エクセル)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
Excel:関数が入っているセルに対しての条件付き書式設定について質問です。 ①A1のセルに関数が入
Excel(エクセル)
-
-
4
Excelで8/26等の日付を全てその月の1日に一括変換したい場合
Excel(エクセル)
-
5
エクセルで、日付を入力すると、別のセルに文字を自動的に表示させるようにするには。
Excel(エクセル)
-
6
E列のセルに数値が入れば(空白でなければ)B列の同じ行のセルに色がつく
その他(Microsoft Office)
-
7
EXCELで直近の日付を抽出する関数
Excel(エクセル)
-
8
エクセルである行以下全部を削除する方法
Excel(エクセル)
-
9
日付だけを変更して印刷(Excel)
Excel(エクセル)
-
10
EXCELで○ヶ月を○年○ヶ月に変換したい。
Excel(エクセル)
-
11
エクセルで表示形式の時刻の「0:00」を表示しないようにするには?
Excel(エクセル)
-
12
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
13
Excelのセルにユーザー名を表示する方法
Excel(エクセル)
-
14
Excelで重複データの件数ではなく、何番目かを求める方法
Excel(エクセル)
-
15
エクセルファイルを開く時、常に同じシートから開くようにするには?
Windows Vista・XP
-
16
Excel 例A(1+9) のように番地のたし足し算の方法を教えてください
その他(Microsoft Office)
-
17
28日~31日が必要ない所を空白表示にする方法
Excel(エクセル)
-
18
リンク元の日付が空白の時リンク先セルも空白にしたい
Excel(エクセル)
-
19
excel:条件付き書式の適用範囲が変わる
Excel(エクセル)
-
20
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelに入力した個々の日付の数...
-
日付だけを変更して印刷(Excel)
-
エクセルでENTERを押すと数式が...
-
31:30:00が1900/1/1 7:30:0
-
入力後に日付順になるように自...
-
Excelで8/26等の日付を全てその...
-
Excelで半年後の日付を計算したい
-
【マクロ】A列にある、日付(本...
-
エクセルで数字列の間に『/』を...
-
excelで月末日を判定したい
-
エクセル関数で日付かどうかの...
-
エクセル 当番表の作り方 エク...
-
エクセルで1年後の月末を表示さ...
-
EXCELで直近の日付を抽出する関数
-
ファイルのオープン時に今日の...
-
WORDで翌日や翌々日の日付を表...
-
Excelで日付を4ケタで入力し、○...
-
日誌を作るため印刷時に日付を...
-
エクセルで○歳到達日を出したい
-
エクセルで日付入力欄を作成し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】A列にある、日付(本...
-
Excelに入力した個々の日付の数...
-
日付だけを変更して印刷(Excel)
-
Excelで半年後の日付を計算したい
-
エクセルでENTERを押すと数式が...
-
31:30:00が1900/1/1 7:30:0
-
入力後に日付順になるように自...
-
Excelで8/26等の日付を全てその...
-
エクセルで数字列の間に『/』を...
-
エクセル 当番表の作り方 エク...
-
エクセルで日付入力欄を作成し...
-
ファイルのオープン時に今日の...
-
エクセル関数で日付かどうかの...
-
エクセルで1年後の月末を表示さ...
-
EXCELで直近の日付を抽出する関数
-
エクセル グラフ 軸の日付表記...
-
excelで月末日を判定したい
-
WORDで翌日や翌々日の日付を表...
-
ワード差込について
-
日付の照合でFALSEになります。
おすすめ情報