数式とグラフ
数式とグラフを追加します
「数式とグラフ」はCoddyKit上の無料Python Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPython Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Python Academyコースには全4レッスンが含まれています。
静的な値の先へ
実際のスプレッドシートでは計算を行います。openpyxl では、データの変更時に再計算される Excel の数式を書き込んだり、ワークブック内で数値を直接可視化するグラフを追加したりできます。
これにより、生成したレポートを Excel ユーザーにとって自然なものにできます。
数式を書き込む
数式は、= で始まる単なる文字列です。値と同じように代入できます。たとえば ws['B10'] = '=SUM(B2:B9)' のように記述します。Excel はファイルを開いたときに数式を評価します。
openpyxl は数式のテキストを保存しますが、結果自体は計算しません。
first_row, last_row = 2, 9
formula = '=SUM(B' + str(first_row) + ':B' + str(last_row) + ')'
print('Cell B10 ->', formula)よく使う関数
日常的に使う Excel 関数は、すべて文字列として使用できます。
=SUM(range)合計=AVERAGE(range)平均=MAX(range)/=MIN(range)最大値 / 最小値=COUNT(range)数値の個数
Excel で入力するときとまったく同じように組み立てます。
Python では数式は評価されない
重要な点として、数式を書き込んだ後、Excel で開かずに openpyxl で読み戻すと、数値ではなく数式のテキストが返されます。計算結果を読み取るには、まず Excel でファイルを開き、その後 data_only=True を指定して読み込みます。
セル参照を組み立てる
数式を生成するには、プログラムで参照を組み立てることがよくあります。列の文字と行番号を組み合わせると、アドレスを作成できます。これは単純な文字列処理です。
col = 'C'
def cell_ref(c, r):
return c + str(r)
total_formula = '=AVERAGE(' + cell_ref(col, 2) + ':' + cell_ref(col, 11) + ')'
print(total_formula)グラフを追加する
openpyxl ではグラフを埋め込めます。BarChart() などのグラフオブジェクトを作成し、セル範囲への Reference を使ってデータを指定し、ws.add_chart(chart, 'E2') でシートに追加します。
グラフの種類には、棒グラフ、折れ線グラフ、円グラフ、散布図などがあります。
データへの参照
Reference(ws, min_col=2, min_row=1, max_row=6) は、グラフが読み取るセルを選択します。カテゴリ(ラベル)は別の参照から取得します。これらの範囲を正しく指定することが重要です。
data_rows = 6
ref = {'min_col': 2, 'min_row': 1, 'max_row': data_rows}
print('Chart reads column', ref['min_col'], 'rows', ref['min_row'], 'to', ref['max_row'])グラフのタイトルと軸
chart.title = 'Monthly Sales' でタイトルを設定し、chart.x_axis.title と chart.y_axis.title で軸にラベルを付けます。レポート内のラベル付きグラフには、別途説明を加える必要がありません。
グラフの種類を選ぶ
どの可視化にも当てはまる基本的な考え方があります。カテゴリの比較には棒グラフ、傾向には折れ線グラフ、全体に占める割合には円グラフを使います。レポートで答えたい問いに合う種類を選びましょう。
question = 'how did revenue change month over month'
if 'change' in question or 'trend' in question:
print('Use a LineChart')
else:
print('Use a BarChart')すべてを組み合わせる
一般的なレポートでは、データ表を書き込み、最後に合計の数式を追加してから、同じデータを参照するグラフを配置します。開くと、Excel に Python から生成されたリアルタイムの合計値とグラフが表示されます。
条件付き数式
Excel の論理関数も文字列として使用できます。=IF(B2>100, 'High', 'Low') や =SUMIF(A2:A9, 'North', B2:B9) のように記述します。これらを使うと、Python で追加の処理を行わなくても、生成したレポートで分類や集計ができます。
他の数式と同じ文字列連結を使って組み立てます。
クイックチェック
数式とグラフに関する知識を確認しましょう。
まとめ
これでロジックと可視化を追加できるようになりました。
- 数式は
=で始まる文字列として書き込み、openpyxl は保存するだけで評価はしない - Excel で結果を計算した後に
data_only=Trueを使う - 列の文字と行番号からプログラムで参照を組み立てる
BarChart()/LineChart()、Reference、ws.add_chartを使ってグラフを埋め込む
よくある質問
「数式とグラフ」レッスンは無料ですか?
はい。「数式とグラフ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Python Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Python Academyコースには全4レッスンが含まれています。
「数式とグラフ」で何を学びますか?
数式とグラフを追加します ブラウザで直接実行するハンズオンコードでPython Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Python Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのPython Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「数式とグラフ」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このPython Academyレッスンでコードを書いて実行できますか?
はい。すべてのPython Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。