SPREAD for WPF 3.0J - GcSpreadGrid
グループ集計のカスタマイズ
GrapeCity SPREAD for WPF 3.0J > 開発者ガイド > グループ集計 > グループ集計のカスタマイズ

グループの集計方法を、数式を使用してカスタマイズできます。

集計のカスタマイズ

上の図では、在庫数を商品ごとに集計して同じ列に表示するとともに、区分が「仕入」の在庫数を集計して「区分」列に表示しています。

グループの集計方法をカスタマイズするには、グループ ヘッダ/フッタ セルの Formula プロパティに数式を設定します。Formula プロパティが設定されると、グループヘッダ/フッタ セルの AggregationType プロパティの値は自動的に Custom に変更されます。集計は Formula プロパティに設定された数式を使用して実行されます。

コントロールの SaveExcel メソッドによる Excel ファイルの出力は、グループ ヘッダ/フッタ セルの Formula プロパティに設定した数式の出力には対応していません。計算結果がセルの値として出力されます。なお、AggregationType プロパティで Custom 以外の集計方法を設定した場合、Excel ファイルには SUBTOTAL 関数を使用した数式が出力されます。

GROUPINFO 関数

グループ化の基準となった列の値など、グループに関する情報を取得するための 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)"
関連トピック