はじめに
注記: この記事は古いMagic ETLを対象としています。新しいMagic ETLの詳細については、「 新しいMagic ETL 」を参照してください。
パーティションについて
関数はいずれも、オプションでパーティションとして使用する列の指定が可能です。例えば、「State」(州)という列がある場合、パーティションとして「State」を選択すると、新しい列の値が州別に分割されます。これを次の例で示します。「Amount」(金額)列の値は降順で順位付けされ、州別にパーティション分割されています。
ランキング関数
ランキング関数は、選択した列にある値それぞれの順位を求め、新しい列に表示します。ランキング関数には、ランク、Dense Rank、行番号の3種類があります。ランク
ランク関数では、選択した列にある値それぞれに順位番号を割り当てます。同一の値を含むセルが複数ある場合は、同じ順位番号が振られ、スキップされた数に応じた「ギャップ」が生じます。例えば、列の最初の3つのセルの値が100で、その次のセルの値が200、さらに昇順設定となっている場合、初めの3つのセルの順位は「1」となり、4番目のセルの順位は「4」となります。 以下のスクリーンショットは、この例を示したものです。 ]
- キャンバスで [ランクとウインドウ] 操作をクリックします。
-
(オプション)操作の名前を変更するには、
をクリックし操作の名前を入力します。
- [関数を追加] をクリックします。
- 順位結果が返される新しい列の名前(「Rank」など)を追加します。
- [関数タイプを選択] メニューから、 [ランク] を選択します。
- ダイアログの右上にある [適用] ボタンをクリックします。 新規のステップが3種類表示されます。
- ダイアログのステップ2で、順位付けする列を選択します(値のある列を推奨)。
- ダイアログのステップ3で、列の値に順位付けする順序を選択します。
- (オプション)パーティションに使用する列があれば、ダイアログのステップ4でそれを選択します(パーティションの説明については、このページ上部にある「 パーティションについて 」を参照してください)。
Dense Rank
Dense Rank関数は、ランク関数と同様ですが、大きな違いが1つあります。同じ値のセルが複数ある場合、ランキング関数同様それらのセルに振られる順位番号は同じですが、以降のセルに対しては、その続きで番号が振られます(「ギャップ」が生じない)。例えば、列の最初の3つのセルの値が100で、その次のセルの値が200、昇順設定となっている場合、最初の3つのセルの順位は「1」となり、4番目のセルの順位は「2」となります。 以下のスクリーンショットは、この例を示したものです。
- キャンバスで [ランクとウインドウ] 操作をクリックします。
-
(オプション)操作の名前を変更するには、
をクリックし操作の名前を入力します。
- [関数を追加] をクリックします。
- 順位結果が返される新しい列の名前(「Rank」など)を追加します。
- [関数タイプを選択] メニューから、 [Dense Rank] を選択します。
- ダイアログの右上にある [適用] ボタンをクリックします。 新規のステップが3種類表示されます。
- ダイアログのステップ2で、順位付けする列を選択します(値のある列を推奨)。
- ダイアログのステップ3で、列の値に順位付けする順序を選択します。
- (オプション)パーティションに使用する列があれば、ダイアログのステップ4でそれを選択します(パーティションの説明については、このページ上部にある「 パーティションについて 」を参照してください)。
行番号
行番号関数では、選択した列にある値すべての行番号を返します。パーティションを使用する場合、取得される行番号はパーティショングループ内の番号となり、DataSetの行番号とは 異なる 場合がありますのでご注意ください。この例を以下のスクリーンショットで示します。行番号関数から返された行番号が、新しいパーティションごとに再開されています。そのため、行4から始まる出力された行番号はDataSetの行番号とは異なります。
- キャンバスで [ランクとウインドウ] 操作をクリックします。
-
(オプション)操作の名前を変更するには、
をクリックし操作の名前を入力します。
- [関数を追加] をクリックします。
- 順位結果が返される新しい列の名前(「Row Number」など)を追加します。
- [関数タイプを選択] メニューから、 [行番号] を選択します。
- ダイアログの右上にある [適用] ボタンをクリックします。 新規のステップが3種類表示されます。
- ダイアログのステップ2で、行番号を付ける列を選択します。
- ダイアログのステップ3で、列の値を並べ替える順序を選択します。
- (オプション)パーティションに使用する列があれば、ダイアログのステップ4でそれを選択します(パーティションの説明については、このページ上部にある「 パーティションについて 」を参照してください)。
フレームされた関数
フレームされた関数では、あるセルとその前(「先行」)と後(「後続」)にある指定した数のセルに対し数学関数を適用します。適用後の出力値は、新しい列に表示されます。 以下の例で、この機能を簡単に示します。この例では、ユーザーが合計関数を選択し、先行値が1で後続値が2となっています。

平均
平均関数では、特定セルとその指定の先行値および後続値の平均を返します。以下の例では、ユーザーが「Amount」列に平均関数を適用、先行値と後続値を2、「Cust」列をパーティションに設定しています。
- キャンバスで [ランクとウインドウ] 操作をクリックします。
-
(オプション)操作の名前を変更するには、
をクリックし操作の名前を入力します。
- [関数を追加] をクリックします。
- 出力値が返される新しい列の名前を追加します。 「平均(2P・2F)」などのように先行値と後続値の数が分かりやすい名前を推奨します。
- [関数タイプを選択] メニューから、 [平均] を選択します。 関数タイプを選択すると、新規メニューが2種類表示されます。
- [列を選択] メニューから、平均の対象となる値のある列を選択します。
- [先行] と [後続] のフィールドに、平均計算に含める先行値および後続値の数を入力します。
- ダイアログの右上にある [適用] ボタンをクリックします。 新規のステップが3種類表示されます。
- ダイアログのステップ2で、順序の基にする列を選択します。
- ダイアログのステップ3で、新しい列の値を並べ替える順序を選択します。
- (オプション)パーティションに使用する列があれば、ダイアログのステップ4でそれを選択します(パーティションの説明については、このページ上部にある「 パーティションについて 」を参照してください)。
カウント
カウント関数では、特定セルとその指定の先行値および後続値の個数を返します。以下の例では、ユーザーが「Amount」列にカウント関数を適用、先行値と後続値を2、「Cust」列をパーティションに設定しています。
- キャンバスで [ランクとウインドウ] 操作をクリックします。
-
(オプション)操作の名前を変更するには、
をクリックし操作の名前を入力します。
- [関数を追加] をクリックします。
- 出力値が返される新しい列の名前を追加します。 「カウント(2P・2F)」などのように先行値と後続値の数が分かりやすい名前を推奨します。
- [関数タイプを選択] メニューから、 [カウント] を選択します。 関数タイプを選択すると、新規メニューが2種類表示されます。
- [列を選択] メニューから、カウント対象となる値のある列を選択します。
- [先行] と [後続] のフィールドに、カウント計算に含める先行値および後続値の数を入力します。
- ダイアログの右上にある [適用] ボタンをクリックします。 新規のステップが3種類表示されます。
- ダイアログのステップ2で、順序の基にする列を選択します。
- ダイアログのステップ3で、新しい列の値を並べ替える順序を選択します。
- (オプション)パーティションに使用する列があれば、ダイアログのステップ4でそれを選択します(パーティションの説明については、このページ上部にある「 パーティションについて 」を参照してください)。
合計
合計関数では、特定セルとその指定の先行値および後続値の合計を返します。以下の例では、ユーザーが「Amount」列に合計関数を適用、先行値と後続値を2、「Cust」列をパーティションに設定しています。
- キャンバスで [ランクとウインドウ] 操作をクリックします。
-
(オプション)操作の名前を変更するには、
をクリックし操作の名前を入力します。
- [関数を追加] をクリックします。
- 出力値が返される新しい列の名前を追加します。 「合計(2P・2F)」などのように先行値と後続値の数が分かりやすい名前を推奨します。
- [関数タイプを選択] メニューから、 [合計] を選択します。 関数タイプを選択すると、新規メニューが2種類表示されます。
- [列を選択] メニューから、合計計算対象となる値のある列を選択します。
- [先行] と [後続] のフィールドに、合計計算に含める先行値および後続値の数を入力します。
- ダイアログの右上にある [適用] ボタンをクリックします。 新規のステップが3種類表示されます。
- ダイアログのステップ2で、順序の基にする列を選択します。
- ダイアログのステップ3で、新しい列の値を並べ替える順序を選択します。
- (オプション)パーティションに使用する列があれば、ダイアログのステップ4でそれを選択します(パーティションの説明については、このページ上部にある「 パーティションについて 」を参照してください)。
オフセット関数
オフセット関数では、DataSetに新しい列を追加し、この列に選択した列と同じ値を指定した行数分オフセットした上で返します。 オフセット関数は2種類あります。新しい列の値を元の関数の 後ろ にオフセットするのがラグ関数、新しい列の値を元の列の値の 前 にオフセットするのがリード関数です。ラグ関数、リード関数のいずれでも、パーティションを使用します。ラグ
ラグ関数では、新しい列の値は、指定したオフセット後、元の列の値の後ろに出力されます。以下の例では、ラグ関数に3を適用し、「Cust」列がパーティションとして追加されています。
- キャンバスで [ランクとウインドウ] 操作をクリックします。
-
(オプション)操作の名前を変更するには、
をクリックし操作の名前を入力します。
- [関数を追加] をクリックします。
- 出力値が返される新しい列の名前を追加します。 ラグのオフセット値が分かりやすい名前を推奨します。
- [関数タイプを選択] メニューから、 [ラグ] を選択します。 関数タイプを選択すると、新規メニューが2種類表示されます。
- [列を選択] メニューから、新しい列への出力対象となる値のある列を選択します。
- [どの行が含まれるべきですか?] フィールドに、任意のオフセット値を入力します。
- ダイアログの右上にある [適用] ボタンをクリックします。 新規のステップが3種類表示されます。
- ダイアログのステップ2で、順序の基にする列を選択します。
- ダイアログのステップ3で、新しい列の値を並べ替える順序を選択します。
- (オプション)パーティションに使用する列があれば、ダイアログのステップ4でそれを選択します(パーティションの説明については、このページ上部にある「 パーティションについて 」を参照してください)。
リード
リード関数では、新しい列の値は、指定したオフセット後、元の列の値の前に出力されます。以下の例では、リード関数に3を適用し、「Cust」列がパーティションとして追加されています。
- キャンバスで [ランクとウインドウ] 操作をクリックします。
-
(オプション)操作の名前を変更するには、
をクリックし操作の名前を入力します。
- [関数を追加] をクリックします。
- 出力値が返される新しい列の名前を追加します。 リードのオフセット値が分かりやすい名前を推奨します。
- [関数タイプを選択] メニューから、 [リード] を選択します。 関数タイプを選択すると、新規メニューが2種類表示されます。
- [列を選択] メニューから、新しい列への出力対象となる値のある列を選択します。
- [どの行が含まれるべきですか?] フィールドに、任意のオフセット値を入力します。
- ダイアログの右上にある [適用] ボタンをクリックします。 新規のステップが3種類表示されます。
- ダイアログのステップ2で、順序の基にする列を選択します。
- ダイアログのステップ3で、新しい列の値を並べ替える順序を選択します。
- (オプション)パーティションに使用する列があれば、ダイアログのステップ4でそれを選択します(パーティションの説明については、このページ上部にある「 パーティションについて 」を参照してください)。