フィールドを複数フィールドに分割
データ内に複数の異なる情報を含む文字列フィールドがあると (例えば、顧客の姓と名)、それらの値を別々のフィールドに分割できる場合があります。
Tableau Desktop の [分割] オプションを使用すると、フィールドの各行に存在するセパレーター (区切り文字) や値の繰返しパターンに基づいて、それらの値を分離することができます。顧客名の例では、一般的な区切り文字は、姓と名の間のスペース「 」です。
分割オプションの選択
Tableau Desktop (ブラウザーでの Web 編集ではありません) には、自動分割またはカスタム分割の選択するメニューがあります。これらは SPLIT 文字列関数に基づいており、この関数を手動で計算に使用して、分割を完全に制御することもできます。
すべてのデータ ソースが SPLIT をサポートしているとは限りません。[分割] オプションや [カスタム分割] オプションがあるか確認すると、データが SPLIT 関数をサポートしているかどうかがわかります。
[データ ソース] ページで、[分割] および [カスタム分割] のメニューを確認します。
シートの [データ] ペインで、[変換] > [分割] および [カスタム分割] のメニューを確認します。
ウェブ上での分割
Web 作成は、メニューからの分割をサポートしていません。SPLIT 計算を手動で作成すると、ブラウザーでの作業中にデータを分割できます。「メニューからの分割の代替手段」を参照してください。
フィールドの分割
文字列フィールドは、Tableau がフィールド内で検出する一般的な区切り文字に基づいて自動分割できます。分割を手動で定義することもできます
接続の種類に応じて、フィールドの値を最大 10 個の新しいフィールドに自動的に分割することができます。
フィールドの自動分割
[データ ソース] ページのグリッドで、フィールド名の隣にあるドロップダウン矢印をクリックし、[分割] を選択します。
[データ] ペインで、分割するフィールドを右クリックしてから、[変換] > [分割] を選択します。
分割の結果は、他の計算フィールドと同様に編集または削除できる標準の計算フィールドです。分割によって生成される新しいフィールドのデータ型は、Tableau が検出するパターンの組み合わせに応じて異なります。
フィールドのカスタム分割
分割をより細かく制御するには、カスタム分割オプションを使用します。区切り文字を指定し、最初に現れた N 個の区切り文字で値を分割するか、最後の N 個で分割するか、または現れたすべてで分割するかを選択できます。
[データ ソース] ページのグリッドで、フィールド名の隣にあるドロップダウン矢印をクリックします。[カスタム分割] を選択します。
[データ] ペインで、分割するフィールドを右クリックし、[変換] > [カスタム分割] を選択します。
カスタム分割によって生成される新しいフィールドは、常に文字列データ型となります。
注: 自動分割に時間がかかりすぎて新しいフィールドを生成できない場合や、一般的な区切り文字が見つからない場合は、カスタム分割のダイアログ ボックスが表示されることがあります。
カスタム分割は、区切り文字の数が値ごとに異なる場合に役立ちます。このような場合、自動分割は使用できません。
たとえば、[従業員情報] フィールドに次の値があるとします。
- jsmith| accounting | north
- dnguyen | humanresources
- lscott | recruiting| west
- karnold |recruiting |west
カスタム分割は、パイプ文字「|」で分割し、すべての列を分割するように構成できます。地区の記載がない値の場合、その行の 3 番目の結果フィールドは Null になります。
メニューからの分割の代替手段
SPLIT 関数を使用して手動で分割
SPLIT 関数はカスタム分割と同様に機能しますが、計算ごとに 1 つの結果フィールドのみが返されます。区切り文字を定義し、トークン番号を指定することにより、返す値を指定します。
たとえば、顧客名を姓と名に分割するには、次の 2 つの計算フィールドを作成します。
- 名:
SPLIT([Customer Name], " ", 1)
- 姓:
SPLIT([Customer Name], " ", 2)
従業員情報の例 ("jsmith| accounting | north" など) では、次の 3 つの計算フィールドを使用します。
- ユーザー名:
SPLIT([Employee Info], |, 1)
- 部門:
SPLIT([Employee Info], |, 2)
- 地域:
SPLIT([Employee Info], |, 3)
詳細については、「SPLIT 関数」を参照してください。
LEFT 関数と RIGHT 関数を使用して手動で分割
ユースケースが、区切り文字に基づいて文字列を分割するのではなく、文字列の特定の部分を抽出することである場合は、LEFT 関数と RIGHT 関数を使用できます。これらは、指定された文字数に基づいて文字列の一部のみを返します。
たとえば、行の値が IGW8892 の場合、次のようになります。
計算 | 結果 |
RIGHT([Value], 4) | 8892 |
LEFT([Value], 4) | IGW8 |
LEFT(RIGHT([Value], 2) , 1) | 9 |
詳細については、文字列関数の LEFT と RIGHT を参照してください。
区切り文字が混在するフィールドに正規表現を使用
区切り文字の種類が異なる場合、フィールドを自動的に分割することはできません。たとえば、フィールドに次の値が含まれるとします。
- smith.accounting
- dnguyen-humanresources
- lscott_recruiting
- karnold_recruiting
このような場合は、望ましい情報を抽出するために正規表現を使用することを検討します。詳細については、その他の関数を参照してください。
分割とカスタム分割の操作
分割とカスタム分割を使用する際に留意すべき点。
新しいフィールドは、表を結合するキーとしては使用できませんが、データ ソースをブレンドするキーとして使用できます。
新しいフィールドをピボットで使用することはできません。
[分割] オプションと [カスタム分割] オプションは、セット、グループ、パラメーター、ビンをサポートしていません。
Microsoft SQL Server では最大 4 つの分割フィールドしか許可されません。
10 個を超える新しいフィールドを生成するには、複数回分割することを検討してください。最初の分割で得られたフィールドにまだ複数の情報が含まれている場合、もう一度分割を使用できます。
分割とカスタム分割のトラブルシューティング
分割やカスタム分割を使用する際に発生する可能性のある既知の問題を以下に示します。
[分割] と [カスタム分割] オプションを、対応している種類のデータ ソースで使用できない: [分割] と [カスタム分割] オプションを使用できるのは、種類が文字列データであるフィールドのみです。
NULL 値: 分割またはカスタム分割の作成後、新しいフィールドに NULL 値が含まれるか、値が全く含まれない場合があります。NULL 値または空のセルは、想定される新しいフィールドに値がない場合に発生します。
データが削除されている: Tableau では、区切り文字としてフィールドの値の一部を使用する場合があります。フィールドの値の一部を区切り文字として使用する場合、それらの値は新しいフィールドに表示されなくなります。
例:
元の値 | 分割されたフィールド値 |
Zip-98102 | 98102 |
Zip-98109 | 98109 |
Zip-98119 | 98199 |
Zip-98195 | 98195 |
この分割では、「Zip-」の文字列全体が区切り文字として使用されるため、「Zip-」用のフィールドが作成されません。