PARENTGROUPVALのエラー解消【Salesforce】

Salesforce使って脱Excelするためにマストなレポートスキル
　**PARENTGROUNPVAL関数(割合出せる)** だと私は思ってます
理解できるようになったら、Salesforceのレポートって素敵～:heart_eyes:って再認識したんだけど、
私自身、理解できるまでに[Help](https://help.salesforce.com/s/articleView?id=sf.reports_summary_functions_about.htm&type=5)とか[Trailhead](https://trailhead.salesforce.com/ja/content/learn/projects/rd-summary-formulas/rd-compare-groups)だけでは難しかったので(特に**[マトリクスレポート](https://qiita.com/tedkuma/private/a00cdba9495d9612ef84#%E3%83%9E%E3%83%88%E3%83%AA%E3%82%AF%E3%82%B9%E5%BD%A2%E5%BC%8F%E3%81%AE%E3%83%AC%E3%83%9D%E3%83%BC%E3%83%88%E8%A6%8B%E6%9C%AC)**)
同じようなエラーでググった方の参考になればと、私なりの解釈で記事にしました。
![Salesforce_PARENTGROUPVAL_it's difficult.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237418/f84d5386-4385-fb37-8ed8-1754640e5afe.png)

##☁Salesforceのレポートで割合出したい！！
活動数や商談数を集計したら、必ず割合を出したくなるもの。
SalesforceのレポートでPARENTGROUPVAL関数を使用すると、サマリ形式やマトリクス形式のレポートに割合を表示させることが出来ます。

###サマリ形式のレポート見本
部署と商談のフェーズをグループ項目としたサマリ形式の売上金額レポート
:red_circle: 部署別の売上のシェア率を可視化しています。
![Salesforce_PARENTGROUPVAL_サマリ形式レポート.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237418/df73f117-1655-0cbc-7459-ca799d7049da.png)

###マトリクス形式のレポート見本
部署と商談のフェーズをマトリクス形式で表示させているレポートに
割合を出すことが出来ます。この場合は2パターン
:red_circle: __部署内の商談件数を分母__ としてフェーズ別の割合がどのぐらいあるか
:large_blue_circle: __商談件数全体を分母__ としてフェーズ別の割合がどのぐらいあるか
![Salesforce_PARENTGROUPVAL_マトリクス形式レポート.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237418/7827b83a-5ef8-cd91-03c1-0d9130a6eea6.png)

##☁PARENTGROUPVAL関数の基本的な使い方
**[Help](https://help.salesforce.com/s/articleView?id=sf.reports_summary_functions_about.htm&type=5)や関数の挿入で表示されてる書き方がこちら👇**

```text:行でグループ化されたレポート（サマリー）および結合レポートの場合
PARENTGROUPVAL(summary_field, grouping_level)
```

```text:行と列でグループ化されたレポート(マトリックス)の場合
PARENTGROUPVAL(summary_field, parent_row_grouping, parent_column_grouping)
```

> summary_field には集計項目値、grouping_level には GRAND_SUMMARY またはサマリーレポートの親レベルグループの API 参照名、parent_row_level と parent_column_level にはマトリックスレポートの親レベルを指定します。

> 複数のグルーピングレベルを持つレポートでは、grouping_level を数式表示レベルより上位のグループレベルに設定できます。

> 例:
TOTAL_PRICE:SUM/PARENTGROUPVAL(TOTAL_PRICE:SUM, GRAND_SUMMARY)
この数式では、各商品のサイズを総計に対する割合として計算します。この例では、レポートは [商品名] 別にグループ化された商談とその商品の集計になります。

個人的に・・・Helpに書いてる内容だけだと設定できないと思ってます。
私が記事をUPしようと思った一番の理由。以下にエラー例を記載します。
![Salesforce_PARENTGROUPVAL_関数入力だけだとNG.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237418/ee426b2c-f3cc-e154-7d55-00abf86d91a8.png)

##☁よく遭遇するエラー
###:one:グルーピング情報が未選択
:::note warn
レポート集計関数を使用するために、グルーピングコンテキストを選択する必要があります。
:::
![Salesforce_PARENTGROUPVAL_ERROR1_レポート集計関数を使用するために、グルーピングコンテキストを選択する必要があります。You must select a grouping context to use any report summary function..png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237418/84c5d7dd-0723-72f5-de7e-f1aaa486b584.png)

###:one:の解消方法
このエラーみんな1回は遭遇するんじゃない？と思ってるんですけど…
(PARENTGROUPVAL関数と対で例に出てくるPREVGROUP関数も同様なんですが)
関数入力しただけだとこのエラーが出ます。
解消するには、👇のようにいつも数式入れてる場所の隣が【表示】というタブになってるので
ここでグループ項目を指定してやる必要があるということを言ってるエラーです。
私もこれらの関数を使って初めて知ったのがこの【表示】タブの存在でした・・・。
![Salesforce_PARENTGROUPVAL_ERROR1_Solution_レポート集計関数を使用するために、グルーピングコンテキストを選択する必要があります。You must select a grouping context to use any report summary function.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237418/2fd5edc9-6838-2c93-6a4c-605095b3841e.png)

###:two:引数が間違っている
:::note warn
関数 'PARENTGROUPVAL()' の引数の型が間違っています。
:::
![Salesforce_PARENTGROUPVAL_ERROR2_関数 'PARENTGROUPVAL()' の引数の型が間違っています。Incorrect argument type for function 'PARENTGROUPVAL()'..png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237418/c68f96a3-ec45-adfe-7362-92cd2f6978b1.png)

###:two:の解消方法
基本の書き方として

```text:サマリ形式レポートの場合
PARENTGROUPVAL(集計したい値の項目, GRAND_SUMMARY)
```

```text:マトリクス形式レポートの場合
PARENTGROUPVAL(集計したい値の項目, ROW_GRAND_SUMMARY, COLUMN_GRAND_SUMMARY)
```

と書けばエラー出ずに何とかなります。でも、
ここのグループ項目を指定して・・・とGRAND_SUMMARYを使わずにグループ項目を指定した書き方をした場合に、下記が相違すると出るエラーです。合わせてやれば解消します。
・表示タブで指定したグループ項目名
・数式に記載したグループ項目名
![Salesforce_PARENTGROUPVAL_ERROR2_Solution_関数 'PARENTGROUPVAL()' の引数の型が間違っています。Incorrect argument type for function 'PARENTGROUPVAL()'..png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237418/fdfa9f28-3e0a-9a42-02c4-6946735216cd.png)

###:three:パラメータ(引数)の数が足りない
:::note warn
関数 'PARENTGROUPVAL()' のパラメータの数が間違っています。期待3、受信2
:::
![Salesforce_PARENTGROUPVAL_ERROR3_関数 'PARENTGROUPVAL()' のパラメータの数が間違っています。期待3、受信2_Incorrect number of parameters for function 'PARENTGROUPVAL()'. Expected 3, received 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237418/4eccd447-3cdf-07fd-1f64-ab4acf41a696.png)

###:three:の解消方法
レポート作りながら、グループ項目縦にも横にも欲しいなんて追加したら
さっきまでエラー出てなかったのに、エラーになっちゃった…ってこともありました。
→マトリクスレポートの(行と列にグループ項目指定した)ときは引数が3つ必要です
とりあえずこの式を入れてみてください。エラーが解消されるかも

```
                           引数1　　　　　引数2　　　　　　　引数3
RowCount / PARENTGROUPVAL(RowCount, ROW_GRAND_SUMMARY, COLUMN_GRAND_SUMMARY)
```

##☁思ったような結果が表示できない時
なんとなく、上記のエラー出た時の回避方法や書き方はわかりました。と
エラーは出てないんだけど、なんか出したい割合が出ないんだよなー　
Salesforceのレポートでは表現できないのかなー？って時、以下が役に立つかもしれません。

###:tiger::speech_balloon:割合が表示されない。
**関数入れたのに割合が表示されない。表示したい項目に-しか表示されない。**
→小計に実は出てるかも？小計が非表示になってる場合は表示させてみましょう！
![Salesforce_PARENTGROUPVAL_小計をオンにすると表示されるかも.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237418/566c7335-073b-6d26-c59d-3dc4e7a2cd2d.png)

###:cow::speech_balloon:100パーセント以上の値がズラリ
**件数×100％が表示されてしまう**
→PARENTGROUPVAL関数の前に分母を入れて割ってみましょう。
　例：RowCount / PARENTGROUPVAL(RowCount, ROW_GRAND_SUMMARY, COLUMN_GRAND_SUMMARY)
→数式と表示項目で指定しているグループ項目の組み合わせを変更してみましょう。
![Salesforce_PARENTGROUPVAL_ERROR_ex100%超えている.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237418/033bb7cb-60f6-e5f6-07b6-e0e6e9dba075.png)

###:pig::speech_balloon:100％が表示される。
**良さげな数式にしたのにマトリクス形式レポート内が100％表示になってしまう。**
→数式の引数をGRAND_SUMMARYにしてみましょう！
![Salesforce_PARENTGROUPVAL_ERROR_ex100%になっちゃう.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237418/f5899dfc-58a9-23dd-1965-2b2e681387d7.png)

###:cat::speech_balloon:グループ項目ごとの割合出したい
**全体の件数からの割合じゃなくて、グループ項目内での割合を表示させたい・・・**
→数式の引数指定を、グループ項目名に変更してみましょう！
![Salesforce_PARENTGROUPVAL_グループ項目ごとの割合出したい.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237418/d91ba2f1-6cc5-ec81-d676-179d1522d8bb.png)

###:monkey_face::speech_balloon:合計にだけ割合を表示させたい
**行内と総計部分両方を1つの集計項目で出せないので組み合わせで使うことが私は多いです。**
→数式の引数はGRAND_SUMMARYで表示タブの適用項目で出し分けましょう！
![Salesforce_PARENTGROUPVAL_合計にだけ割合を表示させたい.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237418/82e1adf9-0463-12a8-810d-c85b998c8ceb.png)

##あとがき
Salesforceのレポート難しい。ってうちの社内でも、営業部のユーザさんに言われるんだけど
レクチャーしたあとに、コツがつかめた人から今はもう極力Salesforceでやるようにしてます！
って話を聞くたびに、やりがいメータが蓄積されている日々です。

社内の人にも、そうじゃない人にも
せっかくSalesforceに情報蓄積したものが活用できる方法をみんなでわかりやすく享受出来たらいいなーって感じながらSalesforce関連の初記事投稿しました。

日本のシステム管理者や初心者利用ユーザ目線で優しいナレッジが検索にヒットするようになるといいなーと願っています。


あ、あと最後にもう1つだけ・・・私、マトリクス形式のレポートで

```text:
PARENTGROUPVAL(RowCount, ROW_GRAND_SUMMARY, COLUMN_GRAND_SUMMARY)
```

という書き方をしていますが、👇GRAND_SUMMARYだけでもイケるみたいです。
![Salesforce_PARENTGROUPVAL_GRANDSUMMARYだけでもいけるみたい.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237418/53ba00fc-36ff-fe41-b370-89e39276d0e1.png)