@MEDIAN
Essbaseの@MEDIAN計算関数は、指定されたデータ・セットの中央値(中間の数値)を返します。データ・セットの数値の半分は中央値より大きく、半分は小さいものです。
構文
@MEDIAN (SKIPNONE | SKIPMISSING | SKIPZERO | SKIPBOTH, XrangeList)
パラメータ
- SKIPNONE
-
中央値の計算中に、内容に関係なく、データ・セットで指定したすべてのセルを含めます。
- SKIPMISSING
-
中央値の計算中に、すべての
#MISSING
値をデータ・セットから除外します。 - SKIPZERO
-
中央値の計算中に、すべてのゼロ(0)値をデータ・セットから除外します。
- SKIPBOTH
-
中央値の計算中に、すべてのゼロ(0)値と
#MISSING
値をデータ・セットから除外します。 - XrangeList
-
中央値が計算される数値のリスト。このトピック全体で、データ・セットと総称されます。
有効なメンバー名、メンバー名のカンマ区切りリスト、ディメンション間メンバー、またはメンバー・セット関数か範囲関数(@XRANGEを含む)からの戻り値にできます。
XrangeListの詳細は、範囲リスト・パラメータを参照してください。
ノート
-
計算中のメンバーとデータ・セット(XrangeList)が同じディメンションにない場合は、@RANGEまたは@XRANGEを使用して、メンバーをメンバーのリストと交差させます(たとえば、Salesを100の子と交差させる)。
-
@MEDIANは、中央値を計算する前に、データ・セットを昇順でソートします。
-
データ・セットに偶数の値が含まれている場合、@MEDIANは2つの中間の数値の平均を計算します。
-
@MEDIANは、SKIPMISSINGまたはSKIPBOTHが指定されていないかぎり、
#MISSING
の値を0として扱います。 -
この関数を計算スクリプトで使用する場合は、FIX文内で使用します。FIXは必須ではありませんが、FIXを使用すると計算パフォーマンスが向上する場合があります。
-
スパース・ディメンションの広い範囲でこの関数を使用する場合は、計算機キャッシュのサイズを増やす必要がある場合があります。
例
次の例は、Sample Basicデータベースに基づいています。Measuresディメンションに追加のメンバーMedianが含まれているとします。この例では、すべての製品の売上中央値を計算し、@RANGEを使用してデータ・セットを生成します。
FIX (Product)
Median = @MEDIAN(SKIPBOTH,@RANGE(Sales,@CHILDREN(Product)));
ENDFIX
この例では、次のレポートが作成されます:
Jan New York
Actual Budget
====== ======
Sales Colas 678 640
Root Beer 551 530
Cream Soda 663 510
Fruit Soda 587 620
Diet Drinks #MI #MI
Product 2479 2300
Median Product 625 575
計算スクリプトでSKIPBOTHが指定されているため、Diet Drinksの#MI
値はスキップされます。残りの4つの製品は、偶数のデータ・セットを作成します。そのため、Median->Product->Actualを計算するには、セット内の2つの中央値(587と663)を平均して、中央値(625)を作成します。Median->Product->Budgetを計算するには、セット内の2つの中央値(530と620)を平均して、中央値(575)を作成します。
次の例では、YearディメンションがSample Basicに追加されていることを前提としています。データ・セット内のディメンション間メンバーを使用して中央値を計算します。
FIX(Product)
Median = @MEDIAN(@XRANGE("2011"->"Sep", "2012"->"Mar"));
ENDFIX
前述の計算は、XrangeListで指定した次の多次元範囲で実行されます。
2011->Sep
2011->Oct
2011->Nov
2011->Dec
2012->Jan
2012->Feb
2012->Mar