# Sum - チャート関数

Sum() は、集計データ全体の数式や項目による値の合計を計算します。

構文:

Sum([{SetExpression}] [DISTINCT] [TOTAL [&lt;fld {,fld}&gt;]] expr])

戻り値データ型： 数値

引数

| 引数 | 説明 |
| --- | --- |
| expr | メジャーの対象となるデータが含まれている数式または項目。 |
| SetExpression | デフォルトでは、集計関数は選択されたレコード セットに対して集計を行います。Set 分析数式でレコード セットを定義することも可能です。 |
| DISTINCT | 関数の引数の前に DISTINCT という用語が付いている場合、関数の引数の評価から生じる重複は無視されます。<br><br>情報メモDISTINCT 修飾子はサポート対象ですが、一部のデータが省略されていても総額が表示されていると誤解を招く可能性があるため、使用する場合は細心の注意が必要です。 |
| TOTAL | 関数の引数の前に TOTAL の文字が配置されている場合、現在の軸の値に関連しているものだけでなく、現在の選択範囲内にあるすべての可能な値に対して計算が実行されます。つまりチャート軸は無視されます。<br><br>TOTAL [&lt;fld {.fld}&gt;] (ここで、TOTAL 修飾子の後には、1 つまたは複数の項目名のリストがチャート軸変数のサブセットとして続く) を使用して、合計絞込値のサブセットを作成できます。<br><br>[集計範囲の定義](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

例: チャートの数式

| 例 | 結果 |
| --- | --- |
| `Sum(UnitSales)` | `UnitSales` の値の合計を返します。 |
| `Sum(UnitSales*UnitPrice)` | 集計された `UnitPrice` と `UnitSales` を乗算した合計を返します。 |
| `Sum(TOTAL UnitSales*UnitPrice)` | `TOTAL` 修飾子は、チャートの軸を無視して合計が計算されることを意味するため、テーブル内のすべての行の総合計および合計を返します。 |
| `Sum({1} TOTAL UnitSales*UnitPrice)` | set 分析数式 `{1}` は、選択された内容に関係なく、評価されるレコード セットを `ALL` として定義します。 |

## 例 - Sum の基本

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/sum.htm)

#### チャートの数式

概要

データ ロード エディターを開き、以下のロード スクリプトを新しいセクションに追加します。

ロード スクリプトには次が含まれています:

* 「`Example`」というデータ テーブルにロードされるデータセット。

* データ テーブル内の次の項目:

  * `Customer`

  * `Product`

  * `UnitSales`

  * `UnitPrice`

ロード スクリプト

```
Example:
LOAD * inline [
Customer|Product|UnitSales|UnitPrice
Astrida|AA|4|16
Astrida|AA|10|15
Astrida|BB|9|9
Betacab|BB|5|10
Betacab|CC|2|20
Betacab|DD||25
Canutility|AA|8|15
Canutility|CC||19
] (delimiter is '|');
```

結果

データをロードしてシートを開きます。新しいテーブルを作成し、これらの項目を軸として追加します:

* `Customer`

* `Product`

次のメジャーを作成します:

* `=Sum(UnitSales)`、`UnitSales` の合計を計算します。

* `=Sum(UnitSales*UnitPrice)`、`UnitSales` に `UnitPrice` を乗算した総計を計算します。

* `=Sum(TOTAL UnitSales*UnitPrice)`、`TOTAL` 修飾子は、チャート軸に関係なく、すべてのセルの合計が同じになることを意味するため、テーブル内のすべての行の合計および総計を計算します。

* `=Sum({1} TOTAL UnitSales*UnitPrice)`、選択した内容に関係なく合計を計算します。これは、set 分析数式 `{1}` によって、選択した内容に関係なく、評価されるレコード セットが `ALL` として定義されているためです。

Results table

| Customer | Product | Sum(UnitSales) | Sum(UnitSales\*UnitPrice) | Sum(TOTAL UnitSales\*UnitPrice) | Sum({1} TOTAL UnitSales\*UnitPrice) |
| --- | --- | --- | --- | --- | --- |
| Totals | - | 38 | 505 | 505 | 505 |
| Astrida | AA | 14 | 214 | 505 | 505 |
| Astrida | BB | 9 | 81 | 505 | 505 |
| Betacab | BB | 5 | 50 | 505 | 505 |
| Betacab | CC | 2 | 40 | 505 | 505 |
| Betacab | DD | 0 | 0 | 505 | 505 |
| Canutility | AA | 8 | 120 | 505 | 505 |
| Canutility | CC | 0 | 0 | 505 | 505 |

この例では、次の点に注意してください。

* 最初のメジャー `Sum(UnitSales` では、`Totals` セルは `38` を返します。これは、すべての顧客と製品の `UnitSales` の値の合計です。各顧客と製品の組み合わせの結果が集計され、各組み合わせの `UnitSales` の総合計が返されます。たとえば、顧客 `Astrida` の製品 `AA` のすべての `UnitSales` の合計は `14` です。

* 2 番目のメジャー `Sum(UnitSales*UnitPrice)` の場合、`Totals` セルは `505` を返します。これは、各顧客と製品の組み合わせについて `UnitSales` に `UnitPrice` を乗算した集計合計です。

* 3 番目のメジャー `Sum(TOTAL UnitSales*UnitPrice)` の場合、`TOTAL` 修飾子はチャート軸を無視するため、`Totals` を含むすべての行に返される値は `505` です。ただし、`Customer` などの軸を選択した場合は、値が変わります。たとえば、`Betacab` を選択した場合、結果のテーブルには `Betacab` レコードごとに 1 つずつ、合計 3 つの行のみが含まれますが、列はすべての行に対して同じ合計値 (`90`) を返します。

* 4 番目のメジャー `Sum({1} TOTAL UnitSales*UnitPrice)` は、set 分析数式 `{1}` で評価されるレコード セットが `ALL` として定義されているため、選択に関係なく値 `505` を返します。たとえば、`Canutility` などの顧客を選択した場合でも、返される値は `505` のままです。

## 例 - 売上データを集計する Sum のシナリオ

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/sum.htm)

#### チャートの数式

概要

データセットには、地域別の店舗の売上高が含まれています。企業は売上を集計したいと考えています。

データ ロード エディターを開き、以下のロード スクリプトを新しいセクションに追加します。

ロード スクリプトには次が含まれています:

* 「`Example`」というデータ テーブルにロードされるデータセット。

* データ テーブル内の次の項目:

  * `Month`

  * `SalesProduct`

  * `Region`

  * `Sales`

ロード スクリプト

```
Example:
Load * inline [
Month,SalesProduct, Region, Sales
2024-01-01, T-shirt, East, 100
2024-01-01, T-shirt, West, 120
2024-01-01, Jeans, East, 200
2024-01-01, Jeans, West, 180
2024-02-01, T-shirt, East, 150
2024-02-01, T-shirt, West, 130
2024-02-01, Jeans, East, 250
2024-02-01, Jeans, West, 220
];
```

結果

データをロードしてシートを開きます。新しいピボット テーブルを作成し、次の項目を行の軸として追加します。

* `Month`

* `Region`

この項目を列軸として追加します。

* `SalesProduct`

次のメジャーを作成します:

* `=Sum(Sales)`、各製品の合計売上高を計算します。

ピボット テーブルを展開してすべての行を表示するには、プロパティ パネルの [スタイル] で [プレゼンテーション] を選択します。[行] で、 [完全に展開] を選択します。

Results table

| Month<br>Region | SalesProduct |  |
| --- | --- | --- |
| Jeans | T-shirt |  |
| 2024-01-01 | 380 | 220 |
| East | 200 | 100 |
| West | 180 | 120 |
| 2024-02-01 | 470 | 280 |
| East | 250 | 150 |
| West | 220 | 130 |

結果には、各 `SalesProduct` の売上が `Month` 別および `Region` 別に表示され、各 `Month` の合計が集計されます。

## 詳細を見る

* [set 分析](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-analysis-expressions.htm)
* [集計範囲の定義](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm)