除算(/)の数式項目では、分母が 0 (ゼロ)になるときに返す値も一緒に設定する

除算(/)の数式項目では、分母が 0 (ゼロ)になるときに返す値も一緒に設定する

数式は作っただけでは終わりではなく、最終的にユーザが使いやすい形になっていることだ大事です。今回は「ゼロで除算」問題、 Salesforceでの対処法です。
除算(/)の数式項目では、分母が 0 (ゼロ)になるときに返す値も一緒に設定する
6
除算(/)の数式項目では、分母が 0 (ゼロ)になるときに返す値も一緒に設定する
Admin
2020/11/02 15:54:53
何も知らずに画面を見ると「えっ⁉」と驚いてしまいますが、落ち着いて確認したら「そりゃそうだよね」ということがあります。
割合を確認する数式項目をご利用の方は、このような調整を行ってみたら、よりわかりやすい画面になりますよ。


状況

・「収入/売上」 という数式で、「収入率」を計算する数式項目がある。
ROUND(収入/売上,4)


・レコードページで参照すると項目に値が入っていないことがある。
すみません マルチ通貨有効の組織です


原因

数式項目で使用している「売上」項目自体も数式項目であり、「0」になることがある。0で除算するかたちになるため、値が帰らない。


対応策

数式がゼロで除算される場合があるときには、数式の分母が「0」かどうかを確認し、代替値を指定する。

今回の例では、IF関数を使用して、分母が「0」のときには「収入率」の値が「0(0.00%)」と表示されるように設定。

数式

IF(売上>0、ROUND(収入/売上, 4),0)

※売上が「0」 より大きいときには乗算した値を表示し、それ以外(0以下)のときは「0」を返す、という数式です。

確認すると、「売上」が「0」のときには「収入率」は「0.00%」で表示されさました。

ひとこと

調べると、Salesforce のヘルプにも対処法が載っており、Trailheadにも注意するように書かれていました。しかし私のような人間は、数式作成時に構文エラーにならず、テストでもわかりやすくおかしな値が返ってこなければ、スルーしてしまうかもしれませんので、自戒の意味を込めて記事にしました。



参考

◇ Salesforce >ヘルプ >一般的な数式エラー
◇ Salesforce >Trailhead >高度な数式 >数式における数値、通貨、パーセントの使用

 ROUND関数についてはこちら
◇ Salesforce >ヘルプ > 数式の演算子と関数 I – Z





gilde tech(for Salesforce)」に入会しませんか?
登録すると、「gilde tech」に掲載されているSalesforceのノウハウを全部閲覧できるだけでなく、自分が知っている知識を発信し、他の会員と交流することもできます。
またSalesforceの知識習得に役立つイベント情報も得ることができます。
是非ここで得た知識を業務に活かしてください!
6
コメント