前提・実現したいこと
作成してあるExcelファイルのD列を取得して特定の値(今回は60.59999999999999)が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.59999999999999: 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()
試したこと
現状として
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
48.5 48.5
60.6
60.6
41.2 41.2
60.6
45.9 45.9
上記のような処理が行われています。
60.6が二回以下の場合が全て記入されていない状態です。
elif r <= 2:
pass
この部分のコードが悪さをしていると思うのですが、改善方法が思いつきません。助言をお願い致します。
補足情報(FW/ツールのバージョンなど)
python 3.8.10
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/08 08:50