Tableauの関数を全て試してみる〜文字列関数編その1〜 #tableau

2017.12.05

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんにちは。DI部のtamaです。

当エントリはTableau Functions Advent Calendar 2017の5日目のエントリです。 昨日のエントリはTableauの関数を全て試してみる〜数値関数編その4〜でした。

今回は新章突入、文字列関数について見ていきます。

  • 使用するTableauのバージョンは一貫して10.4.1です。
  • 各関数の説明で引用しているのは、Tableauの公式リファレンスからの引用です。
  • TableauHelp 関数

目次

検証環境

作業環境

  • MacOS High Sierra 10.13.1
  • Tableau 10.4.1

使用データ

  • (原則)Tableau付属のサンプルスーパーストア
  • (場合によって)関数グラフ描画用データ
  • -1〜1の範囲で、0.01毎に値が並んでいるデータ
  • 上記の値をディメンション「X軸」とし、その上に色々な関数をプロットする。
  • 参考:Tableau 関数グラフの描画 | Developers.IO

ASCII(string)

概要

string の最初の文字の ASCII コードを返します。

  • 文字列のASCIIコードを調べることができます。

使ってみた

オーダーIDに対して関数を実行します。

ASCII([オーダー Id])

全部「J」から始まるのに、値が違いますね。 これはメジャー(数値)として返ってきているので、集計されてしまっているからです。

レコード単位でみると、JのASCIIコードである74が返ってきています。

どういう時に使う?

  • 分析する上で、文字列の最初のASCIIコードを知りたい時は、なかなかないように思えます…

参考文献

CHAR(number)

概要

ASCII コード number によって符号化された文字を返します。

  • ASCII関数の逆ですね。

使ってみた

上記で出てきた74をもとに戻してみましょう。

CHAR(74)

「J」が返ってきました。

どういう時に使う?

  • 分析するデータ(接続しているデータ)が、ASCIIコードだった場合は当関数で変換し、分析を進めることができます。
  • あまりそういったデータを分析する機会は少ないかもしれませんが…

参考文献

CONTAINS(string, substring)

概要

特定の文字列に指定されたサブ文字列が含まれている場合は、true を返します。

  • 1番目の引数に指定した文字列に対して、特定の文字列が含まれているか調べる関数です。

使ってみた

オーダーIDに対して、「101」という文字列がないか調べてみます。

CONTAINS([オーダー Id], '101')

真偽値で判定結果が返ります。

どういう時に使う?

  • GA等のデータ(ディレクトリパスなど)に対して使用すると有効と思われます。
  • 他の関数と組み合わせることで、色々な事ができる関数だと思います。
  • IF文やCASE文など…

参考文献

ENDSWITH(string, substring)

概要

特定の文字列が指定されたサブ文字列で終わる場合は、true を返します。行末の空白は無視されます。 * 引数に指定した文字列に対して、後方一致で検索することができる関数になります。

使ってみた

末尾が「1」のオーダーIDを出してみたいと思います。

ENDSWITH([オーダー Id],'1')

真偽値で判定結果が返ります。

どういう時に使う?

  • 一定のルールに基づいたデータ(通し番号系、ID系等)に対しての処理
  • 「末尾が○○のIDは、☓☓というカテゴリ」というルールを施しているデータは、たまに見かけます。

参考文献

FINDNTH(string, substring, occurrence)

概要

指定した文字列内のサブストリングが n 番目に現れる位置を返します。ここで、n は出現引数によって定義されます。すべてのデータ ソースで使用できません。

*

使ってみた

「100」という文字列が、1番目に出てくる位置を調べます。

FINDNTH([オーダー Id], '100', 1)

数値で返ってきているので、集計されてしまっています。

「100」が現れる先頭位置が返ってきています。

どういう時に使う?

  • 一定のルールに基づいたデータ(通し番号系、ID系等)に対しての処理

LEFT(string, number)

概要

文字列内の一番左から n 文字分を返します (n は引数で指定された数)。

  • 左から指定した分の文字列を抜き出します。

使ってみた

オーダーIDの左2文字分を抽出します。

LEFT([オーダー Id],2)

「JP」という文字だけ抜き出せました。

どういう時に使う?

  • 一定のルールに基づいたデータ(通し番号系、ID系等)に対しての処理
  • 「何桁目までが○○のIDは、☓☓というカテゴリ」というルールを施しているデータは結構ありがちです。
  • 上記の例でいくと、オーダーIDの先頭2文字で国を表していた場合、LEFT関数で抜き出して、その項目をフィルターとして使えば、国毎にオーダーIDを絞ることができます。

参考文献

LEN(string)

概要

文字列の長さを返します。

  • 概要そのままです。

使ってみた

オーダーIDの長さを調べてみます。

LEN([オーダー Id])

例のごとく集計されているので…

レコード単位で確認します。

どういう時に使う?

  • 一定のルールに基づいたデータ(通し番号系、ID系等)に対しての処理
  • 文字列の文字数に応じて、そのデータの種類を決めているデータも、多少見かけますね。

参考文献

おわりに

今回は文字列関数をみてきました。数値関数よりかは身近というか、結構普段の分析に使用できそうな関数が見受けられたと思います。 次回はtamaによる「文字列関数編その2」です。お楽しみに。