@MODE
Essbaseの@MODE計算関数は、指定されたデータ・セットのモード(最も頻繁に発生する値)を返します。
構文
@MODE (SKIPNONE | SKIPMISSING | SKIPZERO | SKIPBOTH, XrangeList)
パラメータ
- SKIPNONE
-
最頻値の計算中に、内容に関係なく、データ・セットで指定したすべてのセルを含めます。
- SKIPMISSING
-
最頻値の計算中に、すべての
#MISSING
値をデータ・セットから除外します。 - SKIPZERO
-
最頻値の計算中に、データ・セットからすべてのゼロ(0)値を除外します。
- SKIPBOTH
-
最頻値の計算中に、すべてのゼロ(0)値と
#MISSING
値をデータ・セットから除外します。 - XrangeList
-
最頻値が計算される数値のリスト。このトピック全体で、データ・セットと総称されます。
有効なメンバー名、メンバー名のカンマ区切りリスト、ディメンション間メンバー、またはメンバー・セット関数か範囲関数(@XRANGEを含む)からの戻り値にできます。
XrangeListの詳細は、範囲リスト・パラメータを参照してください。
ノート
-
データ・セット内の2つ以上の値が同じ頻度で発生する場合、Essbaseは値のリストを昇順でソートし、最頻値として最も高い頻度で発生する最小値を選択します。たとえば、データ・セットに[2,1,2,2,2,3,3,3,3]が含まれる場合、Essbaseはリストを[1,2,2,2,2,3,3,3,3]としてソートし、値[2]を最頻値として選択します。
-
データ・セットに重複する値が含まれていない場合、この関数はリスト内の最小値を最頻値として返します。たとえば、データ・セットに[2,4,7,10,14]が含まれている場合、@MODEは2を最頻値として返します。
-
#MISSING
がデータ・セットの最頻値である場合、SKIPMISSINGまたはSKIPBOTHが指定されていないかぎり、この関数は#MISSING
を返します。SKIPMISSINGまたはSKIPBOTHを指定し、データ・セット内のすべての値が#MISSING
の場合、この関数は#MISSING
を返します。SKIPZEROまたはSKIPBOTHを指定し、データ・セット内のすべての値が0の場合、この関数は#MISSING
を返します。 -
この関数を計算スクリプトで使用する場合は、FIX文内で使用します。FIXは必須ではありませんが、FIXを使用すると計算パフォーマンスが向上する場合があります。
-
スパース・ディメンションの広い範囲でこの関数を使用する場合は、計算機キャッシュのサイズを増やす必要がある場合があります。
例
次の例では、Centralリージョンで販売されたユニットの最頻値を計算し、@RANGEを使用してデータ・セットを生成します。
FIX (Central)
"Mode" = @MODE(SKIPMISSING,
@RANGE(Sales,@CHILDREN(Central)));
ENDFIX
この例では、次のレポートが作成されます:
Colas Actual Jan
Units Sold
==========
Units Sold Illinois 3
Ohio 2
Wisconsin 3
Missouri #MI
Iowa 0
Colorado 6
Central 14
Mode Central 3
次の例では、YearディメンションがSample Basicに追加されていることを前提としています。データ・セット内のディメンション間メンバーを使用して最頻値を計算します。
FIX(Product)
"Mode" = @MODE(SKIPMISSING,@XRANGE("2011"->"Sep", "2012"->"Mar"));
ENDFIX
前述の計算は、XrangeListで指定した次の多次元範囲で実行されます。
2011->Sep
2011->Oct
2011->Nov
2011->Dec
2012->Jan
2012->Feb
2012->Mar