計算フィールドの追加
次の 1 つまたは複数を使用して、データを変換する計算フィールドを作成します。
計算フィールドは、データの準備中または分析ページからデータセットに追加できます。データの準備中に計算フィールドをデータセットに追加すると、そのデータセットを使用するすべての分析でそのフィールドを使用できます。分析ページからデータセットに追加すると、計算フィールドはその分析でのみ使用可能です。
分析は単一行オペレーションと集計オペレーションの両方をサポートしています。単一行オペレーションは、各行に対する異なる (可能性のある) 結果を返すオペレーションです。集計オペレーションは、行の集合全体に対する常に同じ結果セットを返すオペレーションです。例えば、条件なしのシンプルな文字列関数を使用すると、各行が変更されます。集計関数を使用すると、グループ内のすべての行に適用されます。米国の総売上額を求める場合は、同じ数値が行の集合全体に適用されます。特定の州のデータを求める場合は、新しいグループを反映するように総売上額が変更されます。この場合も、行の集合全体に対する 1 つの結果が返されます。
分析内で集計される計算フィールドを作成することで、データをドリルダウンできます。その集計フィールドの値は、各レベルで適切に再計算されます。このタイプの集計は、データセットの準備時には不可能です。
例えば、国別、地域別、州別の利益率を把握するとします。分析フィールドに計算フィールド (sum(salesAmount - cost)) / sum(salesAmount)
を追加できます。このフィールドは、アナリストが地理情報をドリルダウンした時点で、国別、地域別、州別に計算されます。
分析への計算フィールドの追加
分析に計算フィールドを追加する
-
分析で左上の [Add] (追加) をクリックしてから、[Add calculated field] (計算フィールドを追加) をクリックします。
-
開いた計算エディタで、以下の作業を行います。
-
計算フィールドの名前を入力します。
-
データセット、関数、および演算子からのフィールドを使用して式を入力します。
-
-
完了したら、[Save] (保存) を選択します。
QuickSight で利用できる関数を使用して式を作成する方法の詳細については、「Amazon QuickSight の計算フィールドの関数と演算子のリファレンス 」を参照してください。
データセットへの計算フィールドの追加
計算フィールドはデータセットに直接追加できます。追加したフィールドは、このデータセットを使用するすべてのユーザーが使用できます。分析でデータセットを使用する場合は、追加の計算フィールドを追加できます。分析に追加したフィールドは、その分析のみで使用できます。
データセットの計算フィールドを追加または編集する
-
使用するデータセットを開きます。詳細については、「データセットの編集」 を参照してください。
-
データの準備ページで、以下のいずれかを実行します。
-
新しいフィールドを作成するには、左側の [Add calculated field (計算フィールドを追加)] を選択します。
-
既存のフィールドを編集するには、左側の [Calculated fields] (計算フィールド) からフィールドを選択し、コンテキストメニュー (右クリック) から [Edit] (編集) を選択します。
-
-
計算エディタで [Add title] (タイトルを追加) にわかりやすい名前を入力し、新しい計算フィールドに名前を付けます。この名前はデータセットのフィールドリストに表示されるため、他のフィールドと同じような名前になるはずです。この例では、フィールドに
Total Sales This Year
という名前が付けられています。 -
(オプション) コメントを追加します。例えば、スラッシュとアスタリスクでテキストを囲むことで、式の動作を説明します。
/* Calculates sales per year for this year*/
-
使用するメトリクス、関数、その他の項目を特定します。この例では、以下を特定する必要があります。
-
使用するメトリクス
-
関数:
ifelse
およびdatediff
「今年中に売上が発生した場合は総売上を表示し、それ以外の場合は 0 を表示する」のようなステートメントを作成したいと考えているとします。
ifelse
関数を追加するには、[Functions (関数)] リストを開きます。[All (すべて)] を選択し、すべての関数のリストを閉じます。これで、関数のグループが表示されます。[Aggregate (集計)]、[Conditional (条件付き)]、[Date (日付)] などです。[Conditional (条件付き)] を選択し、
ifelse
をダブルクリックして WorkSpace に追加します。ifelse()
-
-
WorkSpace の括弧内にカーソルを置き、空白行を 3 行追加します。
ifelse( )
-
最初の空白行にカーソルを置いて、
dateDiff
関数を検索します。関数は [Data (日付)] の下の [Functions (関数)] に一覧表示されています。また、[Search functions (関数の検索)] にdate
を入力して検索できます。dateDiff
関数は、その名前の一部として
を持つすべての関数を返します。[Data (日付)] に一覧表示されているすべての関数が返されるわけではありません。たとえば、date
now
関数は検索結果から欠落しています。dateDiff
をダブルクリックして、この関数をifelse
ステートメントの先頭の空白行に追加します。ifelse( dateDiff() )
dateDiff
で使用されているパラメータを追加します。カーソルをdateDiff
の括弧内に置き、date1
、date2
、period
を追加します。-
date1
の場合、この最初のパラメータは、日付が含まれているフィールドです。[Field (フィールド)] で検索し、ダブルクリックするか名前を入力して、WorkSpace に追加します。 -
date2
の場合、コンマを追加し、[Functions (関数)] でtruncDate()
を選択します。括弧内には、日付と期間をtruncDate( "YYYY", now() )
のように追加します。 -
period
の場合、date2
の後にコンマを追加した上で、YYYY
を入力します。これは、その年の期間です。サポートされているすべての期間のリストを表示するには、[Functions (関数)] リストからdateDiff
を見つけ、[Learn more (詳細はこちら)] を選択してドキュメントを開きます。このように、既にドキュメントが表示されている場合は、「dateDiff」を参照してください。
必要に応じて、読みやすくするためにいくつかのスペースを追加します。式は次のようになります。
ifelse( dateDiff( {Date}, truncDate( "YYYY", now() ) ,"YYYY" ) )
-
-
戻り値を指定します。この例では、
ifelse
にある最初のパラメータがTRUE
またはFALSE
の値を返す必要があります。この年度と比較するために現在の年度が必要なので、dateDiff
ステートメントからは0
が返されるように指定します。ifelse
のif
の部分は、売上年度と現在の年度との間に差がない行を true として評価します。dateDiff( {Date}, truncDate( "YYYY", now() ) ,"YYYY" ) =
0
昨年度についての
TotalSales
フィールドを作成するには、0
を1
に変更します。truncDate
の代わりにaddDateTime
を使っても、同じ作業を実行できます。次に、以前の各年度について、addDateTime
の最初のパラメータを変更してその年度を表示します。これを行うには、昨年度には-1
、一昨年度には-2
のように指定していきます。addDateTime
を使用する場合、dateDiff
関数は各年度について= 0
のままにしておきます。dateDiff( {Discharge Date},
addDateTime(-1, "YYYY", now() )
,"YYYY" ) = 0 /* Last year */ -
カーソルを、
dateDiff
の真下にある最初の空白行に移動させます。カンマを追加します。ifelse
ステートメントのthen
の部分では、売上額のTotalSales
を含む測定 (メトリクス) を選択する必要があります。フィールドを選択するには、[Field (フィールド)] リストを開き、フィールドをダブルクリックして画面に追加します。または、名前を入力します。スペースを含む名前は、中括弧
{ }
で囲みます。メトリクスには、別の名前が付く可能性があります。どのフィールドがメトリクスであるかは、その前の番号記号 (#) を見ればわかります。式は次のようになります。
ifelse( dateDiff( {Date}, truncDate( "YYYY", now() ) ,"YYYY" ) = 0 ,{TotalSales} )
-
else
句を追加します。これは、ifelse
関数での必須事項ではありませんが、ここでは追加します。レポート目的の場合、Null 値を含む行は省略されることがあるため、通常は Null 値を追加する必要はありません。ifelse の else の部分を
0
に設定します。すると、このフィールドは前年度の売上を含む行が0
になります。このためには、空白行にカンマを追加し、続いて
0
を追加します。最初にコメントを追加している場合、完成したifelse
式は次のようになります。/* Calculates sales per year for this year*/ ifelse( dateDiff( {Date}, truncDate( "YYYY", now() ) ,"YYYY" ) = 0 ,{TotalSales} ,0 )
-
作業内容を保存するときは、右上の [Save (保存)] を選択します。
式にエラーがあると、エディタの下部にエラーメッセージが表示されます。式に赤い波線がないかチェックし、その行にカーソルを合わせてエラーメッセージの内容を確認します。一般的なエラーには、句読点の欠落、パラメータの欠落、スペルミス、無効なデータ型などがあります。
変更を加えないようにするには、[Cancel (キャンセル)] を選択します。
計算フィールドにパラメータ値を追加するには
-
計算フィールドのパラメータは参照することが可能です。式にパラメータを追加すると、そのパラメータの現在の値を追加できます。
-
パラメータを追加するには、[Parameters (パラメータ)] リストを開き、値を含めたいパラメータを選択します。
-
(オプション) パラメータを手動で式に追加するときは、パラメータの名前を入力します。次に、入力した内容を中括弧
{}
で囲み、$
でプレフィックス (例:${parameterName}
) します。
データセット内のフィールドのデータ型は、計算フィールドの型を含め、変更が可能です。選択できるデータ型は、フィールド内のデータと一致するものだけです。
計算フィールドのデータ型を変更するには
-
計算フィールド (左側) を使用する場合、変更するフィールドを選択し、コンテキストメニュー (右クリック) から [Change data type (データタイプの変更)] を選択します。
データセット内の他のフィールドとは異なり、計算フィールドは無効にできません。代わりに、それらを削除します。
計算フィールドを削除するには
-
[Calculated fields (計算フィールド)] (左側) を使用する場合、変更するフィールドを選択し、コンテキストメニュー (右クリック) から [Delete(削除)] を選択します。
計算フィールドでの小数値の処理
小数データ型では、小数点以下第 4 位までサポートされています。データ準備時に、算出されるフィールドで小数点以下第 5 位以降を持つ小数データが使用される場合は、完全な値を使用して計算が行われます。その結果が再び小数点第 5 位以下を持つ小数データである場合、結果は、データセットが SPICE にインポートされるときか、分析に表示されるときに切り捨てられます。
例えば、小数フィールド Field_A の値が 0.00006 の場合、ユーザーインターフェイスには 0.0 と表示されます。計算では、引き続き完全な値 0.00006 が使用されます。この値を計算でどのように使用できるかについて、次にいくつか例を示します。
-
Field_A > 0 = true 分析に表示、または SPICE にインポートされた計算フィールドの値は
true
です。 -
ceil(Field_A) = 1 分析に表示、または SPICE にインポートされた計算フィールドの値は
1
です。 -
Field_A + 0.00009 = 0.00015 分析に表示、または SPICE にインポートされた計算フィールドの値は
0.0001
です。 -
Field_A * 1.5 = 0.00009 分析に表示、または SPICE にインポートされた計算フィールドの値は
0.0
です。