はじめに
こんにちは、QAエンジニアのヨシナです。
弊社のQAチームはテスト設計をExcelで行っています。設計書には手動で入力する項目が多く、開発者の所属ユニットに応じたUL(ユニットリーダー)やLE(リードエンジニア)を記載する必要があります。
毎回「誰がULで、誰がLEか」を調べて入力するのは非効率的でした。
そこで今回は、Python in Excelを使ってこの入力を自動化し、その方法を紹介します。
Python in Excelとは?
Python in Excelは、Excelのセルで直接Pythonコードを記述・実行できる機能です。
データ分析やグラフ作成に使われることが多いですが、工夫次第で業務自動化にも活用できます。
詳細は公式サポート記事をご参照ください。
主な特徴
- セル上に直接Pythonコードや関数を記述できる
- 変数・関数・ライブラリの定義が可能
- 他のセルで定義した関数や変数を呼び出せる
- 返却値は「Pythonオブジェクト」と「Excel値」のどちらかで選択できる
基本的な使い方
自動化した内容
課題
- テスト設計書の「関係者」欄(C25、C26)に、該当ユニットのUL・LEを記載する必要がある
- 開発者はそれぞれユニットに所属し、UL・LEが異なる
- 毎回開発者ごとのユニットULとLEを調べるのが手間
自動化で実現したこと
- 「所属ユニットのUL」を自動取得し、セルC25に反映
- 「所属ユニットのLE」を自動取得し、セルC26に反映
Python in Excelでの実装
ULの取得
- ユニットごとのメンバーを辞書で定義(先頭=UL、2番目=LE)
- ポジション(UL/LE)と開発者名(C19セルの値)を受け取る関数
get_ul_le_nameを作成 - C19に入力されたエンジニア名から、UL・LEの氏名を自動的に返却
UL = 0
UNIT_MEMBERS = {
1:["ul1","le1","member1-1"],
2:["ul2","le2","member2-1","member2-2"],
3:["ul3","le3","member3-1","member3-2","member3-3"],
4:["ul4","le4","member4-1","member4-2"]
}
def get_ul_le_name(position:int, engineer:str) -> str:
if not engineer:
return ""
engineer = (engineer.split("さん"))[0]
for members in UNIT_MEMBERS.values():
if engineer in members:
target_name = members[UL] if position == UL else members[LE]
return target_name+"さん"
position_name = "UL" if position == UL else "LE"
return f"該当する{position_name}がいません"
engineer = xl("C19")
get_ul_le_name(UL,engineer)
LEの取得
positionを変更(LE = 1)して同じ関数を呼び出します。
LE = 1
get_ul_le_name(LE,engineer)
まとめ
今回ご紹介したように、Python in Excelはデータ分析だけでなく、Excel業務の自動化にも活用できます。特に、他のセルの値をもとに返却値を自動化するケースでは非常に便利です。
ただし次のような注意点があります。
- 複雑なテンプレート作成や高度な自動化には不向き
- セル単位の入力・処理自動化が中心
- ワークフロー全体の自動化にはVBAマクロやPower Automate等検討を推奨
今回の実装は「ULとLEの入力自動化」というシンプルな例でしたが、応用すればレビュー担当者割り当てやテストケースの自動補完など、さまざまなExcel作業を効率化できます!
KIYOラーニング株式会社について
当社のビジョンは『世界一「学びやすく、分かりやすく、続けやすい」学習手段を提供する』ことです。革新的な教育サービスを作り成長させていく事で、オンライン教育分野でナンバーワンの存在となり、世界に展開していくことを目指しています。
プロダクト
- スタディング:「学びやすく・わかりやすく・続けやすい」オンライン資格対策講座
- スタディングキャリア:資格取得者の仕事探しやキャリア形成を支援する転職サービス
- AirCourse:受け放題の動画研修がついたeラーニングシステム(LMS)
KIYOラーニング株式会社では一緒に働く仲間を募集しています





