ルイスは「04C18」の形式で日付を受け取ります。最初の2桁は日、真ん中の文字は月(Aは1月、Bは2月、Cは3月など)、最後の2桁は年。彼は、これらのコード化された日付を、Excelで使用できる通常の日付値に変換する必要があります。

この日付形式を非標準にする最大の理由は、月にアルファベット文字を使用することです。したがって、最初に行うことは、その文字を数値の月に変換する方法を理解することです。これは、CODE関数が役立つ場合がある場所です。文字のASCIIコードを返します。文字Aは値65を返し、Bは66を返します。したがって、文字を1から12までの数字に変換するために必要なのは、次のようなものを使用することだけです。

=CODE(UPPER(MID(A1,3,1)))-64

UPPER関数は、コードで月の小文字が許可されている場合に備えて、月の文字を大文字に変換するために使用されます。

月を変換する別の方法は、次のようにFIND関数を使用することです。

=FIND(UPPER(MID(A1,3,1)),"ABCDEFGHIJKL",1)

この手法は、アルファベット文字列内の文字を検索し、その文字列内の1〜12のオフセットを返します。このアプローチは、月を表す文字が連続していない場合、または降順である場合に使用するのが最適です。

次に、月を変換するいずれかの方法をDATE関数内で使用して、年、月、および日に基づいて日付を返すことができます。この例ではCODEメソッドを使用していますが、FINDメソッドも同じように簡単に使用できます。

=DATE(2000+RIGHT(A1,2),CODE(UPPER(MID(A1,3,1)))-64,LEFT(A1,2))

コード化された日付に2000より前の日付が含まれる可能性がある場合は、DATEVALUE関数を使用して日付をまとめると、より正確な結果が得られます。

=DATEVALUE(CODE(UPPER(MID(A1,3,1)))-64&"/"&LEFT(A1,2)&"/"&RIGHT(A1,2))

DATEVALUEアプローチを使用する場合は、数式が日付のシリアル番号を返すこと、および表示したい日付を表示するようにセルをフォーマットする必要があることを理解してください。

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

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