文字列関数

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

文字列関数を使う理由

文字列関数は、文字列データ (つまりテキストデータ) の操作を可能にします。

たとえば、全顧客の姓名を含むフィールドがあるとします。あるメンバーは 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"

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 左のみ 10 Impala はバージョン 2.3.0 以降でサポートされます。
Microsoft SQL Server 両方 10 2008 以降

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 での計算の書式設定

ありがとうございます!