Loading

ATTR を使用した IIF 関数で、予期しない NULL の結果が返される

公開日: Oct 24, 2022
説明
IIF() 関数内の条件付きステートメントで ATTR() を使用すると、ビューでの詳細レベルによっては結果が Null になることがあります。

Cause

IIF() 関数を使用すると、ユーザーは条件付きステートメントが TRUE、FALSE、または (オプションで) NULL と評価されたときの特定の結果を指定できます。条件付きステートメントが NULL と評価され、結果が指定されていない場合、式は NULL を返します。

ATTR() 関数は、パーティション内の最初の値が最後の値と一致しない場合、NULL 値を返します。たとえば、[Region (地域)] がビューにない場合、ATTR( [Region] ) は NULL になります。条件付きステートメントの一部が NULL のときは、条件付きステートメント全体が NULL と評価されます。
解決策

オプション 1: ATTR() の代わりに MIN() を使用する

たとえば、次の計算
IIF( ATTR( [Regions] ) = "Central", SUM( [Sales] ), SUM( [Profit] ))

これを、次のようにできます。
IIF( MIN( [Regions] ) = "Central", SUM( [Sales] ), SUM( [Profit] ))

オプション 2: 条件付きステートメントが NULL を返したときの適切な結果を指定する

たとえば、次の計算
IIF( ATTR( [Region] ) = "Central", SUM( [Sales] ), SUM( [Profit] ))

これを、次のようにできます。
IIF( ATTR( [Region] ) = "Central", SUM( [Sales] ), SUM( [Profit] ), SUM( [Quantity] ))
ナレッジ記事番号

001473300

 
読み込み中
Salesforce Help | Article