【Python】ExcelのCOUNTIFS関数作成
PythonでExcelのCOUNTIFS関数を作成しました。
左の表から性別とグループが一致する人数を右の表に出力します。
プログラムはこちらです。
# ライブラリ設定
import openpyxl as px
import pathlib
#ファイルの指定
filepath = pathlib.Path(r'C:\Users\taeka\Desktop\blog\Python_countifs.xlsx')
# 対象のExcelを読み込む
wb = px.load_workbook(filepath)
ws1 = wb['Sheet1']
# 最終行の取得
max = ws1.max_row
# F列の値を取得
for i in range(3, max + 1):
seibetu_f = ws1['F' + str(i)].value
# G2,H2の値を取得
if not seibetu_f is None:
for j in range(2):
yoko = ws1['G2'].offset(0, j).value
# 人数をリセット
ninzu = 0
# C列,D列の値を取得
for k in range(3, max + 1):
seibetu_c = ws1['C' + str(k)].value
group = ws1['D' + str(k)].value
# 2つの条件が一致した時に人数を追加
if seibetu_f == seibetu_c and yoko == group:
ninzu += 1
# G列,H列に人数を出力
ws1['G' + str(i)].offset(0, j).value = ninzu
# Excelを上書き保存
wb.save(filepath)
ファイルの指定はあなたのExcelがあるPathを入力してください。
【yoko = ws1['G2'].offset(0, j).value】のjの値で読み取るセルの位置を移動させています。jの値が正の時は右、負の時は左に移動します。
実行すると
右の表に正しい人数の値が出力されました。
Pythonがよく分からない人はこちらの本がおすすめです。