ピボットテーブルに計算フィールドを追加する
可能な使用シナリオ
既知のデータに基づいてピボットテーブルを作成すると、それに含まれるデータが望んでいるものではないことがあります。望んでいるデータは、これらの元のデータの組み合わせです。たとえば、データを望んだ形式にするために、元のデータを加算、減算、乗算、除算する必要があります。その場合、計算フィールドを構築し、計算用の対応する式を設定する必要があります。その後、計算フィールドで統計などの操作を行います。
Excelのピボットテーブルに計算フィールドを追加
Excelのピボットテーブルに計算フィールドを挿入するには、以下の手順に従います:
- 追加したいピボットテーブルを選択します。
- リボットテーブルツールの「分析」タブに移動します。
- 「フィールド、アイテム、およびセット」をクリックし、その後、ドロップダウンメニューから「計算フィールド」を選択します。
- 「名前」フィールドに、計算フィールドの名前を入力します。
- “式"フィールドに、適切なピボットテーブルのフィールド名と数学演算子を使用した使用法を入力します。
- 「OK」をクリックして計算フィールドを作成します。
- 新しい計算フィールドは、値のセクションの下にあるピボットテーブルフィールドリストに表示されます。
- 計算フィールドをピボットテーブルの値セクションにドラッグして、計算された値を表示します。
ピボットテーブルに計算フィールドを追加する
以下のサンプルコードを参照してください。コードはまず元のデータを設定し、ピボットテーブルを作成します。次に、既存のピボットテーブル内のPivotFieldに基づいて計算フィールドを作成し、データ領域に計算フィールドを追加します。最後に、output XLSX形式でブックを保存します。例のコードを実行すると、計算フィールドが追加されたピボットテーブルがワークシートに追加されます。
サンプルコード
//Instantiating an Workbook object | |
Workbook workbook = new Workbook(); | |
//Obtaining the reference of the newly added worksheet | |
Worksheet ws = workbook.getWorksheets().get(0); | |
Cells cells = ws.getCells(); | |
//Setting the value to the cells | |
Cell cell = cells.get("A1"); | |
cell.putValue("Fruit"); | |
cell = cells.get("B1"); | |
cell.putValue("Count"); | |
cell = cells.get("C1"); | |
cell.putValue("Price"); | |
cell = cells.get("A2"); | |
cell.putValue("Apple"); | |
cell = cells.get("A3"); | |
cell.putValue("Mango"); | |
cell = cells.get("A4"); | |
cell.putValue("Blackberry"); | |
cell = cells.get("A5"); | |
cell.putValue("Cherry"); | |
cell = cells.get("B2"); | |
cell.putValue(5); | |
cell = cells.get("B3"); | |
cell.putValue(3); | |
cell = cells.get("B4"); | |
cell.putValue(6); | |
cell = cells.get("B5"); | |
cell.putValue(4); | |
cell = cells.get("C2"); | |
cell.putValue(5); | |
cell = cells.get("C3"); | |
cell.putValue(20); | |
cell = cells.get("C4"); | |
cell.putValue(30); | |
cell = cells.get("C5"); | |
cell.putValue(60); | |
//Adding a PivotTable to the worksheet | |
int i = ws.getPivotTables().add("=A1:C5", "D10", "PivotTable1"); | |
//Accessing the instance of the newly added PivotTable | |
PivotTable pivotTable = ws.getPivotTables().get(i); | |
pivotTable.addFieldToArea(PivotFieldType.ROW, 0); | |
//Adding a calculated field to PivotTable and drag it to data area. | |
pivotTable.addCalculatedField("total", "=Count*Price", true); | |
pivotTable.refreshData(); | |
pivotTable.calculateData(); | |
workbook.save("out.xlsx"); |