前提・実現したいこと
作成してあるExcelファイルのD列を取得して特定の値(今回は60.6)が2回以下続いた場合は空欄にするプログラムを作成したいです。
そして空欄にした値をF列に書き込みたいです。
例:
D列 F列
5.4 5.4
50.5 50.5
12.5 12.5
60.6 60.6
60.6 60.6
60.6 60.6
60.6 60.6
48.5 48.5
60.6
60.6
41.2 41.2
60.6
45.9 45.9
例のようにD列から右のようなF列にしたい。
プログラミング初心者なため助言をいただけると嬉しいです。
該当のソースコード
Python
1from openpyxl import load_workbook 2 3# Excelファイルのロード 4excel_path = 'test.xlsx' 5workbook1 = load_workbook(filename=excel_path, data_only=True) 6ws = workbook1.active 7 8# シートを取得 9sheet1 = workbook1['sheet1'] 10 11lastrow = sheet1.max_row 12 13r = 0 14 15for j in range(2, lastrow + 1): 16 # D列のセル取得 17 h = sheet1['D' + str(j)].value 18 if h == 60.6: 19 r += 1 20 if r >= 3: 21 sheet1['F' + str(j)].value = h 22 print(h) 23 elif r <= 2: 24 pass 25 else: 26 r = 0 27 sheet1['F' + str(j)].value = h 28 29 30# 作成したExcelファイルを保存する 31workbook1.save('test.xlsx') 32 33# ロードしたExcelファイルを閉じる 34workbook1.close()
試したこと
If文を用いて条件分岐を試してみたが上手くいかないです。
現状上記のプログラムを実行するとD列の値をF列にコピペするのみとなっており、
希望通りの動き方をしていません。
助言をお願い致します。
補足情報(FW/ツールのバージョンなど)
python 3.8.10
回答1件
あなたの回答
tips
プレビュー