高度な検索

Analytics には、テーブル データの高度な検索オプションがいくつか用意されています。

これらのオプションを使用するには、テーブル ビューの上部にある[フィルター]テキスト ボックスでフィルターを作成します。フィルターには、下記の Analytics 関数の 1 つを使用します。

たとえば、次のフィルターでは FINDMULTI( ) 関数を使用しています。この関数は、検索語のうち 1 つ以上を含むレコードをすべて分離します。

高度な検索のガイドライン

フィールド名

検索するフィールド名としては、テーブル ビュー内の表示名でなく、テーブル レイアウト内の物理フィールド名を指定する必要があります。

ヒント

物理フィールド名を確認するには、テーブル ビュー内の列ヘッダーを右クリックし、[プロパティ]を選択します。

二重引用符 テキストの検索語は "二重引用符" で囲む必要があります。
バッククオート 日付時刻の検索語は `バッククオート` で囲む必要があります。
日付時刻書式
  • 日付時刻の検索語には YYYYMMDD または YYMMDD の書式を使用する必要があります。
  • 時刻の部分には hhmmss 書式を使用する必要があります。また、その前には 1 つの空白スペース、文字 ‘t’、または文字 ‘T’ を付ける必要があります。例:`t183000`
  • 日付または時刻の個々の要素の間に、スラッシュ(/)やコロン(:)のような区切り文字をいっさい使用しないでください。
関連付けられたフィールド 関連付けられたフィールドで検索を行うには、フィールドの完全修飾名(つまり、テーブル名.フィールド名)を指定する必要があります。
関数の規則

どの関数にも、サポートされるデータ型や大文字と小文字の区別など、その動作を制御する特定の規則があります。

Analytics の検索関数を制御する規則同士の比較対照表が掲載されていますので、Analytics 検索関数の比較を参照してください。各関数の詳細については、下記のリンク付き関数名をクリックしてください。

検索のタイプ

メモ

各関数の詳細については、下記の関数名をクリックしてください。

ヒント

下記の例をコピーして[フィルター]テキスト ボックスに貼り付け、お使いのデータに合わせて検索語とその他の入力値を修正することができます。

単一の検索語を検索する

使用する関数:FIND( ) 関数

説明:制限が最も少ない検索関数です。大文字と小文字を区別しません。個々のフィールドまたは複数のフィールドに加え、レコード全体を検索することができます。

結果

FIND("United Equipment")

レコード内のどこかに "United Equipment" という名前が入っているすべてのレコードを分離します。

FIND("Equip")

レコード内のどこかに "Equip" という文字列が入っているすべてのレコードを分離します。

FIND("United Equipment", Vendor_Name)

Vendor_Name フィールドに "United Equipment" という名前が入っているすべてのレコードを分離します。

FIND("United Equipment", Vendor.Vendor_Name)

関連する Vendor テーブルの Vendor_Name フィールドに "United Equipment" という名前が含まれるすべてのレコードを分離します。

複数のテキスト語を検索する

使用する関数:FINDMULTI( ) 関数

説明:FIND( ) と似ていますが、複数の検索語を指定できる点が異なります。

結果

FINDMULTI(RECORD, "United Equipment", "Muller Corp.")

レコードのどこかに "United Equipment" または "Muller Corp" という名前が入っているすべてのレコードを分離します。

FINDMULTI(RECORD, "equip", "supp")

“equip” または "supp" という文字列が含まれるすべてのレコードを分離します。

FINDMULTI(RECORD, "United Equipment", "Muller Corp.")

レコードのどこかに "United Equipment" または "Muller Corp" という名前が入っているすべてのレコードを分離します。

FINDMULTI(RECORD, "United Equipment", "Muller Corp.")

レコードのどこかに "United Equipment" または "Muller Corp" という名前が入っているすべてのレコードを分離します。

使用する関数: MATCH( ) 関数

説明:多目的に使える検索関数です。1 つのフィールドで同時に複数の検索語を探したり、複数のフィールドで同じ検索語を探したりすることができます。また、2 つのフィールドで一致する値を検索することもできます。

結果

MATCH(Vendor_City, "Phoenix", "Austin", "Los Angeles")

Vendor_City フィールド内の値が "Phoenix"、"Austin"、または "Los Angeles" と正確に一致するか、またはこれらの文字列で始まるすべてのレコードを分離します。

NOT MATCH(Vendor_City, "Phoenix", "Austin", "Los Angeles")

Vendor_City フィールド内の値が "Phoenix"、"Austin"、または "Los Angeles" と正確に一致しないか、またはこれらの文字列で始まらないすべてのレコードを分離します。

MATCH(Product_Code, "A", "D", "F")

Product_Code フィールド内の製品コードが "A"、"D"、または "F" であるか、もしくは "A"、"D"、"F" で始まるすべてのレコードを分離します。

MATCH(Product_Code, "A", "D", "F")

Product_Code フィールド内の製品コードが 1 文字の "A"、"D"、または "F" であるすべてのレコードを分離します。

正確な文字比較を行う]オプションをオンにする必要があります。

メモ

MATCH( ) に関する例では、特に指定のない限り、[正確な文字比較を行う]オプションはオフになっているものとします。

大文字と小文字の区別があるテキスト語を検索する

使用する関数: MATCH( ) 関数

説明:多目的に使える検索関数です。1 つのフィールドで同時に複数の検索語を探したり、複数のフィールドで同じ検索語を探したりすることができます。また、2 つのフィールドで一致する値を検索することもできます。

結果

MATCH(Last_Name, "SMITH") Last_Name フィールドの値が "SMITH"(すべて大文字)になっているすべてのレコードを分離します。
MATCH(Last_Name, "smith") Last_Name フィールドの値が "smith"(すべて小文字)になっているすべてのレコードを分離します。
MATCH(Last_Name, "Smith") Last_Name フィールドの値が "Smith"(単語の先頭文字が大文字)になっているすべてのレコードを分離します。

複数のフィールドでテキスト語を検索する

使用する関数: MATCH( ) 関数

説明:多目的に使える検索関数です。1 つのフィールドで同時に複数の検索語を探したり、複数のフィールドで同じ検索語を探したりすることができます。また、2 つのフィールドで一致する値を検索することもできます。

結果

MATCH("Phoenix", Vendor_City, City, City_2)

Vendor_City、City、または City_2 フィールドの値のうち少なくとも 1 つが "Phoenix" と正確に一致するか、またはこの文字列で始まるすべてのレコードを分離します。

複数のテキスト語に一致させる検索を行う

使用する関数: MATCH( ) 関数

説明:多目的に使える検索関数です。1 つのフィールドで同時に複数の検索語を探したり、複数のフィールドで同じ検索語を探したりすることができます。また、2 つのフィールドで一致する値を検索することもできます。

結果

MATCH(Vendor_Address, Employee_Address)

業者と従業員の住所がまったく同じであるすべてのレコードを分離します。

業者と従業員の住所の形式を標準化するために、追加の関数を使用する必要があるかもしれません。

数値を検索する

使用する関数: MATCH( ) 関数

説明:多目的に使える検索関数です。1 つのフィールドで同時に複数の検索語を探したり、複数のフィールドで同じ検索語を探したりすることができます。また、2 つのフィールドで一致する値を検索することもできます。

結果

MATCH(Invoice_Amount,154.00)

$154.00 の請求金額が含まれるすべてのレコードを分離します。

MATCH(Invoice_Amount,154.00, 522.00)

$154.00 または $522.00 の請求金額が含まれるすべてのレコードを分離します。

NOT MATCH(Inventory_Value_at_Cost, Cost_x_Quantity)

Inventory_Value_at_Cost フィールドの金額と演算フィールド Cost_x_Quantity の金額が異なるすべてのレコードを分離します。

日付時刻値を検索する

使用する関数: MATCH( ) 関数

説明:多目的に使える検索関数です。1 つのフィールドで同時に複数の検索語を探したり、複数のフィールドで同じ検索語を探したりすることができます。また、2 つのフィールドで一致する値を検索することもできます。

結果

MATCH(Invoice_Date, `20170731`)

請求日が 2017 年 7 月 31 日であるすべてのレコードを分離します。

MATCH(Invoice_Date, `20170731`, `20170831`, `20170930`)

第 3 四半期の各月末の日付が入った請求書が含まれるすべてのレコードを分離します。

テーブル全体から数値または日付時刻値を検索する

使用する関数:FIND( ) 関数

説明:制限が最も少ない検索関数です。大文字と小文字を区別しません。個々のフィールドまたは複数のフィールドに加え、レコード全体を検索することができます。

使用する関数:FINDMULTI( ) 関数

説明:FIND( ) と似ていますが、複数の検索語を指定できる点が異なります。

メモ

FIND( ) や FINDMULTI( ) 関数を使って数値や日付時刻値を検索する際には、注意が必要です。これらの関数はソース データ ファイル(.fil)内の厳密に一致する文字を検索しますが、このような文字はテーブル ビューでは様々な外観で表示されます。

検索結果に一貫性がないように思われる場合は、[テーブル レイアウト]ダイアログ ボックスでソース データを調べてください。

結果

FIND("154.00")

ソース データ ファイルから、154.00 という文字がこのまま含まれるすべてのレコードを分離します。

FINDMULTI(RECORD, "31/07/2017", "31/08/2017")

ソース データ ファイルから、31/07/2017 または 31/08/2017 という文字がこのまま含まれるすべてのレコードを分離します。

日付時刻書式(YYYYMMDD、YYMMDD、hhmmss、hhmm)に関する一般的な制限は、FIND( ) oや FINDMULTI( ) を使って日付時刻値を検索する際には適用されません。

特定の文字または部分文字列の 1 つまたは複数の出現を検索する

使用する関数:OCCURS( ) 関数

説明:文字フィールドにおける、部分文字列の 1 つまたは複数の出現を検索することができます。

結果

OCCURS(Invoice_Number, "-") > 1

請求書番号にハイフンが 2 つ以上入っているすべてのレコードを分離します。

OCCURS(Full_Name, ALLTRIM(Last_Name))=1

Last_Name フィールドの値が Full_Name フィールドに現れるすべてのレコードを分離します。

式に ALLTRIM( ) 関数を含めると、Last_Name フィールドの先頭と末尾のスペースがすべて取り除かれ、テキスト値のみが比較されるようになります。

OCCURS(Vendor_Name, "UNITED EQUIPMENT") > 0

Vendor_Name フィールドに "UNITED EQUIPMENT" という名前が大文字で入っているすべてのレコードを分離します。

FIND( ) 関数とは異なり、OCCURS( ) 関数は大文字と小文字を区別します。

特定のバイト位置で始まる部分文字列を検索します。

使用する関数:AT( ) 関数

説明:文字フィールドで、続いて現れる部分文字列を検索して、目的の部分文字列の開始バイト位置を特定することができます。

結果

AT(2, "-", Invoice_Number) > 10

請求書番号に 2 つ以上のハイフンが入っており、2 つ目のハイフンが、文字列内の 10 番目の文字より後に現れるすべてのレコードを分離します。

範囲からテキスト、日付時刻、または数値を検索する

使用する関数: BETWEEN( ) 関数

説明:範囲内に入っている値を検索することができます。

結果

BETWEEN(Last_Name, "C", "K")

Last_Name フィールドの値が、"C" から "K" まで(これらの値も含む)の文字で始まるすべてのレコードを分離します。

正確な文字比較を行う]オプションをオフにする必要があります。

BETWEEN(Invoice_Date, `20140930`, `20141030`)

請求日が 2014 年 9 月 30 日から 2014 年 10 月 30 日まで(これらの日付も含む)であるすべてのレコードを分離します。

NOT BETWEEN(Invoice_Date, `20140930`, `20141030`)

請求日が 2014 年 9 月 30 日から 2014 年 10 月 30 日まで(これらの日付も含む)の範囲内でないすべてのレコードを分離します。

BETWEEN(Invoice_Amount, 1000, 5000)

請求金額が 1000 ドルから 5000 ドルまで(これらの値も含む)であるすべてのレコードを分離します。

ほぼ同じテキスト値(あいまい重複)を検索する

使用する関数:ISFUZZYDUP( ) 関数

説明:同じ値だけでなく、ほぼ同じ値(あいまい重複)を検索することができます。大文字と小文字を区別しません。

使用する関数:LEVDIST( ) 関数

説明:ISFUZZYDUP( ) と似ていますが、デフォルトで大文字と小文字が区別される点が異なります。

結果

ISFUZZYDUP(Last_Name, "Braun", 2)

Last_Name フィールドに "Braun" という名前か、または "Braun" のあいまい重複が入っているすべてのレコードを分離します。

この例では、レーベンシュタイン距離(あいまいさの度合い)を 2 に設定していますが、この値は増減できます。

LEVDIST(TRIM(Last_Name), "Braun") < 3

Last_Name フィールドに "Braun" という名前か、または "Braun" のあいまい重複が入っているすべてのレコードを分離します。

この例では、レーベンシュタイン距離(あいまいさの度合い)を < 3 に設定していますが、この値は増減できます。

式に TRIM( ) 関数を含めると、Last_Name フィールドから先頭のスペースがすべて取り除かれ、テキスト値のみが比較されるようになります。

空白のテキスト値を検索する

説明:ISBLANK( ) 関数

説明:文字フィールドで空白値を検索することができます。

結果

ISBLANK(First_Name)

First_Name が空白であるすべてのレコードを分離します。

基本的なパターンを検索する

使用する関数:MAP( ) 関数

説明:ワイルドカード文字、リテラル文字、またはその両方の組み合わせを使って検索を行うことができます。

結果

MAP(Invoice_Number, "XX99999")

請求書番号が、2 つの文字の後に 5 つの数字が続く構成であるか、またはこの構成で始まるすべてのレコードを分離します。

MAP(Invoice_Number, "AB12345")

請求書番号が "AB12345" であるか、または "AB12345" で始まるすべてのレコードを分離します。

MAP(Invoice_Number, "AB99999")

請求書番号が、"AB" の後に 5 つの数字が続く構成であるか、またはこの構成で始まるすべてのレコードを分離します。

NOT MAP(SSN, "999-99-9999")

SSN フィールドの値が社会保障番号の標準形式と一致しないすべてのレコードを分離します。

複雑なパターンを検索する

使用する関数:REGEXFIND( ) 関数

説明:最も強力で柔軟性のある検索関数です。リテラル文字とメタ文字を組み合わせた正規表現を使用して検索することができます。他の検索関数を使用するより複雑になることがあります。

結果

REGEXFIND(Vendor_City, "Phoenix|Austin|Los Angeles")

Vendor_City フィールドの値に "Phoenix"、"Austin"、または "Los Angeles" を含んでいるすべてのレコードを分離します。

REGEXFIND(Product_Code, "\b\d{3}-[a-zA-Z]{6}\b")

製品コードが、3 つの数字で始まり、その後に 1 つのハイフンと 6 つの文字が続くすべてのレコードを分離します。

REGEXFIND(Product_Code, "\b\d{3,}-[a-zA-Z]{6}")

製品コードが、3 つ以上の数字で始まり、その後に 1 つのハイフンと 6 つ以上の文字が続くすべてのレコードを分離します。

Analytics 検索関数の比較

以下に、Analytics 検索関数同士での主要機能の比較対照表を示します。各関数を制御する特定の規則がどのような点で異なっているかを知ると、Analytics 内で検索表現を作成する際に役立ちます。

 

FIND( )

FINDMULTI( )

MATCH( )

MAP( )

OCCURS( )

AT( )

BETWEEN( )

REGEXFIND( )

ISFUZZYDUP( )

LEVDIST( )

検索可能なデータ型 文字

文字

日付時刻

数値

文字

文字

日付時刻

数値

文字
検索場所

フィールド

フィールド

レコード

フィールド

フィールド

フィールド

フィールド

フィールド

フィールド
先頭スペースの検索

はい

(データ内の先頭スペースは、状況に応じて、検索文字列と一致させることができます)

はい

(データ内の先頭スペースは、検索文字列内のスペースと正確に一致している必要があります)

はい

(データ内の先頭スペースは、状況に応じて、検索文字列と一致させることができます)

はい

(データまたは検索文字列内のスペースは、文字として扱われます)

大文字と小文字の区別 いいえ はい

はい

(リテラル文字)

いいえ

(ワイルドカード文字)

はい

いいえ

(ISFUZZYDUP)

省略可能

(LEVDIST)

部分一致

はい

(検索文字列は、フィールド内のどこに現れてもかまいません)

はい

(検索文字列は、フィールドの先頭に現れる必要があります。文字のみ)

はい

(検索文字列は、データ値と同じ長さであるか、または短くなければなりません)

はい

(検索文字列は、フィールド内のどこに現れてもかまいません)

はい

(検索文字列は、フィールドの先頭に現れる必要があります。文字のみ)

はい

(検索文字列は、フィールド内のどこに現れてもかまいません)

はい
複数の検索語

いいえ

(FIND)

はい

(FINDMULTI)

はい いいえ はい いいえ
[正確な文字比較を行う]オプション

(SET EXACT ON/OFF)

による影響
いいえ はい いいえ はい いいえ
Analytics 14.1 ヘルプ