これまで、関数の入力としてフィールドリテラル値を使用する方法を学習しました。 このアプローチは Analytics で比較的簡単で、必要なすべてのことです。
Analytics スクリプトでは、フィールドやリテラル値ではなく、変数が一般的に関数の入力として使用されます。
このチュートリアルでは、関数で変数を使用します。 このチュートリアルの最後には、変数を入力として使用する関数を含む簡単なスクリプトがあります。 変数により、ユーザーは実際の入力値をインタラクティブに指定できます。
変数の概要と有用な理由
コンピューターのメモリの名前付きコンテナとして変数を考えることができます。 変数を作成するときには名前を指定します。 変数は一時的またはより永久的に、ユーザーが選択または指定する値を格納できます。
変数には 2 つの非常に有用な質があります。
- 柔軟性 変数はスクリプトをより柔軟にします。
たとえば、特定のフィールド名または日付セットを要求する代わりに、スクリプトは変数を使用して、ユーザーに任意のフィールド名または日付を選択または指定させることができます。
- 明瞭性 変数は、確認または更新するときに、スクリプトをわかりやすくします。
未加工データよりも関数入力としてわかりやすい名前の変数を使用した方がわかりやすくなります。 以下の 2 つの BETWEEN( ) 関数の例では、違いがわかります。
詳細については、変数を参照してください。
BETWEEN( ) (変数を使用しない)
前のチュートリアルでフィルターを作成するために使用した BETWEEN( ) の例を考えます。
BETWEEN(Invoice_Date, `20000101`, `20000331`)
フィルターは Invoice_Date フィールドのレコードを 2000 年の最初の四半期に制限します。
別のコンテキストで使用するたびに、手動でフィールド名と開始日および終了日を変更する場合は、このバージョンの BETWEEN( ) 関数でも問題はありません。
しかし、他のデータで他のユーザーによって実行されるスクリプトにこのフィルターを含め、他のユーザーが関数入力の更新方法がわからないとしたら、どうでしょうか。
また、視覚的な検査にのみ基づいて、関数入力を提供する未加工データの目的を知る方法はありません。
BETWEEN( ) (変数を使用)
実際のフィールドとリテラル値を BETWEEN( ) 関数の入力として使用する代わりに、変数を指定できます。
BETWEEN(v_date_field, v_start_date, v_end_date)
インタラクティブなスクリプトと組み合わせ、このバージョンの BETWEEN( ) 関数では、ユーザーは任意の日付を選択し、2 つの境界日付を指定できます。
また、関数を見るだけで、各入力の目的が明確です。
メモ
規約として、スクリプト作成者は変数名の前に "v_" を付け、複雑なスクリプトでも何が変数で何が変数でないのかをわかりやすくします。
要点
変数を使用すると、幅広くより柔軟に関数を作成できます。
変数を使用する BETWEEN( ) 関数をテストする
BETWEEN( ) 関数を Analytics コマンドラインでテストし、変数の仕組みを正確に確認できます。
コマンドラインでの関数のテストの詳細については、前のチュートリアル(さまざまな関数の詳細)を参照してください。
変数の作成
- Analytics で、 ナビゲーターの下部にある[変数]タブをクリックします。
[変数]タブには、Analytics プロジェクトに現存するすべての変数と、各変数に現在設定されている値が表示されます。
- コマンドラインで次の変数定義を 1 つずつ入力し、3 つの変数例を作成します。
- v_date_field = `20170715`
この例では、実際のフィールドではなく、v_date_field 変数に単一のリテラル値を指定します。
- v_start_date = `20170701`
- v_end_date = `20170731`
[変数]タブでは、作成した 3 つの変数と割り当てられた値が表示されます。
- v_date_field = `20170715`
がBETWEEN( ) のテスト
- BETWEEN( ) の例をコピーし、コマンドラインに貼り付けます。
BETWEEN(v_date_field, v_start_date, v_end_date)
- 例の前に DISPLAY とスペースを入力し、Enter を押します。
変数に含まれる値に基づき、結果は真の Tです。
15 July 2017 は指定された開始日と終了日の間です。
変数値のいずれかを変更して結果を確認する
- コマンドラインに次を入力して v_start_date の値を更新します。
v_start_date = `20170716`
[変数]タブで、v_start_date の値が 16 July 2017 に更新されたことを確認できます。これは v_date_field 値の後です。
- コマンドラインで BETWEEN( ) 関数を再実行します。
変数に含まれる値に基づき、結果は偽の Fです。
15 July 2017 は指定された開始日と終了日の間でありません。
スクリプトで BETWEEN( ) 関数を試す
以下の簡易スクリプトでは、ユーザーは日付フィルターを日付フィールドがある Analytics テーブルに適用できます。
すべてのスクリプト構文を理解する必要はありません。 要点は、スクリプトで実行中のさまざまな BETWEEN( ) 関数を確認することです。
スクリプト構文の前の COMMENT は構文の処理を簡単に説明しています。 関数は茶色でハイライトされます。
Analytics でサンプル スクリプトを実行する方法
- 日付フィールドがある 1 つ以上のテーブルを含む Analytics プロジェクトを開きます。
Sample Project.ACL には日付フィールドがある複数のテーブルがあります。
- 新しい空のスクリプトを作成します。
- ナビゲーターでフォルダーまたは最上位のプロジェクト エントリをクリックし、[新規 > スクリプト]を選択します。
- 以下のスクリプト全体をコピーして、スクリプト エディターの新しいスクリプトに貼り付けます。
- プロジェクトを保存します。
- [実行
]をクリックして、スクリプトを実行します。
- ダイアログボックス プロンプトに従い、テーブルと日付フィールドを選択し、開始日と終了日を指定します。
スクリプトが実行され、指定したフィールドと日付に基づいて、選択したテーブルがフィルタリングされます。
ヒント
空のテーブルまたはレコードが多いテーブルがある場合は、フィルタリングされていないテーブルで日付を確認し、レコード数が少ないことがわかっている境界日付でスクリプトを再実行します。
注記
- フィルタリングされたテーブルでは、BETWEEN( ) 関数は、指定した実際の入力値のフィルター テキストボックスに表示されます。
- [変数]タブを確認します。 3 つの例の変数の値は、スクリプトの実行時に選択および指定した値で更新されます。
スクリプト例:レコードを日付でフィルタリング
スクリプト例は、指定した日付を使用して、テーブルのレコードを日付でフィルタリングする
メモ
CTOD( ) 関数が BETWEEN( ) 関数内でネストされています。 CTOD( ) 関数は文字値を日付値に変換します。これは、この状況で必要です。
詳細については、ACCEPT コマンドを参照してください。
COMMENT この簡易スクリプトでは、日付フィールドがあるアナリティクス テーブルに日付フィルターを適用できます。 END COMMENT Analytics プロジェクトでテーブルを選択する必要があります。 ACCEPT "日付フィールドがあるテーブルを選択してください:" FIELDS "xf" TO v_table_name COMMENT 選択したテーブルを開きます。 OPEN %v_table_name% COMMENT テーブルからフィールドを選択します。 ACCEPT "日付フィールドを選択してください:" FIELDS "D" TO v_date_field COMMENT フィルターの開始日と終了日を指定します。 ACCEPT "開始日を指定してください(YYYYMMDD):" TO v_start_date, "終了日を指定してください (YYYYMMDD):" TO v_end_date COMMENT 選択したテーブルとフィールドにフィルターを適用します。 SET FILTER TO BETWEEN(%v_date_field%, CTOD(%v_start_date%), CTOD(%v_end_date%))
次の学習ステップ
複数の関数を使用して実際のタスクを実行するスクリプトをレビューして実行する: すべてまとめる:スクリプトで関数を使用する