Tableau(タブロー)で特定の文字列を含む行・レコード・セルを抽出する方法を解説します。合わせて特定の文字列を含むレコードをカウントする方法も解説していますので参考にしてみてください。
ここではCONTAINS関数を用いて特定の文字列が含まれているかどうかを確認する方法を解説しています。
CONTAINS関数とは?
CONTAINS関数は対象フィールドに指定の文字列が含まれているかどうかを判定する関数です。下図の[対象フィールド]には対象の文字列が含まれているか調べたいフィールド(ディメンション)を入力して “文字列”には調べたいワードを入力して使います。

CONTAINS関数の結果は以下の真偽の2種類となります。
- 対象フィールドに文字列が含まれている場合は「真」
- 対象フィールドに文字列が含まれていない場合は「偽」
特定の文字列を含むレコードを抽出する方法
特定の文字列を含むレコードを抽出する方法は以下の2ステップです。
- CONTAINS関数を使って文字列有無の判定フィールドを作成する
- フィルタ設定で判定フィールドの結果が「真」のみを選択する
【画像付き解説】特定の文字列を含むレコードを抽出する
Tableauのサンプルデータ「スーパーストア」を使って、製品名に“コンピュータ”という文字列が含まれている行のみを抽出します。
今回は下図の「スーパーストア」のデータから製品名に“コンピュータ”という文字列が含まれている行のみを抽出します。

- データペインの「▼」をクリックして「計算フィールドの作成」をクリックする
- CONTAINS関数を用いて対象フィールド[製品名]に文字列”コンピュータ”が含まれているか判定するフィールドを作成する。

【単数の場合の例】
CONTAINS([製品名],"コンピュータ")
【複数の場合の例】複数の文字列を含むレコードを判定したい場合はANDやORで用いて複数条件にする。
CONTAINS([製品名],"コンピュータ") AND CONTAINS([製品名],"白")
- 作成した判定フィールド[コンピュータ判定]をフィルタに設定する
- 「真」にチェックを入れて 指定の文字列が含まれているレコードを抽出する

以上で特定の文字列が含まれているレコードの抽出は完了です。

特定の文字列を含むレコードをカウントする方法
特定の文字列を含むレコードをカウントする方法は以下の2ステップです。
- CONTAINS関数とIF構文を使って文字列が含まれていると「1」それ以外は「0」となるフィールドを作成する
- 作成したフィールドの合計を求める
【画像付き解説】特定の文字列を含むレコードをカウントする
Tableauのサンプルデータ「スーパーストア」を使って、製品名に“コンピュータ”という文字列が含まれている行の数をカウントします。
今回は下図の「スーパーストア」のデータから製品名に“コンピュータ”という文字列が含まれている行がいくつあるかカウントします。

- データペインの「▼」をクリックして「計算フィールドの作成」をクリックする
- IF構文とCONTAINS関数を用いて対象フィールド[製品名]に文字列”コンピュータ”が含まれている場合は「1」 含まれていない場合は「0」となるフィールドを作成する。

【例1:IF構文】
IF CONTAINS([製品名],"コンピュータ") THEN 1 ELSE 0 END
【例2:IF構文+COUNT関数】文字列が含まれていないとNULLとなるようにIF構文の”ELSE 0”を削除する。
COUNT(IF CONTAINS([製品名],"コンピュータ") THEN 1 END)
作成したフィールドを「テキスト」または「行列シェルフ」にドラッグ&ドロップする。結果として”コンピュータ”が含まれている行は「1」それ以外は「0」となっていることが確認できます。

全てのデータの中でのレコード数を確認する場合は行列シェルフからディメンションを削除してください。結果は「19」とわかります。

Tableau(タブロー)の学習本についてはコチラの記事でまとめてますので参考にしてみてください。
初学者向け おすすめ学習書
コメント