PythonとxlwingsでExcel関数を自在に操る方法【SUM・VLOOKUP対応】

Excel

Pythonを使ってExcelを操作するための強力なライブラリ「xlwings」は、業務の自動化やデータ処理を効率化するために非常に便利です。特に、Excel関数をPython経由で自動的にシートに入力し、実行結果を取得する機能は、多くの場面で役立ちます。

本記事では、xlwings を使用してExcel関数をPythonから入力する方法について、具体的なコード例とともに詳しく説明します。

xlwingsのセットアップ

ゆーや
ゆーや

xlwingsのインストールや基本操作は以下の記事から見てみてください!

Excel関数の入力方法

xlwings を使ってExcel関数をセルに入力するには、通常のセル操作と同じ方法で関数をテキストとして入力します。例えば、Excelの SUM 関数をPythonから入力する場合、sheet.range().value に関数を文字列として渡すだけで、Excel側で自動的に実行されます。

SUM関数の入力

import xlwings as xw

# Excelアプリケーションを起動
app = xw.App(visible=False)

# ワークブックの作成
wb = app.books.add()

# ワークシートの取得
sheet = wb.sheets[0]

# セルA1からA3に数値を入力
sheet.range('A1').value = 10
sheet.range('A2').value = 20
sheet.range('A3').value = 30

# SUM関数をセルA4に入力
sheet.range('A4').value = '=SUM(A1:A3)'

# 保存
wb.save("sample.xlsx")

# クローズ
wb.close()
app.quit()
ゆーや
ゆーや

このコードは、A1からA3までのセルに数値を入力し、その合計を求めるために SUM 関数をセルA4に入力しています!xlwings では、Excel関数を文字列で入力するだけで、自動的にその関数が実行され、結果が反映されます!

VLOOKUP関数の入力例

次に、VLOOKUP 関数を使ってデータを検索する例を見てみましょう。まずは検索対象のデータを入力し、VLOOKUP関数で値を取得します。

import xlwings as xw

# Excelアプリケーションを起動
app = xw.App(visible=False)

# ワークブックの作成
wb = app.books.add()

# ワークシートの取得
sheet = wb.sheets[0]

# 検索対象のデータを入力
sheet.range('A1').value = 'ID'
sheet.range('B1').value = '名前'
sheet.range('A2').value = 1
sheet.range('B2').value = '山田太郎'
sheet.range('A3').value = 2
sheet.range('B3').value = '佐藤花子'

# VLOOKUP関数を使ってIDが1の名前を検索
sheet.range('C1').value = '結果'
sheet.range('C2').value = '=VLOOKUP(1, A2:B3, 2, FALSE)'

# 保存
wb.save("sample.xlsx")

# クローズ
wb.close()
app.quit()
ゆーや
ゆーや

この例では、A1からB3にデータを入力し、C2にVLOOKUP関数を入力してID 1に対応する名前「山田太郎」を取得しています!

数式の結果を取得する

Excelに関数を入力して実行すると、その結果がセルに表示されます。xlwings を使えば、その結果もPython側で取得できます。

SUM関数の結果を取得

import xlwings as xw

# Excelアプリケーションを起動
app = xw.App(visible=False)

# ワークブックの作成
wb = app.books.add()

# ワークシートの取得
sheet = wb.sheets[0]

# セルA1からA3に数値を入力
sheet.range('A1').value = 10
sheet.range('A2').value = 20
sheet.range('A3').value = 30

# SUM関数をセルA4に入力
sheet.range('A4').value = '=SUM(A1:A3)'

# SUM関数の結果を取得
sum_result = sheet.range('A4').value
print(sum_result)  # 結果: 60

# 保存
wb.save("sample.xlsx")

# クローズ
wb.close()
app.quit()
ゆーや
ゆーや

sheet.range(‘A4’).value は、数式ではなく、セルA4に入力されたSUM関数の計算結果を返します。これにより、PythonからExcelの数式の結果を取得し、他の処理に活用することが可能です。

VLOOKUP関数の結果を取得

import xlwings as xw

# Excelアプリケーションを起動
app = xw.App(visible=False)

# ワークブックの作成
wb = app.books.add()

# ワークシートの取得
sheet = wb.sheets[0]

# 検索対象のデータを入力
sheet.range('A1').value = 'ID'
sheet.range('B1').value = '名前'
sheet.range('A2').value = 1
sheet.range('B2').value = '山田太郎'
sheet.range('A3').value = 2
sheet.range('B3').value = '佐藤花子'

# VLOOKUP関数を使ってIDが1の名前を検索
sheet.range('C1').value = '結果'
sheet.range('C2').value = '=VLOOKUP(1, A2:B3, 2, FALSE)'

# VLOOKUP関数の結果を取得
vlookup_result = sheet.range('C2').value
print(vlookup_result)  # 結果: '山田太郎'

# 保存
wb.save("sample.xlsx")

# クローズ
wb.close()
app.quit()
ゆーや
ゆーや

VLOOKUPの検索結果がセルC2に表示されており、その値をPythonの変数 vlookup_result に格納して出力しています!

数式自体を取得する

import xlwings as xw

# Excelアプリケーションを起動
app = xw.App(visible=False)

# ワークブックの作成
wb = app.books.add()

# ワークシートの取得
sheet = wb.sheets[0]

# セルA1からA3に数値を入力
sheet.range('A1').value = 10
sheet.range('A2').value = 20
sheet.range('A3').value = 30

# SUM関数をセルA4に入力
sheet.range('A4').value = '=SUM(A1:A3)'

# SUM関数の結果を取得
sum = sheet.range('A4').formula
print(sum)  # 結果: 60

# 保存
wb.save("sample.xlsx")

# クローズ
wb.close()
app.quit()
ゆーや
ゆーや

.formulaを使うことで、数式を直接取得することも可能です!

Excel関数のまとめと応用

この記事では、xlwings を使ってExcel関数をPythonから入力する方法を紹介しました。以下が今回の記事のポイントです。

  • PythonからExcel関数を文字列で簡単に入力できる。
  • SUM や VLOOKUP などの一般的な関数を自動で処理可能。
  • 結果はPythonから取得し、他の処理に活用できる。
  • 動的に関数を生成して、複雑な処理にも対応可能。
ゆーや
ゆーや

この方法を使えば、Excel操作の自動化がさらに進み、業務効率を大幅に向上させることができるでしょう!

コメント

タイトルとURLをコピーしました