仕事柄、データをCSV形式で眺めることが多いのだが、その際に使用する小技をまとめてみた。(といっても大したものではないが)
LibreOffice Calcが対象だが、Microsoft Excelに応用できるものもあると思われる。
フィルターを適用する
適当なセルを選択して、Data -> AutoFilter

これでフィルターが適用される。



フィルターを解除したい場合は、フィルターが適用されているカラムのドロップダウンよりClear Filterを選択。

複数のカラムのフィルターを一括で解除したい場合は、Data -> More Filters -> Reset Filter

行を固定する
CSVデータは大抵の場合、1行目はヘッダーとなっている。データが大量にある場合、縦スクロールしていくうちにヘッダーが見えなくなり、「これ何の値だっけ?」となって1行目まで戻ってヘッダーを確認する。。。なんていう手間をかけたくないので、自分は必ずヘッダーの行を固定するようにしている。
一番左隅にあるヘッダーの真下のセルを選択して、View -> Freeze Rows and Columns でヘッダーを固定できる。




列を固定する
自分が分析するCSVは一番左の列がタイムスタンプになっていることが多い。データを横スクロールしつつもタイムスタンプは常に把握したいので、自分は必ず一番左の列を固定する。
セルを選択し、View -> Freeze Cells -> Freeze First Columnで列を固定できる。



サンプルデータより、source IPカラムまでを固定したいとする。この場合、ひとつ隣のdestination IPカラムの一つ目のセルを選択して、View -> Freeze Rows and Columns



source IPカラムまでが固定された。

カラムから重複データを除いて一意のデータのみを抽出する
対象のカラムを選択し、Ctrl+Shift+↓でデータを選択。

Data -> More Filters -> Standard FilterよりStandard Filterウィンドウが立ち上がる。


ウィンドウ下部のOptionsをクリック。

ValueフィールドよりNot Emptyを選択。

Copy results to: とNo duplicationsにチェックを入れる。

Shrinkアイコンをクリック。

データのコピー先のセルを選択。別シートのセルも選択可能。

セルを選択したら、Expandアイコンをクリック。

OKボタンをクリック。

重複分を除いたデータがコピーされた。

データをソートする
対象のカラムのドロップダウンより、Sort Ascending (昇順)もしくは Sort Descending (降順)を選択。

以下はタイムスタンプを降順にソートしたもの。

カラムの幅を変更する
カラムの幅を変更したい場合は、カラムの境界部分をドラッグすれば良い。
しかし、以下の例のようにセルの中に大量のデータが含まれていた場合、その境界部分を見つけられないことがある。

このような場合は、幅を変更したいカラムを列ごと選択し、右クリック -> Column Width

ウィンドウより、任意の値を入力する。以下の例では幅を22.83から11.83に変更している。


OKボタンをクリックして、幅が変更された。

行を色分けしてデータを分析する
自分はCSV形式のログを解析する際、気になったログには色をつけるようにしている。色分けの基準は以下の通り。
- 赤:要注意
- 黄:何か怪しい
- 緑:正常・良性
以下はサンプルデータを色分けしたもの。

ぱっと見で、どのログが怪しいかが判別できる。もちろん色ごとにフィルターすることも可能。
カラムのドロップダウンよりFilter by Colorでフィルターしたい色を選択。


ただし、この方法だと一つの色しかフィルターできない。
複数の色をフィルターしたい場合は、Data -> More Filters -> Standard FilterよりStandard Filterウィンドウから、ConditionフィールドよりBackground colorを選択し、Valueフィールドより色その1を選択。
続いてOperatorフィールドよりORを選択。ConditionフィールドよりBackground colorを選択し、Valueフィールドより色その2を選択。

OKボタンをクリックすると、フィルターが適用される。
