表計算関数

この記事では、表計算関数と Tableau での用途について説明します。また、計算エディターを使用して表計算を作成する方法を示します。

表計算関数を使用する理由

表計算関数を使用して、表内の値を計算できます。

たとえば、個々の売上の合計に対する割合を 1 年単位や複数年単位で計算できます。

Tableau で使用可能な表計算関数

FIRST( )


現在の行からパーティション内の最初の行までの行数を返します。たとえば、次のビューには四半期ごとの売上高が示されています。FIRST() が日付パーティション内で計算される場合、2 番目の行からの最初の行のオフセットは -1 です。

現在の行のインデックスが 3 の場合、FIRST() = -2.

INDEX( )


値に関しては並べ替えをせずに、パーティション内の現在の行のインデックスを返します。最初の行のインデックスは 1 から始まります。たとえば、次の表には四半期ごとの売上高が示されています。INDEX() が日付パーティション内で計算される場合、各行のインデックスは 1、2、3、4 のようになります。

パーティション内の 3 番目の行の場合、INDEX() = 3.

LAST( )


現在の行からパーティション内の最後の行までの行数を返します。たとえば、次の表には四半期ごとの売上高が示されています。LAST() が日付パーティション内で計算される場合、2 番目の行からの最後の行のオフセットは 5 です。

現在の行のインデックスは 7 個中 3 つ目の場合、LAST() = 4.

LOOKUP(expression, [offset])


現在の行からの相対オフセットとして指定されたターゲット行にある式の値を返します。パーティション内の最初/最後の行に相対的なターゲットには、オフセット定義の一部として FIRST() + n と LAST() - n を使用してください。offset を省略した場合は、比較対象行をフィールド メニューで設定できます。この関数は、ターゲット行を特定できない場合は、NULL を返します。

次のビューには四半期ごとの売上高が示されています。LOOKUP (SUM(Sales), 2)が日付パーティション内で計算される場合、各行には 2 四半期後の売上高が表示されるようになります。

LOOKUP(SUM([Profit]), FIRST()+2) はパーティション内の 3 番目の行の SUM(Profit) を計算します。

MODEL_PERCENTILE(target_expression, predictor_expression(s))


予測値が観測されたマーク以下である確率 (0 から 1 の間) を返します。マークは、ターゲット式と他の予測変数で定義されます。これは、累積分布関数 (CDF) とも呼ばれる事後予測分布関数です。

この関数は、MODEL_QUANTILE の逆です。予測モデリング関数について詳しくは、Tableau における予測モデリング関数の仕組みを参照してください。

次の式は、注文数に対して調整された、売上合計のマークの分位を返します。

MODEL_PERCENTILE(SUM([Sales]), COUNT([Orders]))

MODEL_QUANTILE(quantile, target_expression, predictor_expression(s))


指定した分位数で、ターゲット式と他の予測変数によって定義された推定範囲内のターゲット数値を返します。これは事後予測分位です。

この関数は、MODEL_PERCENTILE の逆です。予測モデリング関数について詳しくは、Tableau における予測モデリング関数の仕組みを参照してください。

次の式は、注文数に対して調整された、売上合計の予測中央値 (0.5) を返します。

MODEL_QUANTILE(0.5, SUM([Sales]), COUNT([Orders]))

PREVIOUS_VALUE(expression)


前の行のこの計算の値を返します。現在の行がパーティション内の最初の行の場合は、指定された式を返します。

SUM([Profit]) * PREVIOUS_VALUE(1) は SUM(Profit) の累積積を計算します。

RANK(expression, ['asc' | 'desc'])


パーティション内の現在の行に対して標準の競争ランクを返します。同一の値には同一のランクが割り当てられます。昇順または降順を指定するには、オプションの 'asc' | 'desc' 因数を使用してください。既定では降順です。

この関数を使用すると、値のセット (6、9、9、14) は (4、2、2、1) とランク付けされます。

Null はランキング関数では無視されます。これらには番号が付けられておらず、百分位値のランク計算のレコード総数に含まれません。

異なるランキング オプションの詳細については、ランク計算を参照してください。

次の図は、値のセットにおけるさまざまなランキング関数 (RANK、RANK_DENSE、RANK_MODIFIED、RANK_PERCENTILE、および RANK_UNIQUE)) の効果を示しています。データ セットには、14 名の生徒 (生徒 A から生徒 N) に関する情報が含まれています。[年齢] 列には各生徒の現在の年齢が表示されます (すべての生徒は 17 歳から 20 歳の間です)。その他の列には、年齢値に対する各ランク関数の結果が示されます。常に、関数の既定の順序 (昇順または降順) が前提となります。

RANK_DENSE(expression, ['asc' | 'desc'])


パーティション内の現在の行に対して密度の高いランクを返します。同一の値には同一のランクが指定されますが、数列にギャップは挿入されません。昇順または降順を指定するには、オプションの 'asc' | 'desc' 因数を使用してください。既定では降順です。

この関数を使用すると、値のセット (6、9、9、14) は (3、2、2、1) とランク付けされます。

Null はランキング関数では無視されます。これらには番号が付けられておらず、百分位値のランク計算のレコード総数に含まれません。

異なるランキング オプションの詳細については、ランク計算を参照してください。

RANK_MODIFIED(expression, ['asc' | 'desc'])


パーティション内の現在の行に対して変更された競争ランクを返します。同一の値には同一のランクが割り当てられます。昇順または降順を指定するには、オプションの 'asc' | 'desc' 因数を使用してください。既定では降順です。

この関数を使用すると、値のセット (6、9、9、14) は (4、3、3、1) とランク付けされます。

Null はランキング関数では無視されます。これらには番号が付けられておらず、百分位値のランク計算のレコード総数に含まれません。

異なるランキング オプションの詳細については、ランク計算を参照してください。

RANK_PERCENTILE(expression, ['asc' | 'desc'])


パーティション内の現在の行に対して百分位値のランクを返します。昇順または降順を指定するには、オプションの 'asc' | 'desc' 因数を使用してください。既定では昇順です。

この関数を使用すると、一連の値 (6、9、9、14) は (0.25、0.75、0.75、1.00) とランク付けされます。

Null はランキング関数では無視されます。これらには番号が付けられておらず、百分位値のランク計算のレコード総数に含まれません。

異なるランキング オプションの詳細については、ランク計算を参照してください。

RANK_UNIQUE(expression, ['asc' | 'desc'])


パーティション内の現在の行の一意のランクを返します。同一の値に異なるランクが指定されます。昇順または降順を指定するには、オプションの 'asc' | 'desc' 因数を使用してください。既定では降順です。

この関数を使用すると、値のセット (6、9、9、14) は (4、2、3、1) とランク付けされます。

Null はランキング関数では無視されます。これらには番号が付けられておらず、百分位値のランク計算のレコード総数に含まれません。

異なるランキング オプションの詳細については、ランク計算を参照してください。

RUNNING_AVG(expression)


パーティション内の最初の行から現在の行までの、指定された式の累積平均を返します。

次のビューには四半期ごとの売上高が示されています。RUNNING_AVG(SUM([Sales]) が日付パーティション内で計算される場合、結果は四半期ごとの売上高の累積平均になります。

RUNNING_AVG(SUM([Profit])) は SUM(Profit) の累積平均を計算します。

RUNNING_COUNT(expression)


パーティション内の最初の行から現在の行までの、指定された式の累積数を返します。

RUNNING_COUNT(SUM([Profit])) は SUM(Profit) の累積数を計算します。

RUNNING_MAX(expression)


パーティション内の最初の行から現在の行までの、指定された式の累積最大値を返します。

RUNNING_MAX(SUM([Profit])) は SUM(Profit) の累積最大値を計算します。

RUNNING_MIN(expression)


パーティション内の最初の行から現在の行までの、指定された式の累積最小値を返します。

RUNNING_MIN(SUM([Profit])) は SUM(Profit) の累積最小値を計算します。

RUNNING_SUM(expression)


パーティション内の最初の行から現在の行までの、指定された式の累積合計を返します。

RUNNING_SUM(SUM([Profit])) は SUM(Profit) の累積合計を計算します。

SIZE()


パーティション内の行数を返します。たとえば、次のビューには四半期ごとの売上高が示されています。日付パーティション内には 7 行があるため、日付パーティションの Size() は 7 になります。

現在のパーティションに 5 行含まれる場合、SIZE() = 5

SCRIPT_BOOL


指定された式からブールの結果を返します。式は実行中の分析拡張サービス インスタンスに直接渡されます。

R 式では、パラメーターに .argn (先頭にピリオド) を使用してパラメーターを参照します (.arg1、.arg2、など)。

Python 式では、_argn (先頭にアンダースコア) を使用します。

この R の例では、.arg1 は SUM([Profit]) に等しくなります。

SCRIPT_BOOL("is.finite(.arg1)", SUM([Profit]))

それ以外の場合は False を返します。次の例はワシントンのストア ID に対して True を返します。この例は "IsStoreInWA" という計算フィールドの定義となる可能性があります。

SCRIPT_BOOL('grepl(".*_WA", .arg1, perl=TRUE)',ATTR([Store ID]))

Python 用のコマンドは以下のようになります。

SCRIPT_BOOL("return map(lambda x : x > 0, _arg1)", SUM([Profit]))

SCRIPT_INT


指定された式から整数の結果を返します。式は実行中の分析拡張サービス インスタンスに直接渡されます。

R 式では、パラメーターに .argn (先頭にピリオド) を使用してパラメーターを参照します (.arg1、.arg2、など)。

Python 式では、_argn (先頭にアンダースコア) を使用します。

この R の例では、.arg1 は SUM([Profit]) に等しくなります。

SCRIPT_INT("is.finite(.arg1)", SUM([Profit]))

次の例では、k-means クラスタリングが 3 つのクラスタ作成に使用されます。

SCRIPT_INT('result <- kmeans(data.frame(.arg1,.arg2,.arg3,.arg4), 3);result$cluster;', SUM([Petal length]), SUM([Petal width]),SUM([Sepal length]),SUM([Sepal width]))

Python 用のコマンドは以下のようになります。

SCRIPT_INT("return map(lambda x : int(x * 5), _arg1)", SUM([Profit]))

SCRIPT_REAL


指定された式から実際の結果を返します。式は実行中の分析拡張サービス インスタンスに直接渡されます。R

R 式では、パラメーターに .argn (先頭にピリオド) を使用してパラメーターを参照します (.arg1、.arg2、など)。

Python 式では、_argn (先頭にアンダースコア) を使用します。

この R の例では、.arg1 は SUM([Profit]) に等しくなります。

SCRIPT_REAL("is.finite(.arg1)", SUM([Profit]))

次の例では、温度の値をセ氏からカ氏に変換します。

SCRIPT_REAL('library(udunits2);ud.convert(.arg1, "celsius", "degree_fahrenheit")',AVG([Temperature]))

Python 用のコマンドは以下のようになります。

SCRIPT_REAL("return map(lambda x : x * 0.5, _arg1)", SUM([Profit]))

SCRIPT_STR


指定された式から文字列の結果を返します。式は実行中の分析拡張サービス インスタンスに直接渡されます。

R 式では、パラメーターに .argn (先頭にピリオド) を使用してパラメーターを参照します (.arg1、.arg2、など)。

Python 式では、_argn (先頭にアンダースコア) を使用します。

この R の例では、.arg1 は SUM([Profit]) に等しくなります。

SCRIPT_STR("is.finite(.arg1)", SUM([Profit]))

次の例ではより複雑な文字列から州名の省略形を抽出します (元のフォーム 13XSL_CA, A13_WA において)。

SCRIPT_STR('gsub(".*_", "", .arg1)',ATTR([Store ID]))

Python 用のコマンドは以下のようになります。

SCRIPT_STR("return map(lambda x : x[:2], _arg1)", ATTR([Region]))

TOTAL(expression)


表計算パーティションで指定された式の合計を返します。

このビューから始めるものとします。

計算エディタを開いて、[総計] という名前の新しいフィールドを作成します。

[総計] を [テキスト] にドロップして、SUM(Sales) と置き換えます。ビューが、既定の [次を使用して計算] 値に基づいて値を合計した結果に変わります。

ここで、既定の [次を使用して計算] 値は何か、という疑問が生じさます。[データ] ペイン内の [総計] を右クリック (Mac では Control を押しながらクリック) して、[編集] を選択します。少量の追加の情報を使用できます。

既定の [次を使用して計算] 値は、[表 (横)] です。結果は、[総計] が表の各行の横の合計となります。そのため、各行で横方向に表示される値は、元のバージョンの表の値の合計となります。

元の表の "2011/Q1 (2011 年第 1 四半期)" 行の値は、$8601、$6579、$44262、および $15006 でした。SUM(Sales)[総計] で置き換えた後の表内の値は、すべて $74,448 で、4 つの元の値の合計になります。

[テキスト] にドロップすると、[総計] の横に三角形が表示されます。

これは、このフィールドが表計算を使用していることを示します。フィールドを右クリックして [表計算の編集] を選択し、関数を異なる [次を使用して計算] 値にリダイレクトできます。たとえば、それを Table (Down) に設定できます。その場合、表は次のようになります。

WINDOW_AVG(expression, [start, end])


ウィンドウ内の式の平均を返します。ウィンドウは現在の行からのオフセットにより定義されます。パーティション内の最初または最後の行からのオフセットには、FIRST()+n および LAST()-n を使用してください。開始と終了を省略すると、パーティション全体が使用されます。

たとえば、次のビューには四半期ごとの売上高が示されています。日付パーティション内の期間平均は、全日付にわたって平均した売上高の値を返します。

WINDOW_AVG(SUM([Profit]), FIRST()+1, 0) は、2 行目から現在の行までの SUM(Profit) の平均を計算します。

WINDOW_CORR(expression1, expression2, [start, end])


ウィンドウ内の 2 つの式のピアソン相関係数を返します。ウィンドウは、現在の行からのオフセットとして定義されます。パーティション内の最初または最後の行からのオフセットには、FIRST()+n および LAST()-n を使用してください。開始と終了を省略すると、パーティション全体が使用されます。

ピアソン相関係数は、2 つの変数の間の線形関係を測定します。結果は -1 から +1 の範囲となります。ここで、1 つの変数のプラスの変化はもう一方の変数の対応する倍率のプラスの変化を示し、1 は正確なプラスの直線関係を示します。0 は分布間に線形の関係がないことを示し、−1 は正確なマイナスの関係を示します。

同等の集計関数:CORR があります。Tableau 関数 (アルファベット順)(Link opens in a new window)を参照してください。

次の計算式は、5 行前から現在の行の SUM(Profit) および SUM(Sales) のピアソン相関係数を返します。

WINDOW_CORR(SUM[Profit]), SUM([Sales]), -5, 0)

WINDOW_COUNT(expression, [start, end])


ウィンドウ内の式の数を返します。ウィンドウは現在の行からのオフセットにより定義されます。パーティション内の最初または最後の行からのオフセットには、FIRST()+n および LAST()-n を使用してください。開始と終了を省略すると、パーティション全体が使用されます。

WINDOW_COUNT(SUM([Profit]), FIRST()+1, 0) は、2 行目から現在の行までの SUM(Profit) の件数を計算します。

WINDOW_COVAR(expression1, expression2, [start, end])


ウィンドウ内の 2 つの式の標本共分散を返します。ウィンドウは、現在の行からのオフセットとして定義されます。パーティション内の最初または最後の行からのオフセットには、FIRST()+n および LAST()-n を使用してください。開始および終了引数を省略すると、ウィンドウはパーティション全体となります。

標本共分散では、母共分散によって (WINDOW_COVARP 関数で) 使用される n ではなく、non-null データ ポイントの数である n-1 を使用して共分散計算を標準化します。標本共分散は、データが大きな人口に対する共分散の見積もりに使用されるランダムなサンプルの場合に適しています。

同等の集計関数:COVAR があります。Tableau 関数 (アルファベット順)(Link opens in a new window)を参照してください。

次の計算式は、2 行前から現在の行の SUM(Profit) および SUM(Sales) の標本共分散を返します。

WINDOW_COVAR(SUM([Profit]), SUM([Sales]), -2, 0)

WINDOW_COVARP(expression1, expression2, [start, end])


ウィンドウ内で 2 つの式の母共分散を返します。ウィンドウは、現在の行からのオフセットとして定義されます。パーティション内の最初または最後の行からのオフセットには、FIRST()+n および LAST()-n を使用してください。開始と終了を省略すると、パーティション全体が使用されます。

母共分散は標本共分散に (n-1)/n を乗算したものです。ここで、n は non-null データ ポイントの合計です。母共分散は、対象のすべてのアイテムに対して利用可能なデータがある場合に最適です。反対に、アイテムのランダムなサブセットのみがある場合には、標本共分散 (WINDOW_COVAR 関数を使用) が適しています。

同等の集計関数:COVARP があります。Tableau 関数 (アルファベット順)(Link opens in a new window)

次の計算式は、2 行前から現在の行の SUM(Profit) および SUM(Sales) の母共分散を返します。

WINDOW_COVARP(SUM([Profit]), SUM([Sales]), -2, 0)

WINDOW_MEDIAN(expression, [start, end])


ウィンドウ内の式の中央値を返します。ウィンドウは現在の行からのオフセットにより定義されます。パーティション内の最初または最後の行からのオフセットには、FIRST()+n および LAST()-n を使用してください。開始と終了を省略すると、パーティション全体が使用されます。

たとえば、次のビューには四半期ごとの利益が示されています。日付パーティション内のウィンドウの中央値は、全日付にわたる利益の中央値を返します。

WINDOW_MEDIAN(SUM([Profit]), FIRST()+1, 0) は、2 番目の行から現在の行までの SUM(Profit) の中央値を計算します。

WINDOW_MAX(expression, [start, end])


ウィンドウ内の式の最大値を返します。ウィンドウは現在の行からのオフセットにより定義されます。パーティション内の最初または最後の行からのオフセットには、FIRST()+n および LAST()-n を使用してください。開始と終了を省略すると、パーティション全体が使用されます。

たとえば、次のビューには四半期ごとの売上高が示されています。日付パーティション内の期間最大値は、全日付にわたる売上高の最大値を返します。

WINDOW_MAX(SUM([Profit]), FIRST()+1, 0) は、2 番目の行から現在の行までの SUM(Profit) の最大値を計算します。

WINDOW_MIN(expression, [start, end])


ウィンドウ内の式の最小値を返します。ウィンドウは現在の行からのオフセットにより定義されます。パーティション内の最初または最後の行からのオフセットには、FIRST()+n および LAST()-n を使用してください。開始と終了を省略すると、パーティション全体が使用されます。

たとえば、次のビューには四半期ごとの売上高が示されています。日付パーティション内の期間最小値は、全日付にわたる売上高の最小値を返します。

WINDOW_MIN(SUM([Profit]), FIRST()+1, 0) は、2 番目の行から現在の行までの SUM(Profit) の最小値を計算します。

WINDOW_PERCENTILE(expression, number, [start, end])


ウィンドウ内の指定した百分位値に対応する値を返します。ウィンドウは現在の行からのオフセットにより定義されます。パーティション内の最初または最後の行からのオフセットには、FIRST()+n および LAST()-n を使用してください。開始と終了を省略すると、パーティション全体が使用されます。

WINDOW_PERCENTILE(SUM([Profit]), 0.75, -2, 0) は、2 行前から現在の行に SUM(Profit) の 75% を返します。

WINDOW_STDEV(expression, [start, end])


ウィンドウ内の式のサンプルの標準偏差を返します。ウィンドウは現在の行からのオフセットにより定義されます。パーティション内の最初または最後の行からのオフセットには、FIRST()+n および LAST()-n を使用してください。開始と終了を省略すると、パーティション全体が使用されます。

WINDOW_STDEV(SUM([Profit]), FIRST()+1, 0) は、2 番目の行から現在の行までの SUM(Profit) の標準偏差を計算します。

WINDOW_STDEVP(expression, [start, end])


ウィンドウ内の式のバイアス標準偏差を返します。ウィンドウは現在の行からのオフセットにより定義されます。パーティション内の最初または最後の行からのオフセットには、FIRST()+n および LAST()-n を使用してください。開始と終了を省略すると、パーティション全体が使用されます。

WINDOW_STDEVP(SUM([Profit]), FIRST()+1, 0) は、2 番目の行から現在の行までの SUM(Profit) の標準偏差を計算します。

WINDOW_SUM(expression, [start, end])


ウィンドウ内の式の合計を返します。ウィンドウは現在の行からのオフセットにより定義されます。パーティション内の最初または最後の行からのオフセットには、FIRST()+n および LAST()-n を使用してください。開始と終了を省略すると、パーティション全体が使用されます。

たとえば、次のビューには四半期ごとの売上高が示されています。日付パーティション内で計算される期間合計は、全四半期にわたる売上高の合計を返します。

WINDOW_SUM(SUM([Profit]), FIRST()+1, 0) は、2 番目の行から現在の行までの SUM(Profit) の合計を計算します。

WINDOW_VAR(expression, [start, end])


ウィンドウ内の式の標本分散を返します。ウィンドウは現在の行からのオフセットにより定義されます。パーティション内の最初または最後の行からのオフセットには、FIRST()+n および LAST()-n を使用してください。開始と終了を省略すると、パーティション全体が使用されます。

WINDOW_VAR((SUM([Profit])), FIRST()+1, 0) は、2 番目の行から現在の行までの SUM(Profit) の分散を計算します。

WINDOW_VARP(expression, [start, end])


ウィンドウ内の式のバイアス分散を返します。ウィンドウは現在の行からのオフセットにより定義されます。パーティション内の最初または最後の行からのオフセットには、FIRST()+n および LAST()-n を使用してください。開始と終了を省略すると、パーティション全体が使用されます。

WINDOW_VARP(SUM([Profit]), FIRST()+1, 0) は、2 番目の行から現在の行までの SUM(Profit) の分散を計算します。

計算エディターを使用した表計算の作成

次の手順に従って、計算エディターを使用した表計算の作成方法について学習してください。

: Tableau では、表計算の作成方法が複数あります。ここではそのうちの 1 つを例として取り上げます。詳細については、表計算での値の変換(Link opens in a new window)を参照してください。

ステップ 1: ビジュアライゼーションの作成

  1. Tableau Desktop で、Tableau に付属の "Sample-Superstore (サンプル - スーパーストア)" 保存したデータ ソースに接続します。

  2. ワークシートに移動します。

  3. [データ] ペインの [ディメンション] から、"Order Date (注文日)"[列] シェルフまでドラッグします。

  4. [データ] ペインの [ディメンション] から、"Sub-Category (サブカテゴリ―)"[行] シェルフまでドラッグします。

  5. [データ] ペインの [メジャー] から、"Sales (売上高)" を [マーク] カードの [テキスト] にドラッグします。

    ビジュアライゼーションがテキスト表に更新されます。

ステップ 2: 表計算の作成

  1. [分析] > [計算フィールドの作成] を選択します。

  2. 開いた計算エディターで、次の操作を実行します。

    • 計算フィールドに "Running Sum of Profit (収益の累計)" という名前を付けます。
    • 次の式を入力します。

      RUNNING_SUM(SUM([Profit]))

      この式で、収益の累計を計算します、計算は表全体に対して実行されます。

    • 終了したら、[OK] をクリックします。

      新しい表計算フィールドが [データ] ペインの [メジャー] の下に表示されます。他のフィールドと同様に、このフィールドを 1 つ以上のビジュアライゼーションで使用できます。

ステップ 3: ビジュアライゼーションでの表計算の使用

  1. [データ] ペインの [メジャー] から、"Running Sum of Profit (収益の累計)" を [マーク] カードの [色] にドラッグします。

  2. [マーク] カードで、[マーク タイプ] ドロップダウンをクリックし、[四角] を選択します。

    ビジュアライゼーションが更新され、次のようにテーブルがハイライトされます。

ステップ 4: 表計算の編集

  1. [マーク] カードの "Running Sum of Profit (収益の累計)" を右クリックし、[表計算の編集] を選択します。
  2. 開いた [表計算] ダイアログ ボックスの [次を使用して計算] で、[表 (下)] を選択します。

    ビジュアライゼーションが更新され、次のようになります。

関連項目

表計算の作成(Link opens in a new window)

表計算のタイプ

表計算のカスタマイズ(Link opens in a new window)

簡易表計算

Tableau で使用する関数

Tableau 関数 (カテゴリ別)

Tableau 関数 (アルファベット順)

ありがとうございます! フィードバックの送信中にエラが発生しました。もう一度やり直すか、メッセージをお送りください