Salesforce: 数式で項目の桁数を統一し、数字の大小で並び替えを行う方法
はじめに
こんにちは。
今回は、数式で項目の桁数を統一し、数字の大小で並び替えを行う方法をご紹介します。
具体的な状況として、例えば「取引先」に「顧客コード」というテキスト型の項目があり、画像①のような形式で入力されていたとします。この場合、1から順に値が並ぶように「顧客コード」を昇順で並び替えを行っても画像②のように期待する並び方にはなりません。
では以下で設定方法を解説していきます。
数式で項目の桁数を統一し、数字の大小で並び替えを行う
1. 事前準備
設定方法をご紹介していくにあたって、今回は「はじめに」で取り上げた以下の項目について設定を行なっていくこととします。
並び替えを行うにあたって設定の選択肢として、以下の2つがありますので両者についてそれぞれ設定方法をご紹介していきます。
2. 「取引先」オブジェクトに数式項目を作成する
ここでは「取引先」オブジェクトに項目の桁数を統一する数式項目を作成する方法で並び替えを行う設定を行なっていきます。
① 数式項目を作成する
[設定]の[オブジェクトマネージャー]から[取引先]を開き、[項目とリレーション]で[新規]をクリックし項目の作成画面を開きます。
はじめに、[ステップ 1. データ型の選択]では画像①のように「数式」を選択し[次へ]をクリックします。
次に、[ステップ 2. 出力型の選択]では画像②のように任意の[項目の表示ラベル]と[項目名]を入力し、[数式の戻り値のデータ型]は「テキスト」を選択し[次へ]をクリックします。
そして、次に表示される[ステップ 3. 数式の入力]では数式を設定していきます。
以下の数式を入力し、画像③のように[構文を確認]をクリックして数式にエラーがないことを確認し、[次へ]をクリックします。なお、数式の内容の解説は後述します。
LPAD( CustomerCode__c , 5 , "0" )
次に画像④のステップ4については特に設定を行わず[次へ]をクリックし、画像⑤のステップ5も同様に[保存]をクリックします。以上で設定は完了です。
② 数式の解説
次に①で設定した以下の数式について解説していきます。なお、数式中のCustomerCode__cは項目「顧客コード」のAPI参照名であり、数式の中にAPI参照名を挿入することでその箇所で「顧客コード」の値が使用されます。
LPAD( CustomerCode__c , 5 , "0" )
a. LPAD関数
LPAD関数とは、文字列の左側に特定の文字を追加して、文字列の全長を指定した長さにする関数です。この関数は、特にコードやIDのような値を一定のフォーマットに統一するのに便利な関数となります。
b. 設定した数式の解説
上記の数式は CustomerCode__c 項目の値を取り、その長さが5文字になるまで左側に「0」を追加します。
例えば、CustomerCode__c の値が「123」である場合、この数式は「00123」という値を返します。なぜなら、3文字の値の左に2つの「0」を追加することで、全体の長さを5文字にしているからです。
③ 作成した数式項目で並び替えが可能か確認する
最後に作成した数式項目で1から順に値が並ぶように並び替えが可能か、「取引先」のリストビューで確認していきます。画像⑥の赤枠で囲んだ箇所に今回作成した数式項目である「顧客コード(表示用)」を配置し、[∨]をクリックして昇順で並び替えを行います。
そうすると画像⑦のように「顧客コード」の値で、1から順に値が並ぶように並び替えができていることが確認できました。
3. 「取引先」レポートに「行レベルの数式」列を作成する
次に、「取引先」レポートに「行レベルの数式」列を作成する方法で並び替えを行う設定を行なっていきます。「行レベルの数式」とは、レポートに表示されている個々のレコードに対して数式によって処理を行う機能となります。
① 「行レベルの数式」列を作成する
「取引先」レポートの編集画面を開き、画面左側の[アウトライン]タブの[列]にある▼をクリックします。
次に画像①のようにメニューが表示されるのでその中から[行レベルの数式を追加]をクリックすると、画像②のように[行レベルの数式列を編集]という画面が表示されます。ここで数式を設定していきます。
[列の名前]を表示したい任意の名前とし、[数式出力種別]は[テキスト]を選択します。
② 項目の桁数を統一する数式を設定する
次に[数式]ボックス内で、項目の桁数を統一する数式を設定していきます。画像③のように以下の数式を入力し、[構文を確認]をクリックして数式にエラーがないことを確認、[適用]をクリックします。なお、こちらは 2.で設定した数式と同様の数式となります。
LPAD( Account.CustomerCode__c , 5 , "0" )
(注)「Account.CustomerCode__c」は画像③の画面左側で「顧客コード」を選択し、[挿入 > ]をクリックすることで利用可能です。
③ 「行レベルの数式」列をレポートに追加する
②で数式を設定し、レポート編集画面に戻ると画像④のように赤枠で囲んだ箇所へ[列]とレポートへ作成した「行レベルの数式」が配置されています。
④ 作成した「行レベルの数式」列で並び替えが可能か確認する
最後に作成した「行レベルの数式」列で1から順に値が並ぶように並び替えが可能か、レポートを実行して確認していきます。
レポート編集画面の右上の[実行]をクリックし、画像⑤のように今回作成した「行レベルの数式」である「顧客コード(表示用)」の右にある▼をクリック、[昇順に並び替え]をクリックします。
そうすると画像⑥のように「顧客コード」の値で、1から順に値が並ぶように並び替えができていることが確認できました。
まとめ
今回は、数式でLPAD関数を使用して項目の桁数を統一し、数字の大小で並び替えを行う方法をご紹介しました。
LPAD関数は、コードやIDなどの値を一定のフォーマットに統一するためによく使用される関数になります。特にシステム間のデータの統合やレポートの作成時など、一貫したデータフォーマットが必要な場合に有用な関数です。
Salesforceに関するお悩みはありませんか?
今回ご紹介した数式をはじめとするSalesforceの機能活用について、
「調べるのに時間がかかる...」
「作ったはいいがバグが起こらないか心配...」
「Salesforceを活用したいけどそこまで手が回らない...」
などお悩み事はありませんか?
Air合同会社ではSalesforceエンジニアを一人雇うほどの業務は無いが、業務を任せたいというお客様へ月 数時間~40時間で柔軟にご利用頂けるSalesforce活用支援サービスを提供しています。
機能の実装や改善のご提案、社内での内製化支援まで、貴社のSalesforceのお悩みを解決いたします。Salesforceをより活用し課題解決を行なっていくための手段としてぜひご検討ください。
また、弊社では「サービスについて簡単に知りたい」「Salesforceの使い方について相談したい」などSalesforceに関する無料相談会も随時実施しています。まずはお気軽にお問い合わせください。
↓関連記事
↓サービスの資料請求はこちらからお申し込みいただけます。
↓無料相談はこちらからお申し込みいただけます。