Excelで使用するデータの一部は、オフィスの大規模システムからの出力として開始される場合があります。大規模なシステムで使用される日付形式は、Excelによって完全に誤解される場合があります。たとえば、出力はyyyydddttttの形式で日付を提供する場合があります。ここで、yyyyは年、dddは年の序数日(1から366)、ttttは24時間制に基づく時刻です。一見すると、そのような日付をExcelで使用できる日付に変換する方法がわからない場合があります。

解決策に取り組む方法はたくさんあります。ただし、おそらく最良の式は次のとおりです。

=DATE(LEFT(A1,4),1,1)+MID(A1,5,3)-1+TIME(MID(A1,8,2),RIGHT(A1,2),0)

この数式は、最初に指定された年の1月1日の日付のシリアル番号を計算し、次にその日付に正しい日数を追加します。

次に、数式は、提供された内容に基づいて適切な時間を計算します。

このような式が呼び出されると、結果は日付のシリアル番号になります。

これは、日付形式を表示するためにセルをフォーマットする必要があることを意味します。

このアプローチは、最初の情報に意味がある場合は問題なく機能します。たとえば、dddが実際に1から366の範囲内にある場合、またはttttが適切にフォーマットされた24時間の時間表現である場合、常に期待される結果が得られます。範囲外の可能性がある元のデータが予想される場合、最善の解決策は、元のデータを分解し、各部分に提供された値を確認するカスタム関数を(マクロを使用して)作成することです。

データが範囲外の場合、関数はワークシート内で簡単に検出できるエラー値を返す可能性があります。

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

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