日付変換の数式またはiserrorを使用するExcelの数式

日付変換の数式またはiserrorを使用するExcelの数式

背景: データは、ヨーロッパ形式 (DD/MM/YYYY) の日付を持つ DB から取得されます。「作成」列 (列 A) にも 24 時間形式のタイムスタンプがあります。その隣には「識別」列 (列 B) があり、日付のみが記載されていますが、「作成」日付と同じではない可能性があります。

出力は、米国形式の日付のみ (タイムスタンプなし) を含む新しい「作成日」列にする必要がありますが、その方法はわかっています。LEFT を使用して、新しい列にヨーロッパの日付のみを取得します (列 C)。次に、別の新しい列で =Date(value(right(A2,4)),value(mid(A2,4,2)),value(left(a2,2))) を使用して、日付を米国形式 (MM/DD/YYYY) に並べ替えます (列 D)。

上記はすべて順調です。ここで問題が起こります。「識別された」データに対して同じ日付変換を独自の列 (列 E) で行う必要があります。すべてのデータ行に「識別された」日付があるわけではありません。

「識別」日付がない場合、日付数式でエラー (#VALUE として表示) を認識し、変換された「作成」日付をコピーしたいと思います。

IF、OR、IsError ステートメントを試してみましたが、有効なものが見つからないようです。

ご提案がありましたら、ぜひお聞かせください。また、=If(iserror) を使用して別の列 (F) を作成し、変換された「Identified」列を読み取り、エラーの場合は変換された「Created」日付を取得し、エラーでない場合は変換された「Identified」日付を取得しようとしましたが、空のセルが生成されます。

簡単なサンプルの Excel シートを作成しましたが、Excel ファイルをアップロード/添付する場所のオプションが表示されません。

数式にコメントが付けられたサンプルワークブックの画像

答え1

セルの式E2...

IF を使用した古い方法

=IF(ISBLANK(B2),D2,DATE(VALUE(RIGHT(B2,4)),VALUE(MID(B2,4,2)),VALUE(LEFT(B2,2))))

IFERRORを使用した現代的な方法

=IFERROR(DATE(VALUE(RIGHT(B2,4)),VALUE(MID(B2,4,2)),VALUE(LEFT(B2,2))),D2)

B2が空の場合、DATEにある関数はE2エラーを生成します。

従来の方法では、IF関数を使用してセルB2が空かどうかをテストし、空の場合は、セルの内容がそのまま結果として返されますD2。テストが失敗した場合、IF関数は関数を使用して必要な結果を単純に計算しますDATE

現代的な方法では、DATEエラーの原因は考慮されず、エラーがあるかどうかだけが考慮されます。エラーがない場合、IFERROR 関数は最初の引数 (関数) を使用しDATE、エラーがある場合は 2 番目の引数 ( D2) を結果として使用します。

最新の方法の方が望ましいです。ランダムなテキストが含まれているなどの他のエラーは、E2 の機能B2で問題を引き起こします。バージョンでは、このようなエラーは適切に処理されませんが、DATEIFIFERROR

関連情報