Excel Python プログラム

Pythonを使用してExcelのデータを昇順・降順する方法

2020/07/11

Pythonを使用してExcelのデータの昇順・降順を行う方法について紹介。

Excel内のデータが多くなるとソートに時間がかかったりする。
また、複数のExcelファイルをソートするとなるとさらに時間がかかるため、Pythonで自動化してしまえば、その時間は優雅にティータイムにでもあてておきたい。

pythonでExcelのデータを昇順・降順

今回は日本の祝日(syukujitsu.xlsx)のデータを使用。

詳しいことは後程説明していきますが、下のコードで実施した場合、ExcelのデータをB列の昇順・A列の降順の順にソートされて保存されます。

結果は、このようにA列の降順で表示されています。

もう少し詳しく説明していきます。

Excelファイル操作のための準備

まず、Excelのファイルを操作できるように準備していきます。

  1. Excelの準備&ファイルを開く
  2. Excelのファイルを保存
  3. Excelを閉じる

これは、pythonでExcelを操作する際にほとんど使うような機能になります。これにプラスして操作をすることになります。

エクセルのファイルを開いたり、保存する方法については下記リンクを参考にしてください。

Pythonを使用してExcelのファイルを開いたり保存する方法

Sort数値割り振り

プログラム内にありますが、xlAscending(昇順)xlDescendig(降順)xlYes(ヘッダー有)などの数値について説明していきます。
これはVBAでも使用される数値になります。

pythonの場合は、変数でxlAscending(昇順)などを使うのですが、これは数値で割り振られています。
下記リンクを確認してもらうと詳細にSortしたいときに使用する数値について記載があります。

データの並べ替え(Sort):Excel VBA入門

こちらは変数を定義しておかないとpythonでエラーが発生してしまうため、必ず定義しておきましょう。

昇順・降順

最後に昇順・降順について話していきます。

まず、ソートしたいデータ範囲の指定。
現在syukujitsuファイルの1番目のsheetの2列(A:B)を指定している。

2列以上ある場合はその範囲を指定。(例:"A:Z")

B列を指定してヘッダー有の昇順でソートを行う。
この際に注意していただきたいのが、先頭行(ヘッダー)にタイトルがあるときは、必ず次の行(下記の場合は'B2')を指定すること。でないとタイトル行もソートされてしまいます。

複数のファイルのソート方法

同じようなファイルでソートの操作が同じ場合は、下記のプログラムを作成して使用するだけで複数のファイルをソートして保存することができる。

上記の方法で、複数の同じようなファイル更新ができます。

まとめ

pythonでExcelの操作を紹介していますが、割とVBAと似ている部分があるなと感じます。特に今回のSortはほとんどVBAでの構文と変わりません。
正直な話、pythonは環境構築にそこそこハードルがあるため、VBAから勉強したほうが割と覚えられるのではないかとか考えています。

VBAの場合は、ある程度参考サイトや参考本も多いためプログラミング入門するのであれば個人的にはVBA(マクロ)から始めるのが割と環境構築とか気にしなくていいから楽だったりする。
まあ、Pythonだといろんなことができるため勉強という意味ではExcelの操作は取っ付きやすいという利点もあったりする。

-Excel, Python, プログラム