この記事では、仕事で使えるPythonの業務効率化・自動化の事例を紹介します。
「Pythonを使って出来ること」は普段の仕事を効率化するだけでなく、機械学習やウェブ制作まで多岐にわたります。
実際、Pythonで出来ることを分類すると少なくとも以下の5つに分けることができます。
1. データ分析
2. 実務の自動化
3. ウェブスクレイピング
4. 機械学習
5. ウェブアプリ
しかしPythonについて詳しく知らないプログラミング初心者にとっては、Pythonで出来ることをイメージするのが難しいです。
そこで、Pythonで出来ることについて事例を使いながら解説をしていきます。
・Pythonプログラムは各記事のリンク先で公開
・Pythonの学習方法について紹介
目次
「Pythonで何ができる?」仕事での活用事例で紹介
・入門:8例
・基礎:9例
・応用:6例
・その他:6例
2. Python×PDF(7例)
3. Python×Python×Windows・Microsoft Officeアプリ(6例)
4. Python×Googleアプリ(1例)
5. Python×Python×ウェブスクレイピング・外部アプリ(5例)
機械学習とウェブアプリについては触れていますが、プログラムソースは紹介していません。
以下でPythonで出来ることについて紹介していきます。
上記はいくつか重複があるため、本記事では全部で約40例を載せています。
以下を読んでいただくと、各リンクから詳細ページでプログラムソースと解説をご覧いただけます。
興味があるリンクを参考にしていただければ幸いです。
Python×Excel
Pythonを使うと、Excel仕事を効率化することが可能です。
効率化できる操作は多岐にわたりますが、分かりやすいところで言えば以下のような作業を自動化できるのです。
・読み込み
・データ処理
・書き込み
・グラフ化
・PythonでExcelマクロ実行(VBA)
・Excelの印刷設定
しかし上記のような作業ができると言われても、具体的にどのようにPythonを仕事に応用すればいいのか迷ってしまうことは少なくありません。
PythonとExcelを仕事で活用していく方法を事例で紹介していきます。
なおPython×Excelについては、以下の記事で詳細をお伝えしていますので、Python×Excelについて深く理解したい人は以下をご覧ください。
それでは、Pythonを使ってExcelを操作する事例を紹介していきます。
入門
1. Pythonでエクセルsum関数を作ってみる
・エクセルSUM関数をOpenpyxlで作成(最終行まで自動計算)
2. Pythonでエクセルif関数を作ってみる
・エクセルIF関数をopenpyxlで作成(条件に一致で文字を赤くする)
3. Pythonでエクセルcountif関数を作ってみる
・エクセルCOUNTIF関数をopenpyxlで作成(条件に一致する件数をカウント)
4. Pythonでエクセルcountifs関数を作ってみる
・エクセルCOUNTIFS関数をopenpyxlで作成(2条件に一致する件数をカウント)
5. Pythonでエクセルsumif関数を作ってみる
・エクセルSUMIFS関数をopenpyxlで作成(条件に一致する値を合計)
6. Pythonでエクセルsumifs関数を作ってみる
・Python×Excel|2条件で合計算出(SUMIFs関数をopenpyxlで作る)
7. Pythonでエクセルvookup関数を作ってみる
・vlookup関数でマスタデータ取得をopenpyxlで作成
8. Pythonで部分一致する文字列(セル)の数をカウントする
・特定の文字列を含むセルをカウント
なお上記の内容は、以下の記事でまとめていますので、以下をご覧いただいても良いです。
基礎
1. Excelのデータ集計
・Pythonでエクセルのデータ集計分析!Excel読み込み書き込みはOpenpyxlで
2. PythonでExcelデータを別シートへ転記
・PythonでExcelデータを転記して新しいファイルに保存|単純作業を自動化
3. PythonでExcelデータを転記して新しいファイルに保存
・PythonでExcelデータ転記|シートコピー→情報を貼付する作業を自動化
4. PythonでExcelのシートを複数削除
・PythonでExcelのシートを複数削除|ただし必要なsheetは消さない
5. Excelのセルの色を変更する
・PythonでExcelのセルに色付け|cellの色を取得して変更(IF文で条件分岐)
6. Pythonで複数フォルダを自動作成
・Pythonで複数フォルダを自動作成|同じフォルダの存在を確認してメッセージ表示
7. Pythonでフォルダ内のファイル名を取得
・Pythonでフォルダ内のファイル名を全て取得しエクセルへ出力
8. フォルダ内のExcelを一つに結合する
・Pythonでフォルダ内の複数エクセルファイルを結合!データを読み込み一つに集約
9. Excelのデータを月別かつ製品別にグラフを自動作成
・Pythonでエクセルを読み込みPandasで解析してグラフ作成を自動化
応用
1. Excel×Outlookでリストへ個別メールを連続送信
・PythonでExcel顧客ごとにメール送信|Outlookと連携して連続通知する
2. ウェブスクレイピングしてExcelへ書き出す
・Pythonでウェブスクレイピング!ヤフオクデータをExcelに出力してみた
3. Excelの顧客データからWordの差し込み印刷(PDF化)する
・Python×Excel×Word|差し込み印刷(文字列置換してPDF化)プログラムを解説
4. Excelのデータから請求書(PDF)を自動作成する
・PythonでExcelデータから請求書PDFへ自動出力・変換|ルーティン作業の自動化事例
5. CSVを処理してChatworkへデータを通知
・PythonのPandasでCSV分析|日付やAnd/Or複数条件で処理する方法
6. Python×Excel×Slack|週ごと集計結果をメッセージ自動通知
・Python×Excel×Slack|週ごと集計結果をメッセージ自動通知(エクセルファイル添付)
その他に知っておくとトクする処理をその他として紹介します。
その他
1. Excelのデータ処理(Pandasを使って処理)
・Python×Excel|Pandasデータ処理の事例25!時系列(月週)から特定条件での分析まで
2. PythonでPDFテキストを読み込みExcel変換して一覧化
・PythonでPDFテキストを読み込みExcel変換して一覧化する
3. PythonでRPA風にパソコンを操作
・PythonでExcelデータをRPA的に社内システムへ自動入力する
4. PythonでVBAを実行
・PythonでExcelマクロVBAを呼び出す
5. ExcelからPythonを呼び出す
・ExcelにPython搭載!マクロVBAからプログラムを実行する方法
6. Excelに設置したボタンでPythonを呼び出す
・エクセルのボタンを押してPythonコードを呼び出す方法
PythonとVBAならどっちを学ぶべき?
PythonとVBAでどちらを学んだら良いか悩んでいる人は以下の記事をご覧ください。
Python×PDF
1. PythonでPDFに変換|Excel, WordからPDF化(生成)
・Python×Excel×Word|差し込み印刷(文字列置換してPDF化)プログラムを解説
・PythonでExcelデータから請求書PDFへ自動出力・変換|ルーティン作業の自動化事例
上記はPython×Excelの事例でも提示しましたが、PDFの事例でもあるため、紹介しておきます。
2. PythonでPDFのテキストを読み込む(日本語で)
・PythonでPDFテキストを読み込みExcel変換して一覧化する
上記はPython×Excelの事例でも提示しましたが、PDFの事例でもあるため、紹介しておきます。
3. PythonでPDFを読み込み画像抽出
・PythonでPDF内の画像を全て取得してフォルダ保存(png,jpegとして)
4. PDFにパスワードを自動設定
・Python|フォルダ内の全てのPDFにパスワードを自動設定|Passwordは自動生成
5. PDFに透かしを入れる
・Pythonでフォルダ内のPDF全ページに透かし(会社ロゴなど)を入れる
6. PDFをページで分割する
・Pythonでフォルダ内のPDFをページ毎に分割して保存(PyPDF2)
7. フォルダ内のPDFを順番通りに結合する
・PythonでPDFを複数まとめて自動結合!日本語ファイルを1つに集約
8. PDFをメール送信する
・PythonでExcel顧客ごとにメール送信|Outlookと連携して連続通知する
上記はPython×Excelの事例でも提示しましたが、PDFに置き換えることで、メール送信可能です。
ぜひスクリプトを応用して、試してみてください。
Python×PDFのまとめ記事
PythonでPDFを操作する方法は、以下の記事でまとめています。
PDF生成や変換からテキスト抽出までPythonを通じて実行してみたい人は以下の記事をご覧ください。
Python×Windows・Microsoft Officeアプリ
Window PCの操作やExcelを除いたMicrosoft OfficeアプリをPythonで操作するプログラムを紹介します。
1. 階層別にフォルダを作成
・Pythonで指定フォルダ内にフォルダを階層ごとに作成(テキストデータから)
2. 階層別にフォルダを読み込んでテキストへ出力
・Pythonで指定フォルダ内の全フォルダ・全ファイルをテキスト出力(階層ごと)
3. Windowsの計算機を自動で起動
・Python×Windows|PC電卓の計算をpyautoguiで自動処理
4. Wordファイルを自動翻訳する
・Python|フォルダ内のワード(Word)を日本語から英語に機械翻訳するツール
5. Outlookでメールを送信する
・PythonでOutlook(アウトルック)のメール送信(ファイル添付)する方法|win32com
6.Outlookで受信メールを一覧化(添付ファイルも保管)
・PythonでOutlookメール取得しエクセルに一覧し添付ファイルを自動保管|win32comで制御
Python×Googleアプリ
1. GoogleSpreadSheetでデータ集計
・PythonでGoogleスプレッドシートのデータ集計・分析をする方法|プログラムソースを解説
私のようにGoogleスプレッドシートを使うことが多いにも関わらず、VBAをメインで使っている人には上記のプログラムは参考になるかもしれmさえん。
さてPythonでGoogleスプレッドシートを操作するのは魅力的ですが、メンドウな点もあります。
それは、PythonでGoogleスプレッドシートを操作するためには、事前準備に2,3分かかることです。
もう少し具体的に言うと、APIキー取得などの準備が意外とメンドウなのです。
そう考えるとPythonでGoogleアプリを動かすメリットについて立ち止まって考えた方が良いかもしれません。
PythonよりGASのほうが便利かもしれない
PythonでGoogleアプリを操作する方法を紹介していますが、実際の業務ではGAS(Google Apps Script)を活用したほうが便利な場面があります。
たとえば私が実際にGASを活用して効率化してきた作業は以下の動画で解説しています。
動画を見てみると、あなたの仕事にどのようにGASを応用すればいいのかイメージが浮かぶこともあると思います。
さて上記の動画などを通じて、GASを使って何ができるのかを理解しておくことと実務の効率化に役立ちます。
なぜならGASの使い所を知っておくと、あなたの業務の何をGASで自動化できるかイメージを掴めるからです。
実際、仕事でどう活用するかをイメージしないまま学んでも、効果的な学習はできません。
以下の記事では、GASで出来ることだけではなく、プログラムソースも紹介しています。
興味がある人は以下の記事もご覧ください。
ぜひご覧ください。
GASの使い方・始め方を知らない人にはこちらの記事・動画がオススメ
PythonだけではなくGASも便利かもしれないと感じたのであれば、ぜひ以下の記事をご覧ください。
10分程度でGoogle Apps Scriptを使うためのスタート地点に立てるように解説をしています。
Python×ウェブスクレイピング・外部アプリ
1. Googleで検索キーワード上位10記事のH1,H2,H3タグをエクセルに出力
・Python|Google検索トップ10の結果(H1,H2,H3タグ)を取得しエクセルに出力するツール
2. サイトからCSVをダウンロード
・Python|ウェブサイトからCSVファイルをダウンロードしてフォルダ保管する
3. ヤフオクのデータをエクセルへ出力
・Pythonでウェブスクレイピング!ヤフオクデータをExcelに出力してみた
上記はPython×Excelの事例でも提示しましたが、PDFの事例でもあるため、紹介しておきます。
4. フォルダ内のCSVファイルを解析してChatworkへ出力
・PythonのPandasでCSV分析|日付やAnd/Or複数条件で処理する方法
上記はPython×Excelの事例でも提示しましたが、PDFの事例でもあるため、紹介しておきます。
5. Python×Excel×Slack|週ごと集計結果をメッセージ自動通知
・Python×Excel×Slack|週ごと集計結果をメッセージ自動通知(エクセルファイル添付)
上記はPython×Excelの事例でも提示しましたが、PDFの事例でもあるため、紹介しておきます。
Python×機械学習
Pythonを使うことで、機械学習を行うことができます。
機械学習は既に身の回りでも使われています。
1. 過去のデータから未来予測:株価予測
2. 特徴的な情報を取得:顔認証
3. レコメンデーション:ウェブ広告での商品レコメンド機能
4. 強化学習:最適な行動を学習させる:
ただ残念ながら、私は機械学習のツールは得意分野ではないため、機械学習の事例を紹介した書籍を紹介しておきます。
上記の書籍は練習問題が多いので、勉強するには良い本です。
Python×ウェブアプリ(Djangoなど)
Pythonを使うことで、ウェブアプリを作成することもできます。
たとえば、以下はPyQというPythonのオンライン学習教材のサイトです。このサイトはPythonを使ってウェブサイトが作成されています。
このようにPythonを使えば、ウェブサイトを構築することもできるのです。
しかし残念ながら、私はウェブアプリ作成が専門分野ではありません。
そこで、Pythonでウェブサービスを作成している知り合いから評判の良い書籍を紹介します。
Pythonでウェブアプリ作成に興味がある人はぜひ読んでみてください。
Python×私の学習体験談
この記事では、私が自作してきたPythonプログラムを含めいくつかの事例について紹介してきました。
私がPythonでプログラムを書くようになって感じるのは、出来ることの幅が広がったことです。
私の場合、Pythonプログラムを書く以前はVBA(Visual Basic for Applications)やGAS(Google Apps Script)を学んでいました。
しかし、VBAはできることに制限がありました。たとえばウェブスクレイピングはあまり相性がよいとは言えず、思うようなプログラムを書けないこともあったのです。
また、GASは5分を超える処理は強制終了してしまいます。
しかし、Pythonはウェブスクレイピングがやりやすいこと、5分を超える処理も当然対応可能です。
そういう意味で、Pythonが出来るようになって出来ることの幅が広がったように感じます。
Python習得は難しいのか?
これからPython学習を始めたいと考えている人にとって、Python習得の難易度は気になるはずです。
残念ながら、上記のとおり私はPython学習前にVBAやGASを学んできたこともあり、プログラミング初心者がPython習得するときの難易度は分かりません。
なぜなら、一つの言語でプログラムを作ってきた経験があると、他の言語を学ぶときの苦労は減るからです。
私の友人も「一つのプログラミング言語がある程度書けるようになると、他の言語習得の難易度が減る」と言っています。
実際、私もこれは正しいように感じます。
ただし、私もPython学習ゼロでプログラムを書けるようになったわけではありません。
たとえば私はPython学習を始めて数年たちますが、これまで学習教材に合計で数十万以上はつかってきました。
そのうち、1万はPyQと呼ばれるオンライン学習教材で、残りは書籍代です。
さらに言えば勉強しながらプログラムを書いているのが現実です。
私のPython学習体験談は上記の記事で紹介します。
Python×勉強方法
もしPythonを詳しく学習するなら、主に以下の4つの学習方法があります。
1. ウェブ情報で学習
2. 書籍で勉強
3. オンライン教材
4. プログラミングスクール
上記の学習方法はメリットとデメリットがあるため、杓子定規(しゃくしじょうぎ)で「○○を選ぶべき」とお伝えすることはできません。
それは2つの理由があるからです。
理由1. 学習者それぞれにプログラミングの向き不向きがあるから
理由2. 学習方法にはそれぞれメリットとデメリットがあるから
以下で一つずつ説明していきます。
理由1. 学習者それぞれにプログラミングの向き不向きがあるから
人によってプログラミングの向き不向きがあることです。
たとえば、論理的思考力が高い人や数学が得意な人は比較的のみこみが早いです。
そのような人はウェブ情報で学習すれば十分なこともあります。
つまり、学習者の特性によって効果的な学習方法は変わるのです。
理由2. 学習方法にはそれぞれメリットとデメリットがあるから
学習方法にはメリットとデメリットがあるため、そのメリットとデメリットを理解した上で自分にあった学習方法を試す必要があります。
各学習方法のメリットやデメリットを理解してもらうため、以下に表にしました。
NO | 学習方法 | メリット | デメリット |
---|---|---|---|
1 | ウェブ情報で学習 | 費用がかからない | 体系的な情報が少ない 初心者は何から学べばいいのか分からない |
2 | 書籍で勉強 | 費用が安い(1000~4000円/冊) | 1冊あたりの費用が安いため、気づけば大量に購入している 書籍が多すぎてどれから学べばいいか分からない |
3 | オンライン教材 | 動画で操作方法を詳しく勉強できる | 費用がかかる(数千~数万) |
4 | プログラミングスクール | ・マンツーマンで個別に質問できる ・転職までパッケージでサポートしてくれる場合がある |
・高額(数十万~) ・学習する内容は実は書籍と変わらない ・結局は学習者のやる気がなければプログラミングを習得できない |
Pythonの学習方法のなかでもPyQについて、詳しく記載した記事がありますので、興味がある人はそちらをご覧ください。
まとめ
ここまでPythonプログラムについて紹介してきました。
Pythonを使うことで、様々な仕事に活かすことができます。
ぜひPython学習を始めてほしいと思います。