Tableau Desktop 使い方 関数(2) 〜文字列関数

Tableauでは様々な計算が関数として標準で用意されているので、それらを利用して集計をすることができます。

本ページではTableauの文字列関数の中からよく利用するCONTAINS、FIND、LEFT、REPLACE、SPLIT、TRIM関数を紹介します。

CONTAINS

CONTAINS関数はある文字列に特定の文字列が含まれているかどうかを判定する関数で、次のように記述します。

CONTAINS(string, substring)

文字列stringに特定の文字列substringが含まれている場合はtrueを返します。

スーパーストアのデータを利用した例をみてみましょう。

やってみよう!

出荷モードが「通常配送」の注文を調べてみましょう。

出荷モードが文字列「通常」を含むかどうかを返す計算式を計算フィールドに定義して「CONTAINS」という名称で作成します。
文字列関数CONTAINSを利用した計算

計算結果を確認してみましょう。
データペインの「オーダーId」、「出荷モード」、作成した「CONTAINS」を行にドラッグ&ドロップします。
文字列関数CONTAINSを利用した計算式の結果
出荷モードが「通常配送」の場合はCONTINS関数が真を返し、それ以外の場合には偽を返していることが分かります。

YouTubeでも紹介しています。(0:15〜)

FIND

FIND関数はある文字列にマッチする特定の文字列の位置を返す関数です。

FIND(string, substring, [start])

文字列stringの先頭から検索を開始して最初に特定の文字列substringにマッチする位置を返します。substringが見つからない場合は、0を返します。
オプションの引数startを指定した場合は、startから検索を開始します。

スーパーストアのデータを利用した例をみてみましょう。

やってみよう!

オーダーidから最初のハイフンの位置を集計してみましょう。

オーダーidの文字列の先頭から最初にハイフンが出現する位置を計算する式を計算フィールドに定義して「FIND」という名称で作成します。

計算結果を確認してみましょう。
データペインの「オーダーId」を行、作成した「FIND」をマークのテキストにドラッグ&ドロップします。
TableauでFIND関数の適用
オーダーidでの文字列は3文字目にハイフンが出現していることが分かります。

YouTubeでも紹介しています。(1:48〜FIND、3:22〜FINDNTH)

LEFT

LEFT関数は文字列の先頭の文字列を抽出する関数で次のように定義します。

LEFT(string, number)

文字列stringの先頭からnumber分の文字列を返します。

スーパーストアのデータを利用した例をみてみましょう。

やってみよう!

オーダーidから最初のハイフンより前の文字を取り出してみましょう。

オーダーidの文字列の先頭から最初にハイフンが出現する位置までを取り出す計算式を計算フィールドに定義して「LEFT」という名称で作成します。

最初にマッチする文字列の位置を返すFIND関数と併用しています。

計算結果を確認してみましょう。
データペインの「オーダーId」を行、作成した「LEFT」をマークのテキストにドラッグ&ドロップします。
TableauでLEFT関数の適用
オーダーidでの文字列で、1文字目から最初にハイフンが出現する3文字目までの文字列「JP-」が返されていることが分かります。

LEFT関数とは逆に末尾の文字列を抽出するRIGHTもあります。

YouTubeでも紹介しています。(2:38〜LEFT、4:58〜RIGHT)

REPLACE

REPLACE関数は文字列の一部を別の文字列に置き変える関数で次のように記述します。

REPLACE(string, substring, replacement)

文字列stringの先頭から検索を開始して特定の文字列substringがマッチしたら文字列replacementで置き換えます。substringが見つからない場合には何もしません。

スーパーストアのデータを利用した例をみてみましょう。

やってみよう!

オーダーIdの国番号「JP」を「JPN」に置換してみましょう。

オーダーIdのJPを置換する計算式を計算フィールドに定義して「REPLACE」という名称で作成します。
文字列関数REPLACEを利用した計算

計算結果を確認してみましょう。
データペインの「オーダーId」を行、作成した「REPLACE」をマークのテキストにドラッグ&ドロップします。
文字列関数REPLACEを利用した計算式の結果
オーダーIdの国番号「JP」が「JPN」に変更されたことがわかります。

YouTubeでも紹介しています。(0:20〜)

SPLIT

SPILIT関数は文字列を分割する関数で次のように記述します。

SPLIT(string, delimiter, token number)

文字列stringを区切り文字列delimiterで複数の文字列に分割し、token numberで指定された順番の文字列を返します。
token numberに正の整数を指定した場合には左から、負の整数を指定した場合には右からそれぞれカウントします。

スーパーストアのデータを利用した例をみてみましょう。

やってみよう!

製品IdからIdのみを切り出してみましょう。

製品Idは「事務用-画材-10002175」のように「カテゴリ」「サブカテゴリ」「Id」の順にハイフンで接続された文字列なので、この特徴を利用して「Id」のみを取り出してみます。
製品Idをハイフンで区切り左から3目の文字列を取り出す計算式を計算フィールドに定義して「SPLIT3」という名称で作成します。
文字列関数SPLITを利用した計算

計算結果を確認してみましょう。
データペインの「製品Id」を行、作成した「SPLIT3」をマークのテキストにドラッグ&ドロップします。
文字列関数SPLITを利用した計算式の結果
製品IdからId部分が抽出されていることが分かります。

token numberを以下のようにしても同じ結果になります。
token numberを「-1」に変更した計算式を「SPLIT-1」という名称で作成します。
文字列関数SPLITを利用した計算

計算結果を確認してみましょう。
作成した「SPLIT-1」を「SPLIT3」の代わりにマークのテキストにドラッグ&ドロップします。
文字列関数SPLITを利用した計算式の結果
製品IdからId部分が抽出されていることが分かります。
token numberに「3」を指定した「SPLIT3」と同じ結果になりました。

YouTubeでも紹介しています。(3:47〜)

TRIM

TRIM関数は文字列の先頭と末尾の空白を削除する関数で次のように記述します。

TRIM(string)

文字列stringから先頭と末尾の空白を削除した文字列を返します。空白が見つからない場合には何もしません。

例えばTRIM(" JP-2016 1001113 ")とすると"JP-2016 1001113"が返ります。

空白は文字列の比較や他の処理にも影響を及ぼします。誤った集計や分析の原因になりがちなので、空白が入る可能性が疑われるフィールドには以下のようにTRIM関数を適用します。

TRIM関数の他にも、先頭の空白を削除するLTRIMや末尾の空白を削除するRTRIMもあります。

本ページではTableauの文字列関数の中からよく利用するCONTAINS、FIND、LEFT、REPLACE、SPLIT、TRIM関数を紹介しました。

タイトルとURLをコピーしました