• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:特定期間の計算についてご教授ください)

特定期間の計算についてご教授ください

このQ&Aのポイント
  • A1セルに入れた8桁の数字(日付YYYYMMDD)の文字列が入力されている場合、右から1.2桁の数字DDが1から15の場合、MM(当月)の2ヶ月先の末日を求め、右から1.2桁の数字DDが16から31の場合、MM(当月)の3ヶ月先の末日を求める。試した式でうまくできない場合があり、解決策を求めています。
  • 質問者はA1セルに入力された8桁の数字(日付YYYYMMDD)の文字列を処理しようとしています。具体的には、右から1.2桁の数字DDが1から15の場合、MM(当月)の2ヶ月先の末日を求め、右から1.2桁の数字DDが16から31の場合、MM(当月)の3ヶ月先の末日を求めたいと考えています。しかし、試した式ではうまくできないため、解決策を求めています。
  • A1セルに入力された8桁の数字(日付YYYYMMDD)の文字列を処理する方法についての質問です。具体的には、右から1.2桁の数字DDが1から15の場合、MM(当月)の2ヶ月先の末日を求め、右から1.2桁の数字DDが16から31の場合、MM(当月)の3ヶ月先の末日を求めたいと考えています。試した式ではうまくできなかったため、解決策を求めています。

質問者が選んだベストアンサー

  • ベストアンサー
noname#204879
noname#204879
回答No.4

入力値が8桁整数なら、求める2、3ヶ月先の日付も8桁整数をご希望なンでしょ?(首尾一貫!) No.1の方のアイデアをお借りすれば、次のようになろうかと。 =VALUE(TEXT(EOMONTH(TEXT(A1,"0-00-00"),IF(RIGHT(A1,2)-16<0,2,3)),"yyyymmdd"))

100POINT
質問者

お礼

無事問題解決しました ほんとに助かりました、ありがとうございました

その他の回答 (4)

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.5

>A1セル「20140204」を入力 >B1セル >B2セル >B3セル B1、B2、B3に共通する誤りは次の通りです。 MID(A1,7,2)<=15 → "04"<=15 → FALSE 文字列の"04"は全ての数値より大きいと判定されますので論理式として不適切です。 VALUE(MID(A1,7,2))<=15 または MID(A1,7,2)*1<=15 に修正してください。 B1の式はIF関数の第2引数、第3引数についても文字列を数値化せずに計算していますのでA1セルの文字列を数値に変換する必要があります。 EOMONTH(A1,2) → #NUM! B2セルの式は評価に値しません。 B3セルの式は第1引数(論理式)を修正すれば目的に合います。 但し、結果の値はシリアル値なので表示形式を日付にしないと判断できません。

100POINT
質問者

お礼

文字列と数値の混同をご指摘いただきありがとうございます なかなか目的の条件に関数をくっつけただけではうまくいきませんでしたが、ご親切に意味を教えていただき納得することができました。 ご教授ありがとうございました。

  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.3

No.2です。 次のサイトを参考にしてください。 日付と時刻のシリアル値とは http://www.officepro.jp/excelfunc/date/index0.html

  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.2

日付がシリアル値で入力されているのではないですか シリアル値は、1900年1月1日が基準日となりシリアル値は「1」となります。 ここから1日経過することにシリアル値は1ずつ増加していきます。 例えば1900年1月2日のシリアル値は2です。 したがって、2014/02/04のシリアル値は、41674となり 計算がうまくできないのです。 B1に =IF(A1="","",IF(DAY(A1)<=15,EOMONTH(A1,2),EOMONTH(A1,3))) とし、下方にオートフィルするとうまくいきますよ

100POINT
質問者

お礼

ご教授ありがとうございました

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

=EOMONTH(TEXT(A1,"0-00-00"),IF(RIGHT(A1,2)-16<0,2,3)) などのように。 参考にしてください: ○数値と文字列は別物だという事 ○20130204という数値から正しく年月日を計算する事 ○RIGHT(A1,2)という「文字列」と数値の15(16)の大小関係を正しく計算する事 ○2と3を仕分けるIF文を作成して利用する事

100POINT
質問者

お礼

ご教授ありがとうございました

関連するQ&A

専門家に質問してみよう