【Python自動化】openpyxlで読み込んだデータを視覚化する方法

Python・GAS・DS
ワタシ

今回は社内でのエクセル業務の自動化について理解を深めます。

Pythonを使うと、Excel仕事を効率化・自動化することが可能です。

では具体的にどうやるのか?Pythonかじりはじめたばかりでもできるのか?実務で使えるのか?

この点を明らかにするべく、営業上がり・非エンジニアの私でも出来るレベルの効率化ワザをまとめます(‘◇’)ゞ

合わせて確認したい記事

Pythonを時短で基礎から応用まで一気に学びたい時はこちらもオススメ!
>>【Python】TechAcademyを実際に使ってみて学べたこと

今回の論点整理

今回のアウトプット

今回は表をグラフ化する箇所をプログラムします。

イメージは以下の通り。

グラフ化を施すことで視覚的に訴えられるので、資料の質がガラリと変わります。

今回もコードは簡単でライブラリも準備されているので一度用意してしまえば量産可能です。

尚、今回も参考にしているのは以下の書籍で、実践に活用しようと思います。ポイントを絞ってかなり詳しく記載しておりオススメです。

ツマ

参考書があると目的に対して勉強の流れが明確になるね。

今回の位置づけ

現業におけるデータ分析・エクセル業務を考えると、ザックリ以下の6ステップを踏んでいます。

そのため、今回もこの6ステップの流れを踏まえて、どこを効率化・自動化するかを絞って進めます。

そもそも現業の何の自動化をめざすのか?という点については下記に記載しています。

【Python自動化】openpyxlを使って 社内のExcel作業を自動化する

その上で、今回はデータは何らかの形で抽出されている前提で、そのデータをいじる工程であるSTEP4を対象にします。

上記を実現する手順について下記に備忘録的にまとめたいと思います。

今回のポイントは以下の3点になります。

抑えドコ!
  • グラフ化を行う
  • キャプションをいれる
  • グラフタブを創る

順に触れていきます。

Excel業務の自動化に向けたポイント

グラフ化を行う

まずは該当エクセルを開きフォントの変更からします。

下記のコードで、フォントが変更になったことが分かると思います。

#ライブラリ読み込み
import openpyxl
from openpyxl.chart import BarChart, Reference,Series

#データ読み込み
workBook = openpyxl.load_workbook("対象ファイル.xlsx") 
sheet = workBook.active#アクティブなワークシートを選択

#描画対象になるセル範囲を設定
values = Reference(sheet, min_col=2, min_row=1,max_col=4, max_row=32)

#使うグラフの種類を設定
chart = BarChart() 

#先頭行をグラフのラベル化
chart.add_data(values,titles_from_data=True) 

#セルH2に描画
sheet.add_chart(chart, "H2") 
workBook.save("グラフ化ファイル.xlsx") 

ちなみに、chart=BarChartと出ている部分を変えれば色々なグラフを作れます

下記のオフィシャルサイトを見るとどんなグラフ化できるかと設定方法が全て出ているので確認頂くのが良いと思います。

■ご参考リンク(外部リンクに飛びます)

これで、棒グラフの他、円グラフ、折れ線グラフ、エリアグラフ、バブルチャート、レーダーチャート等、各種グラフ化は可能です。

ワタシ

基本的にはこれで問題はない気がします。

キャプションをいれる

下記のようにキャプションをいれると資料としての体が整います

ちなみにこれは上記のコードの5つ目のブロックを下記に置き換えるだけで出来ます。

#先頭行をグラフのラベルにしてキャプション追加(5ブロック目)
chart.title = "支社別売上データ" 
chart.x_axis.title = '日付' 
chart.add_data(values,titles_from_data=True)

これでグラフタイトルが入り、資料としてそれっぽく共有が出来る体になりました。

ツマ

本当に一行追加するくらいだから簡単だね。

グラフタブを創る

そして最後にグラフ化のタブを作ります。

これも上記コードの、2ブロック目と5ブロック目を下記のように変更をするだけで簡単に出来てしまいます。

ちなみに、これはその後の工程でPDFやパワポやWordなどに張り付ける等するときに、この形で保存した方が管理・応用しやすいためです。

#アクティブなシートを選択し更にシート作成 (2ブロック目)
workBook = openpyxl.load_workbook("対象ファイル.xlsx") 
sheet = workBook.active 
chartSheet = workBook.create_chartsheet("グラフタブ")


#先頭行をグラフのラベルにしてデータを追加 (5ブロック目)
chart.add_data(values,titles_from_data=True)
chartSheet.add_chart(chart)

これで無事タブを置き換えてグラフ化することが出来ました。

ワタシ

一度やってしまえばあとは簡単に出来そうですね

まとめ 

上記を活用する際に、理解しておくべきポイントは以下3点でした。

今回の抑えドコ
  • グラフ化を行う
    ▷openpyxlのchart部分を指定してグラフを選ぶ
  • キャプションをいれる
    ▷chart.titleで指定する
  • グラフタブを創る
    ▷chartSheet.add_chartで別タブに追加する

これでグラフ化まで出来ました。前回の表組の整理も合わせて利用すればエクセルの基本は全て網羅できると思います。

そのため、定例的にエクセルで作成する進捗管理や共有資料などがある場合、これで自動化が可能になると思います。

少しずつ自動化できることを考えながら、それを実装する過程で学びながら能力開発を促していきたいものです。

ご精読頂きありがとうございました!
m(_ _)m

【参考】Python初心者のお勉強のお供

▼PythonでExcelの操作を自動化する▼

【関連】Python×効率化 社内のexcel作業の自動化を試みる①

【関連】Python×効率化 社内のexcel作業の自動化を試みる②

【関連】Python×効率化 社内のexcel作業の自動化を試みる③

【関連】Python×効率化 社内のexcel作業の自動化を試みる④

【関連】Python×効率化 社内のexcel作業の自動化を試みる⑤

上記の内容と併せて実務で活かすという視点では下記の参考図書も合わせて確認すると理解が深まります(-_-)

▼オススメの参考書籍(Kindle)▼

created by Rinker
¥2,138 (2024/04/18 21:36:41時点 Amazon調べ-詳細)

▼おすすめの動画学習(Udemy)

>>ゼロからPythonで学ぶ人工知能と機械学習 【2023年最新版】

>>現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用

>>独学で身につけるPython〜基礎編〜【業務効率化・自動化】

【参考】Python初心者が抑えたいポイント集

Python(主にデータ分析・自動化)に関しては

下記に実践したポイントをまとめています。基本的にコピペするだけでそのまま使えます٩( ᐛ )و

【Python入門】コピペしてそのまま使えるPythonの自動化プログラムまとめ

業務効率化・自動化においてはGoogle Apps Scriptもセットで学ぶことをオススメ!

こちらもコピペしてすぐに使えます!

【GAS入門】コピペしてそのまま使えるGoogle Apps Scriptプログラム一覧

PythonとGoogle Apps Scriptどちらを深めようかを迷っていればこちら!

【徹底比較】PythonとGASをどちらを学ぶべきか?実際に両方を学んで分かった違いとオススメ学習法