名簿や製品のリスト表で、ある行にだけ「※」や「∗」などの特定の文字でマークを付けておくことがあります。以下の社員名簿では有資格者に「∗」でマークを付けています。今回はこのマークを付けた行だけを別シートに転記する処理をPythonでプログラミングする方法をご紹介します。そのシートを別ファイルに保存する方法も説明します。実行を確認しています。プログラミングの手順まず以下のように手順を考えておきます。ポイントは2つめです。転記する行は先に選別してリストに入れておきます。すれば、後はそのリストを別シートに書き込むだけになります。いう外部ライブラリがよく利用されます。OpenPyXLはpipというツールで簡単にインストールできます。今回の処理はこのOpenPyXLを用いて以下のようにプログラミングできます。company_members_cert.zipプログラムを実行すると以下のように「有資格者」というシートが新規に追加され、そこにマーク「∗」が付いた行だけが転記されます。ここでポイントになるのは、OpenPyXLライブラリの使い方に関する以下の2点です。ポイント1:エクセルのシートを1行ずつ読み込む方法データが入力されている「社員名簿」シートを変数wsに代入しました。そこから、1行ずつ読み込むにはiter_rows()メソッドを用います。今回は1行目がヘッダーになっているので、min_row=2をカッコ内に指定して2行目から読み込んでいます。ポイント2:エクセルのシートに1行ずつ書き込む方法シートに行のデータを1行ずつ書き込むには、append()メソッドを用います。1行分のデータをリストやタプルで追加できます。"c2")wst.append(r1)wst.append(r2)上のようにシートに行データのr1,r2を追加すると以下のように書き込まれます。master_row]のようにリスト内包表記という方法で1行分のデータをリストにして、シートに追加しています。master_row])リスト内包表記に慣れない場合は、以下のようにコーディングしても構いません。実務のプログラミングでは冗長さを気にする必要はありません。転記したシートだけを別ファイルに保存したい場合は、以下のように元データのシートを削除し、読み込んだファイルと違う名前で保存します。違うファイル名で保存wb.save("company_members_cert_sheet.xlsx")ここで、シートを削除するには、ワークブックの変数wbからremove()メソッドを呼び出します。カッコ内に「社員名簿」シートを示す変数wsを指定すればワークブックから削除されます。プログラムを実行すると以下のように転記したシートだけのワークブックが保存されます。このようにすれば、元データのワークブックはそのままの状態に保てます。最後にエクセルのデータを転記するには、元のセルから読み取った値を転記先のセルに書き込みます。ここで、「元のセルから値を読み取るタイミング」はプログラムで異なります。以前ご紹介した以下のページでは、社員IDが一致するデータを転記しました。そこでは、まず元のデータを最初にすべて読み込み、書き込む時にデータをフィルタリングしました。この方法なら、必要な項目だけ選びながらデータを書き込むことも簡単にできます。エクセルのVLOOKUP関数をPythonで行う方法VLOOKUPはビジネスで頻繁に使うエクセルの関数の一つです。この関数を使えば、他の表から行データを検索して転記できます。以下のような社員名簿から社内資格保有者のデータを別シートに転記...Gammasoft.jp2019-11-25一方、今回の場合は、最初にマークがある行だけをフィルタリングして行ごとリストに入れています。そのためコードは短くシンプルになっていますが、書き込む項目を選びたい場合は処理を加える必要があります。プログラミングしたい処理に応じて、ぜひどちらもエクセルファイルをPythonで転記する時の参考にしてください。UnlimitedでPythonを学習する3つのコツ仕事自動化におすすめの本Pythonの初歩からステップを踏みながら仕事自動化のプログラミングを学べます。弊社の中嶋が執筆しました。手書きのためのコード用ノート手書きでコーティングするためのノートをアマゾンで販売しています。ガンマソフト株式会社ガンマソフトについてお問い合わせ利用規約プライバシーポリシ。