見出し画像

twitter で流れていた Excel の問題を解いてみる 2

今回のお題はこれです.早速やってみます.

データの準備

Excel でこんなデータを作って,

画像1

ALZETA にアップロードしました.

画像2

中身をプレビューすると,

画像3

データ加工(やり方1)

まず,どなたにも無理ない方法です.文字 '_' で分割していくやり方です.ALZETA の「項目分割」PM を接続して,赤枠のように設定します.

画像4

「オリジナル」というカラムのデータを '_' で分割して「項目1」というカラムと「項目2」というカラムを作ります.

「中間ファイル」PM を繋いでプレビューしてみますと,

画像5

いい感じですね.次は「項目2」を '_' で分割します.そのうち一つ目の項目が欲しいので「抽出対象」という項目名にします.ALZETA の「項目分割」PM を接続して,赤枠のように設定します.

画像6

プレビューすると,

画像7

あとは,余計な項目を外します.「並替」PM を使います.

画像8

できました.

画像9

データ加工(やり方2)

もう一つは,「文字列置換」PM を使うやり方です.「文字列置換」PM は,カラムのデータを直接書き換えてしまうため,まず「項目複製」PM でカラムを複製します.

画像10

プレビューすると,

画像11

次に「文字列置換」PM を使って,「抽出対象」カラムのデータを正規表現で一度に変換してしまいます.

画像12

「置換前」に入れてあるのは正規表現で,

^【.+】[^_]+_([^_]+)_[^_]+$

その意味は,

^: 先頭
【.+】: 【】に囲まれた1文字以上の部分
[^_]+: '_' という文字以外1文字以上
_: '_' という文字そのもの
([^_]+): '_' という文字以外1文字以上 ※() で囲うと,中身をあとで利用できる
_: '_' という文字そのもの
[^_]+: '_' という文字以外1文字以上
$: 末尾

という具合になっており,「置換後」に

\1

を指定することにより,「置換前」の () で囲った部分を取り出しています.

結果をプレビューすると,所望の結果が得られています.

画像13


この記事が気に入ったらサポートをしてみませんか?