EXCELの検索がクソ使いづらいのをなんとかする

今日は実用的な話をしようと思います。

 

エクセルの検索って本当に使いづらいですよね。なので CSV 形式にしてテキスト検索をしたいわけですが、ここで困るのが「セル内で改行している」データがあって、CSV にしたときに単純には1行にならないという事です。テキスト検索するには、エクセルの1行がテキストでも1行になっていないと意味がありません。

f:id:umeaji:20201002232857p:plain

こんなエクセルがあったとして、エクセルでひたすら検索するなんて気が狂いそうなので、とりあえず csv にして保存してみます。

f:id:umeaji:20201002232924p:plain

こんな風になります。セル内にある改行のせいで1行分のデータが1行になりません。

これでは検索するときに困るわけです。そこで Emacs 先生の出番です。

まず、M-x replace-string で「改行」(C-q C-j) を「(K)」等に置き換えます。

f:id:umeaji:20201002233453p:plain

次に、「^M(K)」*1を「改行」(C-q C-j)に置き換えます。

また、文字コードは C-x RET f で utf-8-unix にしておきましょう。文字コードシフトJIS だったり、改行が CRLF だったりすると unix コマンドがまともに動作しません。

f:id:umeaji:20201002234219p:plain

エクセルの 1 行分がテキストでも 1 行分になりました。あとは、awk 等を使ってテキスト処理や検索が簡単に出来ます。

これで正気を保てますね!

*1:^M は C-q C-m