Python(openpyxl) 重複データを削除し合計を合算

Python_Excel重複合算_アイキャッチ Python

Python(openpyxl)で、エクセルの重複データを削除し合計を合算するコードをご紹介します。

ぜひ、お試しください。

Excelの重複データを削除し合計を合算

以下のコードを実行すると、重複データを削除し合計を合算します。


import openpyxl

wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']
ws2 = wb['Sheet2']

#配列宣言
Chiiki = []

#重複しないリストを抽出
#セルをループ
i = 0
for row in ws.iter_rows():
    j = 0
    for cell in row:
        if cell.col_idx == 1:
            i = i + 1
            #セル1個目は強制的に配列へ格納
            if i == 1:
                Chiiki.append(cell.value)
            else:
                #リストをループ
                for list in Chiiki:
                    #セル値がすでにリストに含まれていたら何もしない
                    if list == cell.value:
                        j = j + 1
                        break
                if j == 0:
                    #セル値がリストに含まれていなければ配列へ追加
                    if cell.value is not None:
                        Chiiki.append(cell.value)

#重複しないリストをws2へ書き込み
for i in range(0,len(Chiiki)):
    ws2.cell(i+1,1,value = Chiiki[i])

#リストの合計を合算しws2へ書き込み
j = 1
for list in Chiiki:
    i = 0
    for row in ws.iter_rows():
        for cell in row:
            if list == cell.value:
                i = i + cell.offset(0,1).value
    ws2.cell(j,2,value = i)
    j = j + 1

#別名で保存
wb.save('C:/Users/xxx/Desktop/test/test重複合算.xlsx')

 

コード実行後

重複するデータの数値を加算して、別シートに入力します。

・「Sheet1」B列の合計 → 1,571,705
・「Sheet2」B列の合計 → 1,571,705


 
 
この記事がお役に立ちますと幸いです。
 
・【Python】エクセルを自動処理する方法まとめ
 

【Python】エクセル処理を自動化:超便利55選
...

 

「PythonでExcel、メール、Webを自動化する本」

準備に時間をかけず、すぐ始められます
実践的な例題で、実務で本当に使えるプログラムを紹介
自分の仕事を効率化したい方の大きな武器になるオススメの1冊です!