Crosstab(クロス集計)
Crosstab は、カテゴリ変数を行と列に配置して集計するピボットテーブル機能です。データの分布パターンを素早く概観できます。
基本的な使い方
Crosstab を開く
メニューバーから Analysis > Crosstab Analysis... を選択すると、新しい Crosstab タブが開きます。
クロス集計の作成
左側の設定パネルでフィールドを指定します。
Rows には行に配置するカテゴリ変数を選択します。複数選択すると階層的な行ヘッダーになります。
Columns には列に配置するカテゴリ変数を選択します。こちらも複数選択可能です。
Values には集計するフィールドと集計関数(SUM、AVG、COUNT、MIN、MAX)を指定します。値フィールドに追加できるのは数値型と論理型の列です。カテゴリ変数だけの度数表を作成するには、行番号を表す Row # フィールドを追加します。集計関数は自動的に COUNT になります。COUNT はフィールドの値に関係なく行数を数えるため、どのフィールドを COUNT で集計しても同じ結果になります。
設定が完了したら、Generate Crosstab ボタンをクリックします。右側のプレビューエリアにクロス集計表が表示されます。

結果の保存
Save as Dataset ボタンをクリックすると、クロス集計の集計値を新しいデータセットとして保存できます。パーセンテージ・Value ソート・ビジュアルモードの色は保存されません。
Add to Report ボタンをクリックすると、クロス集計をレポートに追加できます。パーセンテージ・ビジュアルモードの色・合計行の設定は保持されますが、Value ソートは反映されません。
集計関数
Values フィールドでは以下の集計関数を選択できます。
- SUM(合計)
- AVG(平均)
- COUNT(件数)
- MIN(最小値)
- MAX(最大値)
論理型の列を値フィールドに置くと、true=1、false=0として計算され、SUM は true の件数、AVG は true の割合になります。
表示オプション
合計の表示
Options セクションで合計の表示を制御できます。
Show row totals をオンにすると、各行の合計が右端に表示されます。
Show column totals をオンにすると、各列の合計が下端に表示されます。
Show grand total をオンにすると、全体の総計が表示されます。総計は列合計行の右端に表示されるため、Show column totals もオンにする必要があります。
AVG・MIN・MAX の合計欄は、セルの集計値を再集計しません。その行・列・全体に属する全レコードへ集計関数を再適用した値を表示します。
パーセンテージ表示
Percentage display で数値をパーセンテージとして表示できます。
- None - パーセンテージを表示しません
- Row % - 行合計に対する割合を表示します。あるセルの値が10で行合計が50の場合、Row % は 20% です
- Column % - 列合計に対する割合を表示します。あるセルの値が10で列合計が40の場合、Column % は 25% です
- Total % - 総計に対する割合を表示します。あるセルの値が10で総計が200の場合、Total % は 5% です
- All - Row %・Column %・Total % をすべて同時に表示します
Row %・Column %・Total % は、それぞれ Show row totals・Show column totals・Show grand total がオンの場合に表示されます。
なお、AVG、MIN、MAX 集計ではパーセンテージ計算は利用できません。
ソート
Display でソート方法を設定できます。
行のソート
- Original Order - 入力データの出現順ではなく、カテゴリ値の昇順で表示します。文字列は辞書順、Enum 列は定義順に並び、欠損値の NULL は末尾に置かれます
- Label (A-Z) - ラベルの昇順でソートします
- Label (Z-A) - ラベルの降順でソートします
- Value - 集計値でソートします
列のソート
行と同様のソートオプションが利用できます。
Value ソートでは、どの列/行の値を基準にするか、昇順(Low to High)か降順(High to Low)かを指定できます。
Label ソート・Value ソートは、最初の行フィールド・最初の値フィールドを基準にします。階層行(複数の行変数)や複数の値フィールドで、2番目以降を基準にした並べ替えはできません。
ビジュアルモード
Display の Visual Mode で表示スタイルを変更できます。値フィールドが1つの場合のみ利用可能です。
- Table - 標準的な表形式で表示します
- Heatmap - セルの背景色で値の大小を表現します。色は各セルの最小値から最大値の範囲に基づいて割り当てられます
- Text + Heatmap - 数値とヒートマップを同時に表示します
- Bar in Cell - セル内に棒グラフを表示します


カラースキーム
カラースキームは Table 以外のビジュアルモードで選択できます。Heatmap と Text + Heatmap ではセルの背景色に、Bar in Cell では棒の色に適用されます。
- Blue - 青のグラデーション
- Red - 赤のグラデーション
- Green - 緑のグラデーション
- Diverging (Red-White-Blue) - 赤から白を経て青へのグラデーション。白は各セルの値の中央値を表します
色スケールの最小・最大・中央値は、行合計・列合計・総計のセルを除いて計算します。
セルの操作
セルの選択
セルをクリックすると、そのセルに該当する元データの行が選択状態になります。選択した行は他のビューでもハイライト表示されます。
ドリルダウン
セルをダブルクリックすると、そのセルに該当するデータだけを抽出した Filtered Data タブが開きます。

左のような Crosstab で「44」のセル(Adelie × Biscoe)をダブルクリックすると、その条件に該当する44行のデータが Filtered Data タブとして開きます。右側に表示されているのが Filtered Data タブです。
複数の値フィールド
Values に複数のフィールドを追加すると、各列が値フィールドごとに展開されます。たとえば、SUM(Sales) と AVG(Profit) を指定した場合、各列ヘッダーの下にそれぞれの集計値が並びます。
複数の値フィールドを使用する場合、ビジュアルモード(ヒートマップ等)は利用できません。
欠損値の扱い
行・列フィールドに欠損値がある場合、NULL という独立したカテゴリとして集計されます。この NULL カテゴリは行合計・列合計・総計に含まれるため、Row %・Column %・Total % の分母にも入ります。欠損を除いた割合を出すには、事前にフィルタで NULL を除外してください。
値フィールドに欠損値がある場合、COUNT は欠損値を含む全行を数えますが、SUM、AVG、MIN、MAX は欠損値を除外して計算します。
制限事項
ビジュアルモード(Heatmap、Text + Heatmap、Bar in Cell)は、値フィールドが1つの場合のみ利用できます。値フィールドが複数ある場合、Visual Mode の選択は無効になります。
このページの Markdown 版もあります。