見出し画像

【Python】ExcelのCOUNTIFS関数作成

PythonでExcelのCOUNTIFS関数を作成しました。

画像1

左の表から性別とグループが一致する人数を右の表に出力します。

プログラムはこちらです。

# ライブラリ設定
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の値が正の時は右、負の時は左に移動します。

実行すると

画像2

右の表に正しい人数の値が出力されました。


Pythonがよく分からない人はこちらの本がおすすめです。







この記事が気に入ったらサポートをしてみませんか?