PythonからExcelファイル(.xlsx形式)を読み書き・操作するためのライブラリにOpenPyXL(オープンパイエクセル)があり、プログラムでExcelファイルの作成、データの読み書き、セルの書式設定(色、罫線など)を実施することができる。
今回は、OpenPyXLを利用して、重複するキーに対応する値を一括設定してみたので、そのサンプルプログラムを共有する。
前提条件
以下の記事のPythonのインストールが完了していること。
OpenPyXLのインストール
2026年1月9日現在の最新バージョン(3.1.5)のOpenPyXLをインストールする。その手順は、以下の通り。
1) コマンドプロンプトで「python –version」コマンドを実行すると、以下のように、Pythonのバージョンが確認できる。

2)「pip install openpyxl」コマンドを実行し、最新バージョンのopenpyxlをインストールする。

3)「pip show openpyxl」コマンドを実行すると、以下のように、インストールしたopenpyxlのバージョンが確認できる。

サンプルプログラムの作成
作成したサンプルプログラムの内容(write_duplicate_key_data.py)は、以下の通り。
from openpyxl import load_workbook
# 入力ファイル(input.xlsx)を読み込む
input_file_path = 'input.xlsx'
wb = load_workbook(input_file_path)
# 取得元シート・書込先シートを選択する
source = wb['取得元']
target = wb['書込先']
# 書込先シートから、キー・値を取得する
for target_row in target.iter_rows(min_row=2, min_col=1
, max_row=target.max_row, max_col=2):
# 取得元シートから、キー・値を取得する
for source_row in source.iter_rows(min_row=2, min_col=1
, max_row=source.max_row, max_col=2):
# 書込先シートのキーが、取得元シートのキーと一致する場合
if target_row[1].value == source_row[0].value:
# 書込先シートの値に、取得元シートの値を設定する
target_row[0].value = source_row[1].value
break
# ワークブックを出力ファイル(output.xlsx)保存
wb.save("output.xlsx")
なお、入力ファイル(input.xlsx)の内容は、以下の通り。


サンプルプログラムの実行結果
サンプルプログラムの実行結果は、以下の通り。
1) 以下のように、サンプルプログラム(write_duplicate_key_data.py)と入力ファイル(input.xlsx)が同フォルダ上にある状態にする。

2) サンプルプログラム(write_duplicate_key_data.py)を実行すると、以下のように、出力ファイル(output.xlsx)が出力されることが確認できる。

3) 作成された出力ファイル(output.xlsx)の内容は以下の通りで、「書込先」シートの1列目(赤枠部分)に、2列目のキーに該当する値が設定されるのが確認できる。

要点まとめ
- PythonからExcelファイル(.xlsx形式)を読み書き・操作するためのライブラリにOpenPyXL(オープンパイエクセル)があり、プログラムでExcelファイルの作成、データの読み書き、セルの書式設定(色、罫線など)を実施することができる。
- 重複するキーに対応する値を一括設定する処理は、OpenPyXLを利用したPythonプログラムで実装できる。





