[Python] 重複する文字列をカウントしてエクセルに出力する

Python
スポンサーリンク

こんにちはーー

Pythonで重複する文字列をカウントしてエクセルに出力したので記事にしました。

この記事が誰かの役に立てば幸いです。

スポンサーリンク

概要

↓の記事で出力したcsvをエクセルに変換して使用します。

↓のエクセルのC列の文字列に対して重複をカウントしてOとP列に出力します。

コード

作成したコードは↓です。
collections.Counter()
を使って、重複をカウントします。

import openpyxl
from openpyxl.styles.fonts import Font 
import collections

name_xlsx = "./test.xlsx"
out_xlsx ="./addd_count.xlsx"

#エクセルの読み込み
wb = openpyxl.load_workbook(name_xlsx)
ws = wb['Sheet1']

#リストの作成
list=[]
max_row = ws.max_row
for i in range(2,max_row):
    cha = 'C'+str(i)
    cha2 = ws[cha].value
    list.append(cha2)

#重複をカウント
c = collections.Counter(list)

#エクセルへの書き込み
for j,k in enumerate(c.values()):
    ws['O'+str(j+2)] = int(f"{k}")
for j,k in enumerate(c.keys()):
    ws['P'+str(j+2)] = f"{k}"

ws['O'+str(1)] ="カウント合計"
ws['P'+str(1)] ="チャンネル名"

#フォントの変換
font = Font(bold=False,name="Meiryo UI")

for row in ws.iter_rows():
    for cell in row:
        ws[cell.coordinate].font = font

#セーブ
wb.save(out_xlsx)

プログラム実行結果

実行した結果です。

意図通りO列に重複をカウントした結果を出力できました。

以上です!!

ざっくり動画にもしています。

コメント

タイトルとURLをコピーしました