Hirenは、ワークシートに一連の日付を持っています。彼は月をインクリメントして、(たとえば)8月が日付の9月になるようにします。

彼は、検索と置換を使用してこれを行う方法があるかどうか疑問に思います。

実際には、検索と置換を使用して変更を行うことができます。たとえば、セル範囲に表示される日付が8/1/19から8/31/19であると仮定します。 「8 /」(引用符なし)を検索して、「9 /」(ここでも引用符なし)に置き換えることができます。

ただし、このアプローチにはいくつかの問題があります。まず、おそらくやりたくない変更を加えることになります。たとえば、元の値に8 /のインスタンスが2つあるため、8/18/19は9/19/19に変更されます。次に、8/31/19を9/31/19に変更すると、9/31は有効な日付ではないため、Excelは変換された日付を日付ではなくテキストとして扱います。さらに、セル内の日付の形式に基づいて、検索対象と置換対象を変更する必要があります。

より良い解決策は、数式を使用してインクリメントを行うことです。この目的で使用する関数は、次のようにEDATEです。

=EDATE(A1,1)

この数式は、月の増分に最適です。月をインクリメントした結果、無効な日付が発生した場合に、関数がどのように機能するかを理解する必要があります。たとえば、元の日付が8/31/19で、数式を使用すると、9月の最後の有効日である9/30/19が返されます。

代わりに、インクリメントしようとしたときにエラーを確認したい場合は、数式を調整して次のように補正できます。

=IF(DAY(EDATE(A1,1))<DAY(A1),NA(),EDATE(A1,1))

この数式は、変換された日付の日付を元の日付の日付と比較し、それらが同じでない場合は、#N / Aエラーを返します。

代わりに、無効な日付を翌月に「フォールオーバー」させたい場合(8/31/19をインクリメントすると、10/1/19になるように)、そうでない別の数式を使用できます。 EDATEに依存します:

=DATE(YEAR(A1),MONTH(A1)+1,DAY(A1))

この式は、興味深いことに、「年末のラップ」を正しく処理します。したがって、A1の元の日付である12/1/19は13/1/19になり、Excelによって1/1/20として変換されます。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(9265)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。