- 締切済み
Excelの日付関数について教えてください
今使用しているExcelファイルでBの列に年月日が入っています。それをA列では年月だけ表示させたいのですがどのような関数を設定したらよいでしょうか? できればうちの会社が25日締めなのでたとえばB列の入力が2005/12/26から2006/1/25までの日付だとA列では06/01と表示させ、2006/1/26から2006/2/25までだと06/02と表示させたいのですがそういうことはできますでしょうか? <例> A B 06/01 2006/01/10 06/02 2006/02/15
- みんなの回答 (12)
- 専門家の回答
みんなの回答
- mshr1962
- ベストアンサー率39% (7417/18945)
もっと単純でいいと思うのですが... =TEXT(DATE(YEAR(B1),MONTH(B1)+1,DAY(B1)-25),"yy/mm") DATE関数は日が0の場合、前月の末日を表示します。 通常の月では1月前の表示になるので、月に+1することで要求を満たします。
[No.9 shikisaito]さんのご指摘、感謝します。 仰るとおり 12月26日~12月31日の分が間違った表示になりますね。私の検証不足をお詫びします。 それでは、次の式を提案します。と続けようと思ったら、既に[No.10 sige1701]さんが全く同じ式(2番目の方)を提示されていました。
- sige1701
- ベストアンサー率28% (74/260)
=TEXT(DATE(YEAR(B1),MONTH(B1)+(DAY(B1)>25),1),"yy/mm") A列の書式を、"yy/mm" と書式設定をし、 =DATE(YEAR(B1),MONTH(B1)+(DAY(B1)>25),1)
- shikisaito
- ベストアンサー率52% (257/491)
ANo.5のshikisaitoです。 ANo.8さんの数式は、年末処理がおかしくなります。 ...ということの気づいたと同時に、 私の数式=IF(DAY(B1)<26,TEXT(B1,"yy/mm"),TEXT(DATE(YEAR(B1),MONTH(B1)+1,DAY(B1)),"yy/mm"))も 月末処理がおかしくなる場合があります。 以下の数式に修正します。 =IF(DAY(B1)<26,TEXT(B1,"yy/mm"),TEXT(DATE(YEAR(B1),MONTH(B1)+1,1),"yy/mm"))
=TEXT(B1,"yy")&"/"&TEXT(MONTH(B1)+(DAY(B1)>24),"00")
- poohron
- ベストアンサー率59% (574/971)
#1です。 ありゃ、私も#4さんと同じくご質問をよく読んでいませんでした。 #1もお忘れ下さい。大変失礼致しました。
- Poer
- ベストアンサー率45% (72/157)
#4です。ご質問をよく見ていませんでした。#4は忘れてください。大変失礼いたしました。
- shikisaito
- ベストアンサー率52% (257/491)
=IF(DAY(B1)<26,TEXT(B1,"yy/mm"),TEXT(DATE(YEAR(B1),MONTH(B1)+1,DAY(B1)),"yy/mm")) =IF(DAY(B1)<26,TEXT(B1,"yy/mm"),TEXT(EDATE(B1,1),"yy/mm")) ただし、下の数式は、[ツール]-[アドイン]で[分析ツール]に チェックが必要です。
- Poer
- ベストアンサー率45% (72/157)
B1に日付があるとして、A1に、 =IF(B1="","",TEXT(B1,"yy/mm")) で可能です。
- Jodie0625
- ベストアンサー率30% (397/1288)
A1に、"yy/mm"の形式の書式設定をし、 =IF(DAY(B1)<26,B1,DATE(YEAR(B1),MONTH(B1)+1,DAY(B1))) の式を入れてください。 解説: ifの判定は、B1の日付をみて25日までだったら条件1、26日以降だったら条件2ということ。 条件1: B1の日付をそのまま書式を変更して表示させています。 条件2: B1の日付から一ヶ月後を求め、それを表示させています。
- 1
- 2