この記事は、文字列関数と Tableau での用途について紹介します。また、例を使用して文字列計算を作成する方法を示します。

文字列関数を使う理由

文字列関数は、文字列データ (つまりテキストデータ) の操作を可能にします。Tableau は、文字列を比較するときに、最新の International Components for Unicode (ICU) ライブラリを使用します。文字列の並べ替えや比較の方法は言語とロケールの両方に基づいています。ICU が継続的な更新と言語サポートの向上に伴い、Viz が変更される可能性があります。

たとえば、全顧客の姓名を含むフィールドがあるとします。あるメンバーは Jane Johnson です。文字列関数を使って、全顧客の姓だけを新しいフィールドに取り込むことができます。

計算結果は次のようになります。

SPLIT([Customer Name], ' ', 2)

そのため、SPLIT('Jane Johnson' , ' ', 2) = 'Johnson' となります。

Tableau で利用可能な文字列関数:

関数

構文

定義

ASCII

ASCII(string)

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

例:

ASCII('A') = 65

CHAR

CHAR(number)

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

例:

CHAR(65) = 'A'

CONTAINS

CONTAINS(string, substring)

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

例:

CONTAINS(“Calculation”, “alcu”) = true

ENDSWITH

ENDSWITH(string, substring)

特定の文字列が指定されたサブ文字列で終わる場合は、true を返します。行末の空白は無視されます。

例:

ENDSWITH(“Tableau”, “leau”) = true

FIND

FIND(string, substring, [start])

string 内の substring のインデックス位置を返します。substringが見つからない場合は、0 を返します。オプションの引数 start を追加した場合、この関数は同じ処理を行いますが、インデックス位置 start より前に現れる substring のインスタンスはすべて無視されます。文字列の最初の文字の位置は 1 です。

例:

FIND("Calculation", "alcu") = 2
FIND("Calculation", "Computer") = 0
FIND("Calculation", "a", 3) = 7
FIND("Calculation", "a", 2) = 2
FIND("Calculation", "a", 8) = 0
FIND("Calculation", "a", 3) = 7
FIND("Calculation", "a", 2) = 2
FIND("Calculation", "a", 8) = 0

FINDNTH

FINDNTH(string, substring, occurrence)

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

: FINDNTH は、すべてのデータ ソースで使用できません。

例:

FINDNTH("Calculation", "a", 2) = 7

LEFT

LEFT(string, number)

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

例:

LEFT("Matador", 4) = "Mata"

LEN

LEN(string)

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

例:

LEN("Matador") = 7

LOWER

LOWER(string)

string のすべての文字を小文字に返します。

例:

LOWER("ProductVersion") = "productversion"

LTRIM

LTRIM(string)

先頭の空白を削除した文字列を返します。

例:

LTRIM(" Matador ") = "Matador "

MAX

MAX(a, b)

 

ab の最大値を返します (同じ型でなければなりません)。この関数は、通常は数値の比較に使用されますが、文字列でも使用できます。文字列を使用する場合、MAX は、その列のデータベースによって定義されているソート順が最も高い値を見つけます。いずれかの引数が Null の場合は、Null を返します。

例:

MAX ("Apple","Banana") = "Banana"

MID

(MID(string, start, [length])

インデックス位置 start で始まる文字列を返します。文字列の最初の文字の位置は 1 です。オプションの引数 length を追加した場合、返される文字列には、その引数に相当する数の文字だけが含まれます。

例:

MID("Calculation", 2) = "alculation"
MID("Calculation", 2, 5) ="alcul"

MIN

MIN(a, b)

ab の最小値を返します (同じ型でなければなりません)。この関数は、通常は数値の比較に使用されますが、文字列でも使用できます。文字列を使用する場合、MIN は、ソート順が最も低い値を見つけます。いずれかの引数が Null の場合は、Null を返します。

例:

MIN ("Apple","Banana") = "Apple"

PROPERPROPER(string)

各単語の最初の文字が大文字で、残りの文字が小文字になるようにテキスト文字列を変換します。スペースや句読点などの英数字以外の文字も区切り文字として機能します。

例:

PROPER("PRODUCT name") = "Product Name"

PROPER("darcy-mae") = "Darcy-Mae"

REPLACE

REPLACE(string, substring, replacement)

stringsubstring を検索し、それを replacement で置き換えます。substring が見つからない場合、string は変更されません。

例:

REPLACE("Version8.5", "8.5", "9.0") = "Version9.0"

RIGHT

RIGHT(string, number)

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

例:

RIGHT("Calculation", 4) = "tion"

RTRIM

RTRIM(string)

末尾の空白を削除した string を返します。

例:

RTRIM(" Calculation ") = " Calculation"

SPACE

SPACE(number)

指定された文字 number 分の空白で構成された文字列を返します。

例:

SPACE(1) = " "

SPLIT

SPLIT(string, delimiter, token number)

指定した文字列を基に、区切り文字を使用して連続したトークンに文字列を分割したサブストリングを返します。

文字列は区切り文字とトークンが交互に連続する文字列として解釈されます。そのため、文字列がabc-defgh-i-jklで区切り文字が「-」の場合、「abc」「defgh」「i」「jlk」がトークンとなります。これらをトークン 1 からトークン 4 と考えます。SPLIT はトークン数に対応するトークンを返します。トークン数が正の場合、トークンは文字列の左端からカウントされます。トークン数が負の場合、トークンは文字列の右からカウントされます。

例:

SPLIT (‘a-b-c-d’, ‘-‘, 2) = ‘b’
SPLIT (‘a|b|c|d’, ‘|‘, -2) = ‘c’


注: split および custom split コマンドは、次の種類のデータ ソースで使用できます。Tableau データ抽出、Microsoft Excel、テキスト ファイル、PDF ファイル、Salesforce、OData、Microsoft Azure Market Place、Google Analytics、Vertica、Oracle、MySQL、PostgreSQL、Teradata、Amazon Redshift、Aster Data、Google Big Query、Cloudera Hadoop Hive、Hortonworks Hive、Microsoft SQL Server。

一部のデータ ソースは、文字列の分割に制限を課します。次の表は、負のトークン数をサポートするデータ ソースや、データ ソースごとに許可される分割の数に制限があるかどうかを示します。他のデータ ソースでは有効な負のトークン数を指定 SPLIT 関数は、これらのデータ ソースでは次のエラーを返します:「このデータ ソースでは、右からの分割はサポートされません。」

 

データ ソース左/右の制約分割の最大数バージョンの制限
Tableau Data Extract両方無制限 
Microsoft Excel両方無制限 
テキスト ファイル両方無制限 
Salesforce両方無制限 
OData両方無制限 
Google Analytics両方無制限 
Tableau データ サーバー両方無制限バージョン 9.0 でサポート。
Vertica左のみ10 
Oracle左のみ10 
MySQL両方10 
PostgreSQLバージョン 9.0 より前は左のみ。バージョン 9.0 以降は両方。10 
Teradata左のみ10バージョン 14 以降
Amazon Redshift左のみ10 
Aster Database左のみ10 
Google BigQuery左のみ10 
Hortonworks Hadoop Hive左のみ10 
Cloudera Hadoop左のみ10Impala はバージョン 2.3.0 以降でサポートされます。
Microsoft SQL Server両方102008 以降

STARTSWITH

STARTSWITH(string, substring)

stringsubstring で始まる場合は、true を返します。行頭の空白は無視されます。

例:

STARTSWITH(“Joker”, “Jo”) = true

TRIM

TRIM(string)

先頭と末尾の空白を削除した文字列を返します。

例:

TRIM(" Calculation ") = "Calculation"

UPPER

UPPER(string)

string のすべての文字を大文字に返します。

例:

UPPER("Calculation") = "CALCULATION"


文字列計算の作成

次の手順に従って、文字列計算の作成方法を学習してください。

  1. Tableau Desktop で、Tableau に付属の "Sample - Superstore (サンプル - スーパーストア)" 保存済みデータ ソースに接続します。

  2. ワークシートに移動します。

  3. [データ] ペインの [ディメンション] から、"Order ID (注文 ID)"[行] シェルフまでドラッグします。

    各注文 ID には、国 (たとえば CA や US)、年 (2011)、注文番号 (100006) が含まれています。この例では、フィールドから注文番号のみを取り込む計算を作成します。

  4. [分析] > [計算フィールドの作成] を選択します。

  5. 開いた計算エディターで、次の操作を実行します。

    • 計算フィールドに「Order ID Numbers (注文 ID 番号)」と名前を付けます。

    • 次の式を入力します。

      RIGHT([Order ID], 6)

      この式は、文字列の右から指定された桁数 (6) を新しいフィールドに取り込みます。

      そのため、RIGHT('CA-2011-100006' , 6) = '100006' となります。

    • 終了したら、[OK] をクリックします。

      新しい計算フィールドは、[データ] ペインの [ディメンション] に表示されます。他のフィールドと同様に、このフィールドを 1 つ以上のビジュアライゼーションで使用できます。

  6. [データ] ペインから、"Order ID Numbers (注文 ID 番号)"[行] シェルフにドラッグします。"Order ID (注文 ID)" の右側に配置します。

    フィールドが変わりました。

関連項目

Tableau で使用する関数

Tableau 関数 (アルファベット順)

Tableau 関数 (カテゴリ別)

Tableau での計算の書式設定

ありがとうございます!