一度あることは2度あるからしっかりとPCと奮闘メモ日記

日々の実話に基づいて次も必要になりそうなことを綴っていきます。

PowerQuery 改行を消す

旧システムのCSVファイルを

新システム用CSVファイル用にPowerQueryで整形したときの話。

 

改行を消すには

結論:PowerQueryのクリーン機能を使う

 

PowerQueryのクリーン機能に行きつくまでのお話。

 

 最初はPowerQueryではなく、エクセルの置換と検索で改行を削除するつもりでした。

 

①エクセル [検索と置換] ダイアログ ボックスの [置換] タブを表示して

②[検索する文字列] ボックスをクリックして、[Ctrl] キーを押しながら [J] キーを押す

③「すべて置換」ボタンを押す

ネットでよくでてくる方法定番の方法で改行コードを消せばいいしと安心してたら・・・

消えない

消えている改行もあるのですが、消えてない改行もあります。

どうやら改行コードが混在しているようです。

エクセルの検索と置換で改行を削除する

エクセルの検索と置換で改行を削除する

 

PowerQueryの「検索と置換」で改行を消してみる

エクセルシートの検索と置換では消えなかったので

PowerQueryを使って消してみます。

変換タブ→値の置換 → 詳細オプション→特殊文字を仕様した置換

特殊文字を挿入→改行

検索する値の箇所に#(lf)と自動で入力されます。

で置換後の箇所は空白にして「OK」ボタンをおします。

PowerQuery値の置換(改行の削除)

PowerQuery値の置換(改行の削除)

 

改行消えてるかなとワクワクしていたのですが、消えない

 

改行で消えないならじゃ次は

変換タブ→値の置換 → 詳細オプション→特殊文字を仕様した置換

特殊文字を挿入→復帰改行を選択してみます。

PowerQuery値の置換(復帰改行を選択)

改行が消えてない ・・・

 

エクセルのClean関数を使ってみる

PowerQueryからエクセルシートにもどり
clean関数を使ってみたところ改行が消えました。

このままClean関数で改行を消してもよいのですが、Clean関数用の作業列を作るのは時間がかかるので

 

PowerQueryにもエクセルのclean関数があるのではと探しました。

みつけました。

 

 PowerQueryのクリーン機能を使う

使い方は簡単

変換タブ→書式→クリーン

PowerQueryクリーンで

PowerQueryクリーンで改行を消す

これでめでたく消えなかった改行が消えました

今回改行や空白を消したクリーン機能は

こちら

Text.clean関数

印刷不可能な文字をすべて削除したテキスト値を返します。

とのこと。エクセルのClean関数と同じですね。

詳しい説明はこちら↓

https://docs.microsoft.com/ja-jp/powerquery-m/text-clean

 

 今回のシステム移行は改行の削除だったのですが、あえて改行を残すこともあるので

移行後のシステムは改行が必要かどうか確認してつくることが必要です。