GrapeCity SPREAD for WPF 2.0J > 開発者ガイド > グループ集計 > グループ集計のカスタマイズ |
グループの集計方法を、数式を使用してカスタマイズできます。
上の図では、在庫数を商品ごとに集計して同じ列に表示するとともに、区分が「仕入」の在庫数を集計して「区分」列に表示しています。
グループの集計方法をカスタマイズするには、グループ ヘッダ/フッタ セルの Formula プロパティに数式を設定します。Formula プロパティが設定されると、グループヘッダ/フッタ セルの AggregationType プロパティの値は自動的に Custom に変更されます。集計は Formula プロパティに設定された数式を使用して実行されます。
コントロールの SaveExcel メソッドによる Excel ファイルの出力は、グループ ヘッダ/フッタ セルの Formula プロパティに設定した数式の出力には対応していません。計算結果がセルの値として出力されます。なお、AggregationType プロパティで Custom 以外の集計方法を設定した場合、Excel ファイルには SUBTOTAL 関数を使用した数式が出力されます。 |
グループ化の基準となった列の値など、グループに関する情報を取得するための GROUPINFO 関数が提供されます。次の書式にしたがって使用します。
書式
GROUPINFO(infotype)
引数
infotype 引数には取得する情報の種類を表すコード番号またはコード名を指定します。コード番号およびコード名は次のとおりです。
infotype の値コード番号 | コード名 | 説明 |
---|---|---|
0 | "groupBy" | グループ化の基準となった列の列名 |
1 | "groupText" | グループ化の基準となった列の値 |
2 | "groupLevel" | グループ レベルを表す数値 |
3 | "groupedRowCount" | グループに含まれる行数 |
グループ ヘッダ/フッタ セルの Formula プロパティで集計範囲を指定するには、列名参照を使用します。列名参照について、詳しくは「列名参照」を参照してください。 |
グループの集計方法をカスタマイズする方法について、次のサンプルコードを参照してください。
次のサンプルコードは Formula プロパティに SUMIF 関数を設定し、「Section」列の値が"仕入"に該当する「Quantity」列の値を集計します。
C# |
コードのコピー |
---|---|
gcSpreadGrid1.Columns["ProductCode"].GroupFooter[0, 7].Formula = "SUMIF(Section, \"仕入\", Quantity)"; |
Visual Basic |
コードのコピー |
---|---|
GcSpreadGrid1.Columns("ProductCode").GroupFooter(0, 7).Formula = "SUMIF(Section, ""仕入"", Quantity)" |
次のサンプルコードは GROUPINFO 関数を使用し、グループの「ProductCode」列の値を取得します。また、LOOKUP 関数の引数に GROUPINFO 関数を使用し、グループの「ProductCode」列の値に対応する「ProductName」列の値を取得します。
C# |
コードのコピー |
---|---|
GcSpreadGrid1.Columns["ProductCode"].GroupFooter[0, 0].Formula = "GROUPINFO(1)"; GcSpreadGrid1.Columns["ProductCode"].GroupFooter[0, 1].Formula = "LOOKUP(GROUPINFO(1), ProductCode, ProductName)"; |
Visual Basic |
コードのコピー |
---|---|
GcSpreadGrid1.Columns("ProductCode").GroupFooter(0, 0).Formula = "GROUPINFO(1)" GcSpreadGrid1.Columns("ProductCode").GroupFooter(0, 1).Formula = "LOOKUP(GROUPINFO(1), ProductCode, ProductName)" |