最終修正日: 11 Mar 2024
環境
- Tableau Desktop
回答
長い文字列から部分文字列を抽出する手順は次の通りです。この手順は、添付のワークブックで確認できます。- [分析] > [計算フィールドの作成] を選択します。
- [計算フィールド] ダイアログ ボックスが開き、次を行います。
- 計算フィールドに名前を付けます。ワークブックの例では、計算フィールドには Substring (部分文字列) という名前が付けられています。
- 式フィールドで、次のような計算フィールドを作成します。
IF CONTAINS([<Dimension>], '<Identifying Character 1>') THEN MID( [<Dimension>], FIND([<Dimension>],'<Identifying Character 1>') + 1, FIND([<Dimension>],'<Identifying Character 2>') - (FIND([<Dimension>],'<Identifying Character 1>') +1) ) END
- [OK] をクリックします。
- 部分文字列を [行] シェルフにドラッグします。
詳細情報
- この計算では、最後の部分文字列に識別文字は含まれません。識別文字を含めるには、上記の計算で両方の「+1」を削除します。
- 条件 CONTAINS([<Dimension>], '<Identifying Character 1>') を使用する IF ステートメントは、最初の識別文字を含まない文字列を除外します。この条件が必要なのは、最初の識別文字が見つからない場合に、MID() の有効な開始位置でありながら FIND() が 0 を返すためです。
- 「Identifying Character 1」は、求める部分文字列の先頭にあります。
- 「Identifying Character 2」は、求める部分文字列の末尾にあります。
- 2 つの同じ文字にはさまれた部分文字列(たとえば、文字列「the *dog* is brown」の中の「dog」)を検索する場合、2 番目の文字には FIND() の代わりに FINDNTH() を使用します。次のようになります。
-
MID( [<Dimension>], FIND([<Dimension>],'<Identifying Character>') + 1, FINDNTH([<Dimension>],'<Identifying Character>', 2) - (FIND([<Dimension>],'<Identifying Character>') +1) )
-
記事がご参考になったかどうか、フィードバックをお寄せいただきありがとうございます。
新しい問題を登録する
検索を続ける
ナレッジベース
コミュニティ
製品のヘルプ
トレーニングとチュートリアル