数式における数値、通貨、パーセントの使用
学習の目的
数式における数値、通貨、パーセントの概要
多くの人は数式と聞くと、数字が関係するのではないかと想像します。Salesforce の数式については必ずしも数字を伴うわけではなく、実際のところ数字に基づくデータ型はごくわずかです。数字を用いた一番シンプルなデータ型は、数値型です。数値を返す数式項目を作成するときは、小数点以下の桁数を 0 ~ 18 の範囲で指定できます。
数値は正にも負にも、整数にも小数にもすることができ、温度や長さ、人口などの測定値に適しています。他方、通貨には独自のデータ型があります。通貨データを返す数式も数値数式に似ていますが、通貨値に通貨記号が付加される点が異なります。
パーセントも、数値にパーセント記号が付加される独自のデータ型です。パーセントは 100 で除算した数値で保存されます。つまり、100% は 1、90% は 0.9 などとなります。
数式の戻り値のデータ型 | 特徴 |
---|---|
数値 | 正または負の整数または小数。 |
通貨 | 通貨記号が付いた数字。 |
パーセント | パーセント記号が付いた数字。100 で除算された数字で保存されます。 |
一般的な数値、通貨、パーセント関数と演算子
数字を操作するときは、一定の関数や演算子を多用します。
数学演算子
数値、通貨、パーセントを返す数式で使用される頻度が最も高い演算子は、小学 1 年の算数の授業以来目にしてきた算術記号です。
数値を加算 (+)、減算 (-)、乗算 (*)、除算 (/) することができます。また、数式では累乗 (^) も使用できます。これらの演算子は、計算機と同じように機能します。数式は演算順序に従い、演算子を括弧で囲めばグループ化できます。
さらに、より大きい (>)、より小さい (<)、以下 (<=)、以上 (>=) を使用して数値を比較することもできます。2 つの数字が等しいかどうかをチェックする場合は、= を使用します。2 つの数字が等しくないことを確認する場合は、不等号を表す != または <> を使用して記述できます。
数学関数
数式エディターには他にもいくつかの数学関数があります。関数 ROUND() は、指定した数値を丸めます。具体的には、4 以下を切り捨て、5 以上を切り上げる四捨五入が適用されます。たとえば、1.45 は 1.5 に切り上げられ、1.43 は 1.4 に切り捨てられます。
次の通貨数式は、割引の計算に ROUND() を使用して小数点第 2 位に四捨五入し、適切な通貨額になるようにします。
ROUND(Price__c - Price__c * Discount__c, 2)
また、組み込み演算子を使用して、絶対値、上限値、下限値など、他のいくつかの数学関数も実行できます。数学関数についての詳細は、Salesforce オンラインヘルプの「数式の演算子と関数」を参照してください。
数式における数値、通貨、パーセントの使用
売上に対する手数料計算、年間売上や年間利益の総計など、さまざまな状況で数式に数値、通貨、パーセント型を使用できます。
元本のカスタム項目の作成
- [設定] で、[クイック検索] ボックスを使用して [オブジェクトマネージャー] を検索します。
- [取引先] | [項目とリレーション] をクリックし、[新規] をクリックします。
- [通貨] を選択して、[次へ] をクリックします。
- [項目の表示ラベル] に、「Principal」 (元本) と入力します。[項目名] は自動入力されます。
- [小数点の位置] に、「2」と入力します。この項目は通貨額のため、小数点第 2 位まで必要です。
- [桁数] を「16」に変更します。残りのオプションはデフォルトのまま、[次へ] をクリックします。
- もう一度 [次へ] をクリックして、[保存] をクリックします。
利率の計算
たとえば、この取引先の場合、元本残高が 1 万ドル未満のときは、年利が 2% (0.02) であるとします。残高が 1 万 ~ 10 万ドルの範囲の場合の年利は 3% (0.03) です。残高が 10 万ドルを超えると、年利が 4% (0.04) になります。
[Principal (元本)] から、IF() を使用して適切な利率を判断します。
- [オブジェクトマネージャー] で、[取引先] | [項目とリレーション] をクリックし、[新規] をクリックします。
- [数式] を選択して、[次へ] をクリックします。
- [項目の表示ラベル] に、「Interest Rate」 (利率) と入力します。[項目名] は自動入力されます。
- [パーセント] を選択し、小数点の位置はデフォルトの 2 のままにします。
- [次へ] をクリックします。
- [次へ] をクリックして、[保存] をクリックします。
IF(Principal__c < 10000, 0.02, IF(Principal__c >= 10000 && Principal__c < 100000, 0.03, 0.04))
これで、取引先に対する累積利息の計算に必要な元本の金額と利率が揃いました。
取引先に対する累積利息の計算
では、[Principal (元本)] と口座開設後の経過年数を使用して、取引先に対する利率を計算する数式を作成していきます。幸い、次の変数を使用して経時的な口座利息を計算する A = Pe^(rt) という数学数式が用意されます。
変数 | 値 |
---|---|
P | 口座の元本の金額 |
e | 数学定数 2.71828182845904 |
r | 取引先の年利 |
t | 口座開設後の経過年数 |
ここで、この例の項目に合わせて数式を調節できます。
- [オブジェクトマネージャー] で、[取引先] | [項目とリレーション] をクリックし、[新規] をクリックします。
- [数式] を選択して、[次へ] をクリックします。
- [項目の表示ラベル] に、「Accumulated Interest」 (累積利息) と入力します。[項目名] は自動入力されます。
- [数式の戻り値のデータ型] で [通貨] を選択して [次へ] をクリックします。
- 数式エディターに [Principal (元本)] 項目を挿入します。ここでは、利率に口座開設後の経過年数を乗じた値で e を累乗し、その値に [Principal (元本)] を乗算する必要があります。この計算は EXP() 関数を使用して実行できます。
- * 乗算演算子を挿入します。
- [高度な数式] タブを選択し、EXP 関数を挿入します。EXP(number) は、e の number 乗を返します。
- number の代わりに利率の数式を作成します。まず、以前に作成した Interest_Rate__c 項目を括弧の間に挿入します。
- [簡単な数式] タブを選択し、Interest_Rate__c 項目の後に * 乗算演算子を挿入します。
- [高度な数式] タブを選択し、* 乗算演算子の後に YEAR 関数を挿入します。
- YEAR 関数の date の代わりに、TODAY 関数を挿入します。
- [簡単な数式] タブを選択し、数式の末尾の 2 つ目の閉じ括弧 (YEAR 関数の閉じ括弧) の後に - 減算演算子を挿入します。
- [高度な数式] タブを選択し、- 減算演算子の後に VALUE 関数を挿入します。
- VALUE 関数の number の代わりに、YearStarted 項目を挿入します。
Principal__c * EXP(Interest_Rate__c * (YEAR(TODAY()) - VALUE(YearStarted)))
数式エディターにこの関数を入力したら、[次へ] をクリックします。[項目セキュリティ] ページで、[次へ]、[保存] の順にクリックして数式を確定します。
おめでとうございます! 取引先に対する累積的な連続複利を計算する数式を記述することができました。実際の計算は取引先ページで確認できます。
数値数式の例
- 次の数式は、利益率、販売された品目数、品目単価を指定して、粗利益率を計算します。
Margin_percent__c * Items_Sold__c * Price_Item__c
- 次の通貨数式は、500 ドルを下限とする手数料を計算します。カスタムパーセント項目の [Commission (手数料)] とカスタム通貨項目の [Sale (売上)] が存在するこの数式は、500 ドルと、売上額に手数料率を乗算した金額のいずれか少ないほうを返します。
MIN(500, Sale__c * Commission__c)
- 数値数式は、基本的な単位換算にも役立ちます。次の数式は、摂氏温度を華氏温度に換算します。
1.8 * Degrees_Celsius__c + 32
そして次の数式は、キロをマイルに換算します。Miles__c / 0.6213711921
数値数式の一般的なエラー
-
0 で除算する。数値に基づく数式を記述する場合も、普段と同じ計算規則が適用されます。数式を 0 で除算すると、その後エラーが生じます。2 つの数字を除算するときは、分母が 0 でないことを確認します。値を変更可能な項目で除算する場合は特に、0 で除算する可能性について検討する必要があります。除算する数字が 0 になる可能性がある場合は、エラーが生じないように IF() ステートメントを使用します。たとえば、次の数式は、[年間売上] を [従業員数] で除算して、取引先の従業員あたりの収益を計算します。従業員が 0 人でも、この数式によってエラーが生じることはなく、0 が返されます。
IF(NumberOfEmployees <> 0, AnnualRevenue / NumberOfEmployees, 0)
- null 項目をチェックする。項目が空かどうか確認したい場合は、= (等号) または != (不等号) 演算子を使用して、null と一致するかどうかをチェックします。ただし、ベストプラクティスは、組み込み関数 ISBLANK() を使用することです。ISBLANK() は任意の項目を引数に取り、項目が空白の場合は true、それ以外の場合は false を返します。数式を作成するときは、空白項目を 0 として処理するか、空白として処理するかを選択します。デフォルトでは、[空白項目を 0 として処理] がオンになっています。[空白項目を空白として処理] をオンにした場合、項目が空白かどうかをチェックする唯一の方法は ISBLANK() を使用することです。