2

フィールドの階層に基づいて値を返す簡単な計算を書きたいと思います。

最初のフィールドが空の場合は2番目のフィールドを返し、2番目のフィールドが空の場合は3番目のフィールドを返します。次のことを試しましたが、最初の値しか返されません。

If (IsEmpty (Field1 = 1) ; Field2;
If (IsEmpty (Field2 = 1); Field3; Field1))

次を使用して、最初または3番目の値を表示することができました。

If (IsEmpty (Field1) &
If (IsEmpty (Field2); Field3; Field1))

しかしもちろん、これはまったく表示Field2されません。

次のようなものはありますか?

If (IsEmpty (Field1) &
If (IsEmpty (Field2); Field3; Field1, Field2))

どちらが使えますか?関数内のパラメーターが多すぎるため、これは明らかに機能しません。

どんな助けでも大歓迎です!:-)

4

2 に答える 2

4

計算をもう少しネストする必要があります:

Case ( 
IsEmpty ( Field1 & Field2 ) ; Field3 ;
IsEmpty ( Field1 ) ; Field2 ;
Field1
)

あなたの例では、どちらIsEmpty (Field1 = 1)がテストさField1=1れますか。これはTrueまたはFalseのいずれかですが、空になることはありません。また、&論理が必要な場合は、連結演算子を使用して、and代わりに使用します。

于 2010-01-15T01:13:09.777 に答える
0

これをより透過的な方法で書き直すことができます。

Case(
    not isEmpty(Field1); Field1;
    not isEmpty(Field2); Field2;
    Field3
)

(これは、将来的に保守/読み取りがはるかに簡単になります)

于 2012-11-06T12:38:41.800 に答える