Gruppera pivotfält i pivottabellen

Möjliga användningsscenarier

  • Att gruppera pivotfält är användbart när ett rad- eller kolumnfält i en pivottabell innehåller många olika värden, till exempel ett datumfält med hundratals datum eller ett numeriskt fält med många spridda värden. Gruppering komprimerar dessa värden till meningsfulla sektioner: datum till månader, kvartal och år, och tal till intervall som 0-1, 2-3, 4-5. Detta gör en stor pivottabell kompakt och enklare att analysera. Aspose.Cells tillhandahåller denna funktion via metoden PivotField.group() (automatisk gruppering efter datatyp) och PivotField.group(PivotFieldGroupOptions) (anpassade grupperingsalternativ).
  • Datumgruppering rullar upp enskilda datum till större perioder, såsom dagar, månader, kvartal och år, och bygger en tidshierarki (till exempel År, Kvartal, Månader). Trender över tid blir synliga med en blick, och varje periodnivå blir sitt eget pivotfält i rad- eller kolumnområdet i pivottabellen.
  • Gruppering är endast tillgänglig för fält som placerats i rad- eller kolumnområdet i en pivottabell. Ett datafält (värdefält) kan inte grupperas direkt. För att gruppera ett sådant fält måste du först lägga till det i rad- eller kolumnområdet i pivottabellen.

Gruppera pivotfält automatiskt

Den parameterlösa överlagringen PivotField.group() inspekterar fältets datatyp och grupperar det automatiskt. Ett fält som endast innehåller datum (och tomma celler) grupperas efter månader. Ett fält som endast innehåller tal (och tomma celler) grupperas i numeriska intervall med ett automatiskt intervall.

import com.aspose.cells.*;
Workbook wb = new Workbook("sampleGroupPivotFieldsInPivotTable.xlsx");
PivotTable pt = wb.getWorksheets().get(1).getPivotTables().get(0);
PivotField field = pt.getRowFields().get(0);
field.group();
pt.calculateData();
wb.save("outputAutoGroupPivotField.xlsx");

Gruppera pivotfält med anpassade alternativ

Klassen PivotFieldGroupOptions tillhandahåller anpassad grupperingskonfiguration. För datumfält anger du startDate, endDate och groupTypes. För numeriska fält anger du startNumber, endNumber och interval. Egenskapen newPivotField styr om grupperingen skapar nya pivotfält bredvid det ursprungliga (se Obs-avsnittet i slutet av denna artikel).

Gruppera ett datumfält efter månader och kvartal

Följande exempel grupperar datumradfältet i exempelpivottabellen efter månader och kvartal mellan ett start- och slutdatum. Koden läser in exempel-Excelfilen, utför grupperingen, beräknar pivottabellens data och sparar det grupperade resultatet. Skärmbilden visar effekten: datumradfältet är nu grupperat efter kvartal och månader. Observera att ordningen på värdena i options.groupTypes ignoreras. Oavsett i vilken ordning grupptyperna listas, visas de grupperade fälten alltid från den största perioden till den minsta: år, kvartal, månader, dagar, timmar, minuter, sekunder. I detta exempel listas månaderna före kvartalen i options.groupTypes, men kvartalen visas som den yttre nivån och månaderna som den inre nivån.

import com.aspose.cells.*;
Workbook wb = new Workbook("sampleGroupPivotFieldsInPivotTable.xlsx");
PivotTable pt = wb.getWorksheets().get(1).getPivotTables().get(0);
PivotFieldGroupOptions options = new PivotFieldGroupOptions();
options.setStartDate(new com.aspose.cells.DateTime(2008, 1, 1));
options.setEndDate(new com.aspose.cells.DateTime(2008, 9, 5));
options.setGroupTypes(new int[] { PivotGroupByType.MONTHS, PivotGroupByType.QUARTERS });
pt.getRowFields().get(0).group(options);
pt.calculateData();
wb.save("outputGroupPivotFieldsInPivotTable.xlsx");

Pivottabell grupperad efter månader och kvartal

Gruppera ett numeriskt fält i intervall

FieldTwo i exempelpivottabellen är initialt ett datafält (värdefält). Eftersom endast rad- eller kolumnfält kan grupperas, anropar koden först PivotTable.addFieldToArea(PivotFieldType.ROW, "FieldTwo") för att flytta FieldTwo till radområdet, uppdaterar pivoten och grupperar sedan det numeriska fältet i intervallen 0-1, 2-3 och 4-5 med startNumber = 0, endNumber = 5 och interval = 2.

import com.aspose.cells.*;
// Ladda exempelarbetsboken
Workbook wb = new Workbook("sampleGroupPivotFieldsInPivotTable.xlsx");
// Öppna det andra kalkylbladet och dess pivottabell
PivotTable pt = wb.getWorksheets().get(1).getPivotTables().get(0);
// FieldTwo är ett datafält: flytta det till radområdet först,
// eftersom endast rad-/kolumnfält kan grupperas
pt.addFieldToArea(PivotFieldType.ROW, "FieldTwo");
pt.calculateData();
// Gruppera det numeriska fältet i intervallen 0-1, 2-3, 4-5
PivotFieldGroupOptions options = new PivotFieldGroupOptions();
options.setStartNumber(0);
options.setEndNumber(5);
options.setInterval(2);
pt.getRowFields().get(1).group(options);
// Beräkna pivottabellens data och spara utdatafilen
pt.calculateData();
wb.save("outputNumberGroupPivotField.xlsx");

Obs

Relaterade artiklar