[Tableau Tips]ピポットで作成したフィールド内のテキストと数値が混在した際に分けて抽出する方法
今回やりたかったこと
横持ちのテーブルをピポットを使ってデータを整えたのですが、フィールド内にテキストと数値が混在したため、数値を計算することができないなどの問題が発生しました。
そちらを解消するために行ったことを備忘録として記載しておきます。
今回使うデータとゴールのイメージ
まず今回使うデータは下記からダウンロードしたオープンデータになります。
https://www.data.jma.go.jp/gmd/risk/obsdl/
![](https://assets.st-note.com/img/1674170356217-DPOoP5rSnQ.png)
元々ダウンロードをしたファイルはもっと違う形で、データインタープリターを使って整えることができれば良かったのですが、うまくできなかったためExcelで少しいじって上記のようなテーブルにしています。
このテーブルを最終的には下記のような形にしたいです。
![](https://assets.st-note.com/img/1674170432907-EqoFf5eNdH.png)
実際の作業
それでは実際に作業を行っていきます。
まずピポットを行います。
![](https://assets.st-note.com/img/1674170988704-M4HwF3vGUl.png?width=1200)
![](https://assets.st-note.com/img/1674170739505-NSqMR6Qcuk.png?width=1200)
地域と項目を分けたいのでカスタム分割を使います。
![](https://assets.st-note.com/img/1674170913498-34MbM95Dm9.png?width=1200)
![](https://assets.st-note.com/img/1674171053166-XXDCBVILZB.png?width=1200)
![](https://assets.st-note.com/img/1674171060781-2A4D3Kb4W7.png?width=1200)
これで地名はなんとかうまく分けることができたのですが、結果としてディメンションとして使いたかった天気や日照時間などの項目は「ピポットのフィールド名-分割」という形でひとまとまりになってしまい、「ピポットのフィールド値」にテキストや値が混在する形になってしまいました。
ここからどうするか検討しましたが、今回は天気だけ可視化したシート、日照時間だけ可視化したシートという分け方で作成する方針だったので、下記の方法でやりたいことを実現できないかと考えました。
![](https://assets.st-note.com/img/1674171467227-omFV0xHemR.png)
上記を実現するため、ピポットのフィールド値から数値だけ取り出す処理を作成してみました。
![](https://assets.st-note.com/img/1674171992788-jHXjQOESej.png?width=1200)
数値はいくつであっても0をかけたら0になるため、もしピポットのフィールド値を数値型に変換して0をかけた場合、0になったら数値と判断するという式になります。
テキストの場合は当然0にならないのでnullを返します。
テキストだけ取り出す場合は当然逆のことをします。
![](https://assets.st-note.com/img/1674172223764-nExg1FqNiU.png?width=1200)
これで同じフィールドに混在しているテキストと数値を分けて抽出ことに成功しました。