Analytics の関数を使用してフィルターを作成できます。 さまざまな関数により、特定のニーズに応じて、異なる種類のフィルターを作成できます。
フィルターの目的
フィルターはデータ分析の基本かつ重要なコンポーネントです。 フィルターにより、現在関心がないレコードを除外し、検査したいレコードのみを含めることができます。
百万件のレコードがあるテーブルがあり、その一部のみを検査する場合、何らかのフィルターが必要です。
フィルターの仕組み
フィルターはテーブルのレコードを評価する式であり、値 "T" (True) または "F" (False) を各レコードに対して返します。
例
重大であると見なされる売掛金テーブルの金額のみを検査したいとします。 重大性のしきい値は $1000.00 であるため、次のフィルターを使用します。
Invoice_Amount >= 1000.00
このフィルターは $1000.00 以上の金額に対して True、$1000.00 未満の金額に False を返します。 真と評価されたレコードはフィルターに含まれ、偽と評価されたレコードは除外されます。
除外されたレコードはフィルターの適用中はビューに表示されません。また、テーブルに対して実行する Analytics コマンドの実行対象から除外されます。
高度なフィルター
より大きい > や未満 < 記号などの演算子を使用して、簡易フィルターを作成できますが、関数を使用すると、より高度なフィルターを作成できます。
日付でフィルター
前のチュートリアルから BETWEEN( ) 例のバージョンを使用して、最初の四半期からの請求書のみを含むフィルターを作成します。
- Analytics で Sample Project.ACL を開き、Ap_Trans テーブル (Tables\Accounts_Payable\Ap_Trans) を開きます。
Sample Project.ACL がない場合は、日付フィールドがある他のテーブルを開きます。 この例を操作するときには、フィールドが日付時刻データ型である必要があります。
- このバージョンの BETWEEN( ) 例を[ビュー]タブの上部にある[フィルター]テキストボックスにコピーして貼り付け、Enter を押します。
BETWEEN(Invoice_Date, `20000101`, `20000331`)
結果: テーブルがフィルタリングされ、年の最初の四半期からの請求書のみが表示されます。
Ap_Trans テーブルを使用しない場合、BETWEEN( ) 関数のフィールド名と境界日付を更新して、データと一致させます。
フィールド名は表示名(代替列タイトル)ではなく、物理フィールド名である必要があります。 日付フィールドのヘッダーを右クリックし、[プロパティ]を選択して、物理および表示フィールド名を確認します。
メモ
[フィルター]テキストボックスでは DISPLAY を使用しないでください。
- いずれかまたは両方の境界日付を変更し、別の日付フィルターを作成してみてください。
リテラル日付を入力するときには、`YYYYMMDD` 形式を使用する必要があります。 Ap_Trans テーブルを使用する場合、すべての日付は 2000 です。
ヒント
BETWEEN( ) を使用して、数値またはテキスト データをフィルタリングします。 テキスト入力は"引用符"で囲みます。 フィールド名または数値入力は囲まないでください。Invoice_Amount, 1000.00
複数の値でフィルター
MATCH( ) 関数を使用して、複数の値で同時にフィルタリングします。
- 次の入力の MATCH( ) 関数をコピーし、[フィルター]テキストボックスに貼り付けて、Enter を押します。
MATCH(Vendor.Vendor_City, "Austin", "Chicago", "Salt Lake City")
結果: Ap_Trans テーブルのフィルターが更新され、指定された 3 つの都市の業者からの請求書のみを表示します。
メモ
Vendor_City フィールドは Vendor テーブルにあります。これは Ap_Trans テーブル(Sample Project.ACL)に関連付けられます。 関数で関連するフィールドを参照するには、table name.field name 構文を使用します。
開いているテーブルでフィールドを参照するには、field name のみを使用します。
- フィールドを変更し、照合する 3 つの用語を追加して、異なる種類のフィルターを作成してみてください。
メモ
MATCH( ) 関数の検索語は大文字と小文字を区別します。
曖昧値でフィルター
関数の能力と有用性を理解し始めているはずです。 この 3 番目のフィルターは ISFUZZYDUP( ) 関数を使用します。同じまたはほぼ同じ値でフィルタリングできます。
大きいテーブルで同様の処理を手動で実行することは、不可能ではないとしても、非常に時間がかかります。
- 次の入力で ISFUZZYDUP( ) 関数をコピーして、[フィルター]テキストボックスに貼り付けて、Enter を押します。
ISFUZZYDUP(Vendor.Vendor_Name, "Miller Co", 4)
結果: Ap_Trans テーブルが更新され、"Miller Co" と同じかほぼ同じ名前の業者の請求書のみが表示されます。 業者 "Muller Corp." の 2 つのレコードが表示されます。
- 4 から 8 に曖昧度を上げ、Enter を押します。
"MGMT Mfg." のレコードが フィルターに含まれます。
- [フィルターの削除
]をクリックし、業者名を確認して、"Miller Co" を完全に一致しない他の業者名に似たような名前に変更します。
さまざまな曖昧設定で実験する 値設定は 1 ~ 10 です。
Analytics の簡易検索は実際にはフィルターです
Analytics の簡易検索機能は、実際には FIND( ) 関数を使用したフィルターが機能しているものです。
- Ap_Trans テーブルで、[フィルターの削除
]をクリックします。
- フィルター テキストボックスの検索語 931 を入力し、Enter を押します。
結果:文字 931 がないかどうか、テーブルが検索され、フィルターリングされた結果に 2 つのレコードが含まれます。
- 1 つには末尾が 931 の請求書番号が含まれます
- もう 1 つには末尾が 931 の製品番号が含まれます
フィルター テキストボックスでは、検索語が FIND( ) 関数に変換され、入力 "931" を使用します。 FIND("931")
ジョブの適切なツール
FIND( ) は、データをフィルタリングしたり特定の項目を検索したりするために使用できる Analytics 関数です。 テーブルのすべてのデータを検索できます。
ただし、既に学習したとおり、データのフィルタリングと検索には、その他の強力で柔軟な方法を提供する他の関数があります。
すべての Analytics 関数に精通すると、現在実現しようとしている処理に応じて、選択すべき関数が決まることがわかるようになります。
要点
関数を使用すれば、Analytics のどの場所(含む:スクリプト)でもフィルターを作成できます。 関数で作成されたフィルターは、Analytics のデータ分析の基本要素です。
次の学習ステップ
関数を使用してデータのクレンジングまたはデータ準備タスクを実行する方法を学習する: 関数を使用してデータをクリーニングする