分析への計算フィールドの追加 - Amazon QuickSight

分析への計算フィールドの追加

次の 1 つまたは複数を使用して、データを変換する計算フィールドを作成します。

  • Operators

  • 関数

  • 集計関数 (これらは分析にのみ追加できます)。

  • データを含むフィールド

  • その他の計算フィールド

計算フィールドは、データの準備中または分析ページからデータセットに追加できます。データの準備中に計算フィールドをデータセットに追加すると、そのデータセットを使用するすべての分析でそのフィールドを使用できます。分析ページからデータセットに追加すると、計算フィールドはその分析でのみ使用可能です。

分析は単一行オペレーションと集計オペレーションの両方をサポートしています。単一行オペレーションは、各行に対する異なる (可能性のある) 結果を返すオペレーションです。集計オペレーションは、行の集合全体に対する常に同じ結果セットを返すオペレーションです。例えば、条件なしのシンプルな文字列関数を使用すると、各行が変更されます。集計関数を使用すると、グループ内のすべての行に適用されます。米国の総売上額を求める場合は、同じ数値が行の集合全体に適用されます。特定の州のデータを求める場合は、新しいグループを反映するように総売上額が変更されます。この場合も、行の集合全体に対する 1 つの結果が返されます。

分析内で集計される計算フィールドを作成することで、データをドリルダウンできます。その集計フィールドの値は、各レベルで適切に再計算されます。このタイプの集計は、データセットの準備時には不可能です。

例えば、国別、地域別、州別の利益率を把握するとします。分析フィールドに計算フィールド (sum(salesAmount - cost)) / sum(salesAmount) を追加できます。このフィールドは、アナリストが地理情報をドリルダウンした時点で、国別、地域別、州別に計算されます。

データセットの計算フィールドについては、データセットの計算フィールドの使用を参照してください。

計算エディタの使用

データを分析前に変換するために、計算フィールドを作成します。サポートされている関数と演算子の詳細については、Amazon QuickSight の計算フィールドの関数と演算子のリファレンス を参照してください。

計算フィールドはデータセットに直接追加できます。追加したフィールドは、このデータセットを使用するすべてのユーザーが使用できます。分析でデータセットを使用する場合は、追加の計算フィールドを追加できます。分析に追加したフィールドは、その分析のみで使用できます。代わりに分析にフィールドを追加する方法の詳細については、分析への計算フィールドの追加を参照してください。

計算フィールドを追加または編集するには

  1. 使用するデータセットを開きます。

    分析内からデータセットを開くには、左側のデータセット近くの鉛筆アイコンを選択してリストを開きます。メニューの省略記号 () を選択します。次に、[Edit (編集)] を選択します。このアクションでデータセットエディタが開きます。データセットエディタはデータ準備画面とも呼ばれます。この画面では、分析にのみフィールドを追加するのではなく、データセットに直接フィールドを追加できます。

  2. 次のいずれかを実行し、計算フィールドの式エディタを開きます。

    • 新しいフィールドを作成するには、左側の [Add calculated field (計算フィールドを追加)] を選択します。

    • 既存のフィールドを編集するには、[Calculated fields (計算フィールド)] からフィールドを選択し、コンテキストメニュー (右クリック) から [編集] を選択します。

  3. [Add title (タイトルの追加)] にわかりやすい名前を入力し、新しい計算フィールドに名前を付けます。この名前はデータセットのフィールドリストに表示されるため、他のフィールドと同じような名前になるはずです。この例では、フィールドに Total Sales This Year という名前を付けます。

  4. (オプション) コメントを追加します。例えば、スラッシュとアスタリスクでテキストを囲むことで、式の動作を説明します。

    /* Calculates sales per year for this year*/
  5. 使用するメトリクス、関数、その他の項目を特定します。この例では、以下を特定する必要があります。

    • 使用するメトリクス

    • 関数: ifelsedatediff

    「今年中に売上が発生した場合は総売上を表示し、それ以外の場合は 0 を表示する」のようなステートメントを作成したいと考えているとします。

    ifelse 関数を追加するには、[Functions (関数)] リストを開きます。[All (すべて)] を選択し、すべての関数のリストを閉じます。これで、関数のグループが表示されます。[Aggregate (集計)]、[Conditional (条件付き)]、[Date (日付)] などです。

    [Conditional (条件付き)] を選択し、ifelse をダブルクリックして WorkSpace に追加します。

    ifelse()
  6. WorkSpace の括弧内にカーソルを置き、空白行を 3 行追加します。

    ifelse( )
  7. 最初の空白行にカーソルを置いて、dateDiff 関数を検索します。関数は [Data (日付)] の下の [Functions (関数)] に一覧表示されています。また、[Search functions (関数の検索)] に date を入力して検索できます。dateDiff 関数は、その名前の一部として date を持つすべての関数を返します。[Data (日付)] に一覧表示されているすべての関数が返されるわけではありません。たとえば、now 関数は検索結果から欠落しています。

    dateDiff をダブルクリックして、ifelse ステートメントの先頭の空白行に追加します。

    ifelse( dateDiff() )

    dateDiff が使用しているパラメータを追加します。カーソルを dateDiff の括弧内に置き、date1date2period を追加します。

    1. date1 の場合。この最初のパラメータは、日付を含むフィールドです。[Field (フィールド)] で検索し、ダブルクリックするか名前を入力して、WorkSpace に追加します。

    2. date2 の場合、コンマを追加し、[Functions (関数)] で truncDate() を選択します。括弧内に、truncDate( "YYYY", now() ) のようにピリオドと日付を追加します。

    3. period の場合、date2 の後にコンマを追加し、YYYY を入力します。これは、その年の期間です。サポートされているすべての期間のリストを表示するには、[Functions (関数)] リストから dateDiff を見つけ、[Learn more (詳細はこちら)] を選択してドキュメントを開きます。既にドキュメントが表示されている場合は、dateDiff を参照してください。

    必要に応じて、読みやすくするためにいくつかのスペースを追加します。式は次のようになります。

    ifelse( dateDiff( {Date}, truncDate( "YYYY", now() ) ,"YYYY" ) )
  8. 戻り値を指定します。この例では、ifelse にある最初のパラメータは、TRUEFALSE の値を返す必要があります。現行年度が必要で、それを今年度と比較するには、dateDiff ステートメントが 0 を返すように指定します。ifelseif の部分は、売上年度と現行年度との間に差がない行を true として評価します。

    dateDiff( {Date}, truncDate( "YYYY", now() ) ,"YYYY" ) = 0

    昨年度の TotalSales のフィールドを作成するには、01 に変更します。

    truncDate の代わりに addDateTime を使っても、同じ作業を実行できます。次に、各前年度について、addDateTime の最初のパラメータを変更して各年度を表示します。これを行うには、昨年度には -1、一昨年度には -2 というように使用します (以下同様)。addDateTime を使用する場合、dateDiff 関数は各年度で = 0 のままにします。

    dateDiff( {Discharge Date}, addDateTime(-1, "YYYY", now() ) ,"YYYY" ) = 0 /* Last year */
  9. カーソルを最初の空白行、dateDiff の真下に移動させます。カンマを追加します。

    ifelse ステートメントの then の部分に、売上金額、TotalSales を含む測定 (メトリクス) を選択する必要があります。

    フィールドを選択するには、[Field (フィールド)] リストを開き、フィールドをダブルクリックして画面に追加します。または、名前を入力します。スペースを含む名前には、中括弧 { } を付けます。メトリクスには、別の名前が付く可能性があります。どのフィールドがメトリクスであるかは、その前の番号記号 (#) を見ればわかります。

    式は次のようになります。

    ifelse( dateDiff( {Date}, truncDate( "YYYY", now() ) ,"YYYY" ) = 0 ,{TotalSales} )
  10. 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 )
  11. 作業内容を保存するときは、右上の [Save (保存)] を選択します。

    式にエラーがあると、エディタの下部にエラーメッセージが表示されます。式に赤い波線がないかチェックし、その行にカーソルを合わせてエラーメッセージの内容を確認します。一般的なエラーには、句読点の欠落、パラメータの欠落、スペルミス、無効なデータ型などがあります。

    変更を加えないようにするには、[Cancel (キャンセル)] を選択します。

計算フィールドにパラメータ値を追加するには

  1. 計算フィールドのパラメータは参照することが可能です。式にパラメータを追加すると、そのパラメータの現在の値を追加できます。

  2. パラメータを追加するには、[Parameters (パラメータ)] リストを開き、値を含めたいパラメータを選択します。

  3. (オプション) パラメータを手動で式に追加するときは、パラメータの名前を入力します。次に、それを中括弧 {} で囲み、$ でプレフィックス (${parameterName} など) を付けます。

データセット内のフィールドのデータ型は、計算フィールドの型を含め、変更が可能です。選択できるデータ型は、フィールド内のデータと一致するものだけです。

計算フィールドのデータ型を変更するには

  • 計算フィールド (左側) を使用する場合、変更するフィールドを選択し、コンテキストメニュー (右クリック) から [Change data type (データタイプの変更)] を選択します。

データセット内の他のフィールドとは異なり、計算フィールドは無効にできません。代わりに、それらを削除します。

計算フィールドを削除するには

  • 計算フィールド (左側) を使用する場合、変更するフィールドを選択し、コンテキストメニュー (右クリック) から [Delete (削除)] を選択します。