

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 計算フィールドの追加
<a name="adding-a-calculated-field-analysis"></a>

次の 1 つまたは複数を使用して、データを変換する計算フィールドを作成します。
+ [オペレータ](arithmetic-and-comparison-operators.md)
+ [関数](functions.md)
+ 集計関数 (これらは分析にのみ追加できます)。
+ データを含むフィールド
+ その他の計算フィールド

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

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

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

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

**Topics**
+ [分析への計算フィールドの追加](#using-the-calculated-field-editor-analysis)
+ [データセットへの計算フィールドの追加](#using-the-calculated-field-editor)
+ [計算フィールドでの小数値の処理](#handling-decimal-fields)

## 分析への計算フィールドの追加
<a name="using-the-calculated-field-editor-analysis"></a>

データセットを分析に追加すると、データセット内に存在するすべての計算フィールドが分析に追加されます。分析レベルで計算フィールドをさらに追加して、その分析でのみ使用できる計算フィールドを作成できます。

**分析に計算フィールドを追加する**

1. [クイックコンソール](https://quicksight.aws.amazon.com/)を開きます。

1. 変更する分析を開きます。

1. **[データ]** ペインの左上にある **[追加]** を選択し、 **[\$1 計算フィールド]** を選択します。

   1. 開いた計算エディタで、以下の作業を行います。

   1. 計算フィールドの名前を入力します。

   1. データセット、関数、および演算子からのフィールドを使用して式を入力します。

1. 完了したら、**[保存]** を選択します。

Quick Sight で使用可能な関数を使用して数式を作成する方法の詳細については、「」を参照してください[Amazon Quick の計算フィールド関数と演算子リファレンス関数と演算子](calculated-field-reference.md)。

## データセットへの計算フィールドの追加
<a name="using-the-calculated-field-editor"></a>

Amazon Quick Sight の作成者は、データセットの作成のデータ準備段階で計算フィールドを生成できます。データセットのために計算フィールドを作成すると、そのフィールドは該当のデータセット内の新しい列になります。データセットを使用するすべての分析は、そのデータセットの計算フィールドを継承します。

計算フィールドが行レベルで動作し、データセットが に保存されている場合SPICE、Quick Sight は結果を計算してマテリアライズしますSPICE。計算フィールドが集計関数に依存している場合、Quick Sight は式を保持し、分析の生成時に計算を実行します。このタイプの計算フィールドは、具現化されていない計算フィールドと呼ばれます。

**データセットの計算フィールドを追加または編集する**

1. 使用するデータセットを開きます。詳細については、「[データセットの編集](edit-a-data-set.md)」 を参照してください。

1. データの準備ページで、以下のいずれかを実行します。
   + 新しいフィールドを作成するには、左側の [**Add calculated field (計算フィールドを追加)**] を選択します。
   + 既存のフィールドを編集するには、左側の **[Calculated fields]** (計算フィールド) からフィールドを選択し、コンテキストメニュー (右クリック) から **[Edit]** (編集) を選択します。

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

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

   ```
   /* Calculates sales per year for this year*/
   ```

1. 使用するメトリクス、関数、その他の項目を特定します。この例では、以下を特定する必要があります。
   + 使用するメトリクス
   + 関数: `ifelse` および `datediff`

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

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

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

   ```
   ifelse()
   ```

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

   ```
   ifelse(
                                               
                                               
                                               
   )
   ```

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

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

   ```
   ifelse(
   dateDiff()                                            
                                               
                                               
   )
   ```

   `dateDiff` で使用されているパラメータを追加します。カーソルを `dateDiff` の括弧内に置き、`date1`、`date2`、`period` を追加します。

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

   1. `date2` の場合、コンマを追加し、[**Functions (関数)**] で `truncDate()` を選択します。括弧内には、日付と期間を **truncDate( "YYYY", now() )** のように追加します。

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

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

   ```
   ifelse(
      dateDiff( {Date}, truncDate( "YYYY", now() ) ,"YYYY" )                                       
                                               
                                               
   )
   ```

1. 戻り値を指定します。この例では、`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 */
   ```

1. カーソルを、`dateDiff` の真下にある最初の空白行に移動させます。カンマを追加します。

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

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

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

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

1. `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                                         
   )
   ```

1. 作業内容を保存するときは、右上の [**Save (保存)**] を選択します。

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

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

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

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

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

1. (オプション) パラメータを手動で式に追加するときは、パラメータの名前を入力します。次に、入力した内容を中括弧 `{}` で囲み、`$` でプレフィックス (例: `${parameterName}`) します。

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

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

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

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

## 計算フィールドでの小数値の処理
<a name="handling-decimal-fields"></a>

データセットがダイレクトクエリモードを使用する場合、10 進データ型の計算は、データセットの生成元のソースエンジンの動作によって決まります。特定のケースでは、Quick Sight は特別な処理を適用して出力計算のデータ型を決定します。

データセットが SPICE クエリモードを使用し、計算フィールドが具現化される場合、結果のデータ型は特定の関数演算子と入力のデータ型によって決まります。以下の表は、一部の数値計算フィールドで想定される動作を示しています。

**単項演算子**

次の表は、使用する演算子と入力した値のデータ型に基づいて出力されるデータ型を示しています。例えば、`abs` 計算に整数を入力した場合、出力値のデータ型は整数になります。


****  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/quick/latest/userguide/adding-a-calculated-field-analysis.html)

**二項演算子**

次の表は、入力した 2 つの値のデータ型に基づいてどのデータ型が出力されるかを示しています。例えば、算術演算子の場合、2 つの整数データ型を指定すると、計算結果は整数として出力されます。

基本的な演算子 (\$1、-、\$1) の場合:


|  | **整数** | **10 進固定** | **10 進浮動** | 
| --- | --- | --- | --- | 
|  **整数**  |  整数  |  10 進固定  |  10 進浮動  | 
|  **10 進固定**  |  10 進固定  |  10 進固定  |  10 進浮動  | 
|  **10 進浮動**  |  10 進浮動  |  10 進浮動  |  10 進浮動  | 

除算演算子 (/) の場合:


|  | **整数** | **10 進固定** | **10 進浮動** | 
| --- | --- | --- | --- | 
|  **整数**  |  10 進浮動  |  10 進浮動  |  10 進浮動  | 
|  **10 進固定**  |  10 進浮動  |  10 進固定  |  10 進浮動  | 
|  **10 進浮動**  |  10 進浮動  |  10 進浮動  |  10 進浮動  | 

指数演算子および mod 演算子 (^、%) の場合:


|  | **整数** | **10 進固定** | **10 進浮動** | 
| --- | --- | --- | --- | 
|  **整数**  |  10 進浮動  |  10 進浮動  |  10 進浮動  | 
|  **10 進固定**  |  10 進浮動  |  10 進浮動  |  10 進浮動  | 
|  **10 進浮動**  |  10 進浮動  |  10 進浮動  |  10 進浮動  | 