@MEDIAN
指定されたデータ・セットの中央値(中央値)を返します。 データ・セット内の数値の半分は中央値より大きく、半分は小さくなります。
構文
@MEDIAN (SKIPNONE | SKIPMISSING | SKIPZERO | SKIPBOTH, XrangeList)
パラメータ
- SKIPNONE
-
中央値の計算時に、データ・セットで指定されたすべてのセルを、その内容に関係なく含めます。
- SKIPMISSING
-
中央値の計算中にデータ・セットからすべての
#MISSING
値を除外します。 - SKIPZERO
-
中央値の計算中にデータ・セットからすべてのゼロ(0)値を除外します。
- SKIPBOTH
-
中央値の計算時に、データ・セットからすべてのゼロ(0)値および
#MISSING
値を除外します。 - XrangeList
-
中央値が計算される数値のリスト。 このトピック全体を通して、総称して「データ・セット」と呼びます。
有効なメンバー名、メンバー名のカンマ区切りリスト、ディメンション間メンバー、またはメンバー・セット関数または範囲関数(@XRANGEを含む)からの戻り値を指定できます。
XrangeListの詳細は、「範囲リスト・パラメータ」を参照してください。
ノート
-
計算しているメンバーとデータ・セット(XrangeList)が同じディメンションにない場合は、@RANGEまたは@XRANGEを使用して、メンバーをメンバーのリストと交差させます(たとえば、販売を100の子と交差させます)。
-
@MEDIANは、中央値を計算する前にデータ・セットを昇順でソートします。
-
データ・セットに偶数の値が含まれている場合、@MEDIANはその中間数の平均を計算します。
-
SKIPMISSINGまたはSKIPBOTHが指定されていないかぎり、@MEDIANは
#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