Skip to main content

(前提)

・excelファイルの項目の構成は、下記の通りで 「業務詳細」には複数個の単語が入ります。また、その単語ごとに「改行コード」(excelのセルで[alt]+[enter])が付いています

 

 構成

   「番号」,「業務」,「業務詳細」

 

 イメージ

    1,"人事業務","給与計算"「改行コード」"人事異動" 「改行コード」"人財開発"

 

(やりたいこと)

・ 「業務詳細」を分割し、ピボットのように縦にレコードを追加したい

1,"人事業務","給与計算"

1,"人事業務","人事異動"

1,"人事業務",”人財開発"

 

質問1)分割はsplit関数を使えばよいのでしょうが「改行コード」をどのように表現すればよいでしょうか

 

質問2)各レコードで「業務詳細」に存在する「改行コード」の数がマチマチですが、「改行コード」の数を固定せず汎用的な処理にする方法はないでしょうか

2 risposte
  1. 11 giu 2020, 02:49

    次回からサンプルデータを付けていただけるとありがたいです。

    使おうとしているデータはおそらくこんな形だろうと推察します。

    次回からサンプルデータを付けていただけるとありがたいです。使おうとしているデータはおそらくこんな形だろうと推察します。 改行を認識するだけならTableau Desktop上でできますが、個別のレコードとして持ちたいならTableau Prepなどで事前にクリーニングが必要です。 Tableau PrepでExcelのセル内改行を含むデータを読み込むと、改行が \n と表示されています。 しかし、

     

    改行を認識するだけならTableau Desktop上でできますが、個別のレコードとして持ちたいならTableau Prepなどで事前にクリーニングが必要です。

     

    Tableau PrepでExcelのセル内改行を含むデータを読み込むと、改行が \n と表示されています。

    pastedImage_1.png

     

    しかし、カスタム分割で \n をデリミタに指定して分割しようとしてもうまくいきません。\n という文字を含んでいるわけではないからです。

    そこで、一度改行コードを別の文字に置き換えます。改行コードは CHAR(10) で認識させることができます。 ←これが質問①の回答です。

    代わりに置き換える文字は、そのデータ内で使われることのない記号にする必要がありますので注意してください。

    pastedImage_2.png

     

    こうして置き換えたフィールドに対してカスタム分割を実行します。

    分割数を「すべて」にすることで、レコードごとのセル内改行の数に関わらず自動で全部分割してくれます。 ←これが質問②の回答です。

    但し、一度に分割できるのは10分割までなので、セル内改行がそれ以上ある場合は、残った10分割目を更に分割する必要があります。

    pastedImage_3.png

     

    すると本来セル内改行のあった位置でフィールドが分割されます。

    pastedImage_4.png

     

    あとは分割したデータをピボットして不要な行を消したりすれば綺麗なデータになります。

    pastedImage_5.png

0/9000