おはようございます。
昨日はタイピングソフトを作って遊んでいました。

「効果音ラボ」さんでフリーの効果音をダウンロードし、以前書いた情報処理安全確保支援士の用語リストをCSVとしてダウンロードして、正解するたびに効果音が鳴るようにしてみました。
ちょっと楽しいです笑
さて、今日はちょっとしたフィルター機能の使い方などを紹介します。
フィルターで同じテキストを昇順(降順)で並べる

こんな感じの表があったとします。
これの表を使って、

同じものを複製したものを下に配置したい場合、どうすればいい感じにできるのでしょうか?

行を追加して、一つずつ書いていくやり方をする方もいるかもしれませんが、量が多くなった時に少し大変です。
そんな時に使えるのがフィルター機能です。
これを

表をコピペして縦に並べて、

適当にタイトル行を入れて、

フィルター機能を使って、

「昇順で並べ替え」機能を使います。

すると、昇順(降順)になって

きちんとできていますね!
あとは、フィルターをオフにして、タイトル行を消して、どこかに貼り付けるなりなんなりできます。
PDFをスプレッドシートにするときに便利な関数の組み合わせ
Excelファイル等がなくて、PDFからスプレッドシートに転記したい時はありませんか?
僕はそんなときにPythonのTabulaとPandasを使います。
これらを使って、CSVにしたとします。
すると、主にセル結合がされているPDFでは、CSVの形が崩れていることが多いかと思います。
一旦これをスプレッドシートに転記してしまいましょう。
以下のようにレイアウトが崩れているとします。

最近、こういったCSVを一列にしたいときがありました。
そんなときに使えそうな関数の組み合わせの紹介です。

テキストに起こすと、
=TRANSPOSE(SPLIT(TEXTJOIN(“,” , TRUE, [崩れてしまった場所のセル範囲], “,”))
です。
TEXTJOIN()でセル範囲を”,”で結合し、それをSPLIT()で異なるセルに分割し、それをTRANSPOSEで転置(行と列を入れ替えること)をしています。
一気にできそうなのが魅了ですね。
同じセルに入った配列っぽいものの要素を数える
日付などを格納したセルでこんな値がセルに入っているとします。

別のセルならCOUNTA()などで数えられますが、同じセルに入っているので工夫する必要がありそうです。
これはこうしてみました。

テキストに起こすと、
=IF(B2<>””,COUNTA(SPLIT(B2, “,”)), “”)
です。
=COUNTA(SPLIT(B2, “,”))
だけだと、空白なセルも1としてしまうので、それを省くための処理をIF()関数で加えています。
SPLIT()で分割して、それをCOUNTA()で数えているだけです。
“,”だけではなく、”-“や”_”などいろいろなところで使えそうですね。
終わりに
いかがでしたでしょうか?
スプレッドシートが使えると、作業の幅が広がりますね。
工夫次第で、組み込みの関数でもいろいろとできてしまうのも良いポイントです。
今回は、フィルター機能等について解説しました。
コメント