旧システムのCSVファイルを
新システム用CSVファイル用にPowerQueryで整形したときの話。
改行を消すには
結論:PowerQueryのクリーン機能を使う
PowerQueryのクリーン機能に行きつくまでのお話。
最初はPowerQueryではなく、エクセルの置換と検索で改行を削除するつもりでした。
①エクセル [検索と置換] ダイアログ ボックスの [置換] タブを表示して
②[検索する文字列] ボックスをクリックして、[Ctrl] キーを押しながら [J] キーを押す
③「すべて置換」ボタンを押す
ネットでよくでてくる方法定番の方法で改行コードを消せばいいしと安心してたら・・・
消えない
消えている改行もあるのですが、消えてない改行もあります。
どうやら改行コードが混在しているようです。
PowerQueryの「検索と置換」で改行を消してみる
エクセルシートの検索と置換では消えなかったので
PowerQueryを使って消してみます。
変換タブ→値の置換 → 詳細オプション→特殊文字を仕様した置換
→特殊文字を挿入→改行
検索する値の箇所に#(lf)と自動で入力されます。
で置換後の箇所は空白にして「OK」ボタンをおします。
改行消えてるかなとワクワクしていたのですが、消えない
改行で消えないならじゃ次は
変換タブ→値の置換 → 詳細オプション→特殊文字を仕様した置換
→特殊文字を挿入→復帰改行を選択してみます。
改行が消えてない ・・・
エクセルのClean関数を使ってみる
PowerQueryからエクセルシートにもどり
clean関数を使ってみたところ改行が消えました。
このままClean関数で改行を消してもよいのですが、Clean関数用の作業列を作るのは時間がかかるので
PowerQueryにもエクセルのclean関数があるのではと探しました。
みつけました。
PowerQueryのクリーン機能を使う
使い方は簡単
変換タブ→書式→クリーン
これでめでたく消えなかった改行が消えました
今回改行や空白を消したクリーン機能は
こちら
Text.clean関数
印刷不可能な文字をすべて削除したテキスト値を返します。
とのこと。エクセルのClean関数と同じですね。
詳しい説明はこちら↓
https://docs.microsoft.com/ja-jp/powerquery-m/text-clean
今回のシステム移行は改行の削除だったのですが、あえて改行を残すこともあるので
移行後のシステムは改行が必要かどうか確認してつくることが必要です。