
背景: データは、ヨーロッパ形式 (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
で問題を引き起こします。バージョンでは、このようなエラーは適切に処理されませんが、DATE
IF
IFERROR