一.概要
1.応用シーン
実際の場合、階層座標の編集が難しく、数式の運用にあたって更新作業も手間がかかってしまいます。
こうした帳票開発の効率低下の問題を解決するために、FineReportはよくあるインジケータの計算数式を関数にしています。数式編集の手間が省けて帳票の開発効率が大幅に引き上げられます。
二.CIRCULAR
1.説明
CIRCULAR関数は循環引用に利用できます。循環引用とは、あるセルの数式が直接的または間接的に自身のセルを参照している状態のことを指します。
下記の表の数式の書き方はいずれも、セルB2を参照している数式を、セルB2に書き込んでいるものであるため、循環引用の数式になります。
展開方向 | 数式の書き方 | 等価数式 |
---|---|---|
縦方向展開 | CIRCULAR(A2,B2,C2,D2) | IF(&A2=1,0,B2[A2:-1]-C2[A2:-1]+D2[A2:-1]) |
横方向展開 | CIRCULAR(B1,B2,B3,B4,false) | IF(&B1=1,0,B2[;B1:-1]-B3[;B1:-1]+B4[;B1:-1]) |
注1:CIRCULAR関数による循環参照は無限ループになっています。計算に加わるパラメータの数は必ず4つで、特定のシーンのみ使用できる関数になります。
注2:横方向展開の場合、5つ目のパラメータとしてfalseを加える必要があります。省略してはいけません。
2.例示
出入庫統計を例に説明します。
下記の図のように、当該関数で在庫を計算できます。前日在庫+(入庫-出庫)で、毎日の在庫を算出できます。
三.CROSSLAYERTOTAL
1.説明
CROSSLAYERTOTALはグループを跨る累計の計算に利用できます。各層でデータの合計を行い、グループを跨っても継続して累計することをサポートしています。
階層座標でグループを跨る累計数式を編集すると、数式が大変長くて複雑になりますが、それを関数にすることで開発の作業量が大幅に軽減できます。
展開方向 | 数式の書き方 | 等価数式 |
---|---|---|
縦方向展開 | CROSSLAYERTOTAL(A1,B1,C1,D1) | IF(&B1>1,D1[B1:-1]+C1,D1[A1:-1,B1:!-1]+C1) |
注:CROSSLAYERTOTALは横方向展開をサポートしていません。
2.例示
毎日の商品仕入れを例にします。
当該関数を通して、全ての生産量データは各層で累計して合計されます。つまり、グループを跨っても継続して累計されるわけです。例えば、下記の図のように、毎日継続して累計されています。
四.HIERARCHY
1.説明
HIERARCHYは相対階層座標の表示に利用され、相対階層座標の簡略化された書き方だと理解してもいいです。
縦方向展開の際、関数にオフセット値を入力しない場合、デフォルトの-1になります。しかし、横方向展開の際、それを入力しなければなりません。下記の表のように、完全な数式を書かなければなりません。
展開方向 | 数式の書き方 | 等価数式 |
---|---|---|
縦方向展開 | HIERARCHY(A1) | A1[A1:-1] |
HIERARCHY(A1,B1) | B1[A1:-1] | |
HIERARCHY(A1,B1,+2) | B1[A1:+2] | |
横方向展開 | HIERARCHY(B1,B1,-1,false) | B1[;B1:-1] |
HIERARCHY(B1,B2,-1,false) | B2[;B1:-1] | |
HIERARCHY(B1,B2,+2,false) | B2[;B1:+2] |
2.例示
複数のセルを縦方向に展開する場合を例に説明します。
関数が対応している相対階層の座標は下記の図のように出力されます。
五.LAYERTOTAL
1.説明
LAYERTOTALはグループごとの累計の計算に利用できます。各層でデータの合計を行いますが、グループを跨ると継続して累計されません。つまり、グループごとの累計だけです。
階層座標でグループごとの累計数式を編集すると、数式が長くて大変複雑になりますが、それを関数にすることで開発の作業量が大幅に軽減します。
展開方向 | 数式の書き方 | 等価数式 |
---|---|---|
縦方向展開 | LAYERTOTAL(B1,C1,D1) | D1[B1:-1]+C1 |
横方向展開 | LAYERTOTAL(B2,B3,B4,fasle) | B4[;B2:-1]+B3 |
2.例示
2020年の一部のエネルギーの全国生産量の統計を例に説明します。
当該関数を通して、エネルギーそれぞれの生産量データがグループごとに合計されます。つまり、グループを跨る際は継続して累計されません。例えば、下記の図のように、2018から2019へとグループが変わると、データは継続して累計されません。
六.MOM
1.説明
MOMは前年比と前月比の計算に利用できます。前期比とは連続した二つの統計周期のデータを比べることで、同じく関数を通して前期比の計算数式の編集を簡略化します。
縦方向展開の際、関数にオフセット値を入力しない場合、デフォルトで-1になります。しかし、横方向で展開する際は、完全な数式を書き込む必要があります。具体的な書き方は下記のとおりです。
展開方向 | 数式の書き方 | 等価数式 |
---|---|---|
縦方向展開 | MOM(A1,B1) | IF(&A1>1,B1/B1[A1:-1],0) |
MOM(A1,B1,-2) | IF(&A1>1,B1/B1[A1:-2],0) | |
横方向展開 | MOM(B2,B3,-1,false) | IF(&B2>1,B3/B3[;B2:-1],0) |
2.例示
2020年の一部のエネルギーの全国生産量の統計を例に説明します。
当該関数で各エネルギーの各四半期の生産量の前期比を計算します。例えば、「前期比」に、第2四半期の生産量対第1四半期の比率が表示されています。なお、前期比はグループを跨っては計算できないことに注意する必要があります。
七.PROPORTION
1.説明
PROPORTIONは割合の計算に利用できます。割合とはあるデータが総数に占める比率のことです。
展開方向 | 数式の書き方 | 等価数式 |
---|---|---|
縦方向展開 横方向展開 | PROPORTION(A1) | A1/sum(A1[!0]) |
2.例示
例えば、毎日の仕入れの統計を例に説明します。
下記の図のように、当該関数で毎日の入庫が10日に占める割合を計算できます。
八.SORT
1.説明
SORTはデータの値に従ってソートする際に利用できます。
展開方向 | 数式の書き方 | 等価数式 |
---|---|---|
縦方向展開 横方向展開 | 降順:SORT(A1) | COUNT(UNIQUEARRAY(A1[!0]{A1>$A1}))+1 |
昇順:SORT(A1,false) | COUNT(UNIQUEARRAY(A1[!0]{A1<$A1}))+1 |
2.例示
例えば、毎日の仕入れの統計を例に説明します。
下記の図のように、当該関数で各月の「入庫」を降順に並びます。