式の使用時の 2 つの一般的なエラー
Analytics で式を初めて使用するユーザーは、式の作成時に次のような 2 つの一般的なエラーに遭遇することが多いでしょう。
-
式でデータ型と操作が適合していないと、"式の型が一致しません" エラー メッセージが表示されます。
-
論理式のみが有効とされる状況または場所で、文字、数値または日付時刻の式が作成されると、" '式' タイプは不正です" または "論理式が必要です" エラー メッセージが表示されます。
"式の型が一致しません"
式を有効にするには、 式の値のデータ型を、実行してる計算や操作に適合させる必要があります。たとえば、2 つの文字フィールドで掛け算したり、2 つの日付フィールドで割り算したりすることはできません。そのようなことを行うと、"式の型が一致しません" エラー メッセージが表示され、処理が実行されません。
以下に示す方法を使用すると、このエラーを回避することができます。ただし、特定の状況によっては、これらが適切な解決法とならないこともあります。
-
値は同じままだが、操作を変更する
たとえば、 2 つの時刻フィールドを加算することはできないので、終了時刻 + 開始時刻は不正です。しかし、一方の時刻からもう一方の時刻を減算することはできるので、終了時刻 - 開始時刻は有効です。
-
操作は同じままだが、値の 1 つ以上を変更する
たとえば、文字値から数値を減算することはできないので、DATE( ) - 2 は不正です。これは、パラメーターを使用しない DATE( ) 関数は現在のオペレーティング システムのシステム日付を文字値として返すからです。ただし、日付値から数値を減算することはできるので、TODAY( ) - 2 は有効です。これは、TODAY( ) 関数が現在のオペレーティング システムのシステム日付を日付値として返すからです。
-
操作は同じままだが、値の 1 つ以上のデータ型を変更する
たとえば日付と数値を比較することはできないので、Finish_Date > 20141231 は不正です。しかし、日付と日付は比較できるので、Finish_Date > `20141231` は有効です。逆引用符(`)を追加することで 、数値リテラルが日付リテラルに変更されます。
場合によっては、関数を使用して式内の値またはフィールドを、式に適したデータ型に変換することもできます。変換関数の詳細については、フィールドの一致を参照してください。
" '式' タイプは不正です" または "論理式が必要です"
式の戻り値は、その状況に対して適正なデータ型である必要があります。式が必要とされるアプリケーションの多くの領域で、その戻り値は特定のデータ型でなければなりません。必要とされるデータ型でない場合は " '式' タイプは不正です" または "論理式が必要です" エラー メッセージが表示され、処理が実行されません。式が有効であったとしても、式がその状況に適さない不正なデータ型を返す場合は、Analytics でエラー メッセージが表示されます。
たとえば、Quantity_on_Hand * Unit_Cost という式の場合、それを演算フィールドの作成に使用するのであれば、一般的には有効なので、期待どおりに動作し、数値合計が得られます。しかし、同じ式でも、それをビュー フィルターの作成時、または IF ステートメントで使用する場合は、True または False(T または F)の論理値を返す必要があるのでエラーが返されます。その式を Quantity_on_Hand * Unit_Cost > 5000 に変更すると、フィルターや IF ステートメントで正しく動作します。
どの場所から式ビルダーを開くかが、重要なポイントです。[フィルター]テキスト ボックスの右側にある[ビュー フィルターの編集] をクリックする、またはさまざまな場所で存在する[If]ボタンをクリックした場合、式ビルダーでは論理式を作成する必要があります。