2016-05-17 18 views
0

日付がテキスト形式の列があり、欠損値は-とマークされています。IsErrorの奇妙な動作

は私が0に欠損値を変換する、現在までその列を変換式(SQL、ないVBA)を作成しよう:

  • この式は、期待通りに動作します:
    IIf([column]="-",0,CDate([column])

  • しかし、より一般的なものを作るようにしようとすると、非日付入力をすべて探して、私は#Errorを返します。
    IIf(IsError(CDate([column])),0,CDate([column])

ここに何がありますか?

答えて

2

私が試してみて、代替手段としてisDate()を使用します。式は変更されているように私はiif()に周りの真と偽の一部を入れ替えている

IIf(IsDate([column]),CDate([column],0) 

注意してください。

日付の唯一の代替手段が、最初の式で使用したダッシュ-シンボルであれば、私はIsNumeric()関数も機能すると信じています。

+0

私は 'IsError'の式と同じエラーを出しています:( –

+0

' isNumeric'は機能しませんか? – LiamH

+0

@MátéJuhász:最初のCDate?IIf(IsDate([column] ... ' – Andre