初めて質問します。始めて間もないので、質問の仕方もよくわかりませんが、アドバイスをいただけると助かります。エクセルデータを読み込み、給与計算するシステムをつくりたいのですが、途中からエラーメッセージが出て進まなくなりました。
☆エラーメッセージ
if startdate<=kandadate<=enddate:
TypeError: '<=' not supported between instances of 'datetime.datetime' and 'NoneType'
python3.7.4、openpyxlを使っています。
コードは以下の通りです。WS1にある労働時間をWS2の担当者ごとに集計します。
#WS2のセルより日付の取得(B2年、C2月、D2日 から B3年、C3月、D3日 まで)
startdate=datetime.datetime(int(ws2['B2'].value),int(ws2['C2'].value),int(ws2['D2'].value))
enddate=datetime.datetime(int(ws2['B3'].value),int(ws2['C3'].value),int(ws2['D3'].value))
lastrow1=ws1.max_row
lastrow2=ws2.max_row
lastcol2=ws2.max_column
#WS1のエクセルデータを2次元データとして取得
values1=[[cell.value for cell in row1]for row1 in ws1]
#集計
for i in range(7,lastrow2+1):
for j in range(2,lastcol2+1):
counter=0
for k in range(2,lastrow1):
if values1[k][0]==ws2.cell(row=i,column=1).value: #名前の一致
kandadate=values1[k][1] #全体の期間
if startdate<=kandadate<=enddate: #集計する期間
workingtime=values1[k][19] #労働時間
counter=counter+float(workingtime)
value1には、日付がyyyy/mm/dd のような書式で日付が入力されています。
これと startdate enddate の型が違うのだろうと思うのですが、自分なりにいじってみてもエラーになってしまいます。よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー