長いことExcelを使ってきて

multi planのあとLotus1-2-3、Excelと移り渡ってきて、Excelは特に長い間利用してきた。マクロも組むし、VBAも相当触ってきた。
初心者向けの講習も行ったり、学生にも教えたりしてきたし、自分の作業においてもかなりDeepな使い方もしてきたつもりだった。
それで、今回もcsvファイル(非常にデータ数が多い)の処理に、grepかsedかgawkなんて考えていたのだけれど、スクリプト書くのも面倒なのでExcelでサクッと処理することにした。
まあ、今のマシンは12GBのメモリを載せているし、まぁ問題なかろうと…。
オートフィルタでハマる
ログの整理が目的で、まあ1ヶ月分の処理を行おうと、まずはcsvファイルを読み込んだ。
ザーッと確認すると、一時ファイルの作成も記録しているので、WordやExcelでファイルサーバ上のファイル操作をすると、大量にログが発生する。
まあ、こいつらは不要とみなして利用統計を取ろうというのが今回の趣旨。
一時ファイルは、ファイル名の先頭に〜(チルダ)が付くので、「〜」を含まない行のみで集計しようとしたのだが…。一向にオートフィルタが上手くかからない。
無視されるというか…。
「〜」を含まない行を指定するのだけれども、外れない。
*や?はワイルドカードと表示されているが、はて「〜」は?
仕方なく、grep -vで抜こうかとも思ったのだけれど、作業ファイルなどが増えて、あとあと嫌なので、もう少し踏ん張ることに。
分かった!
結局、あちこち調べてヒントを掴んだ。
*と?はワイルドカードというのは知っている。では、これらの文字を含むデータを扱うには?という情報を見ていて、気づいた。
「*」自身を検索等するには「〜*」と入力する必要があるのだった。もちろん「?」の場合も同じく「〜?」だそうだ。
これは、昔使ったことがあるような、うっすらとした記憶が…。
つまり、「〜」はエスケープ文字として機能しているらしい。ということは「〜」自身を検索するには「〜〜」ということになる。
試してみると…ビンゴ!!!
期待通りの動作をしました。チルダを含まない行、含む行などもちゃんと選択できるのを確認。
しかし、独自のエスケープ文字を使えるようにして、その説明が全然見つからないとは、恐るべしMicrosoft!
きっと、ヘルプのどこかにひっそりと書かれているのかもしれないけれど、もう少し目立たせてくださいませ。
ということで、無事作業は完了したものの、これならスクリプト書いたほうが早かったのかもしれないと、少々後悔しつつも、教訓として記憶に深く刻みこむことにしたww
コメント
コメントを投稿
励みになりますので、簡単で良いので一言くださいませ。