现需要判断同一ID当账户币小于0时并且其绝对值大于上一条正值(同ID),返回其绝对值差额+上一条正值的健值

from openpyxl import load_workbook

wb = load_workbook('test2.xlsx')
sheet1 = wb['111']
kv = {}
for i in range(2, sheet1.max_row + 1):
id = sheet1.cell(row=i, column=1).value
value = sheet1.cell(row=i, column=2).value
key = str(id)
if key in kv:
if value < 0:
sheet1.cell(row=i, column=3).value = kv[key] # 负值设置为上一条正值的键值
else:
sheet1.cell(row=i, column=3).value = '续费'
kv[key] = '续费'
else:
if value < 0: # id第一条记录是负值,自行设置
sheet1.cell(row=i,column=3).value = '无对应新单'
elif value > 0 and value <= 50:
sheet1.cell(row=i, column=3).value = '信用金'
else:
sheet1.cell(row=i, column=3).value = '新单'
kv[key] = '新单'
wb.save("test2.xlsx")
print(kv)

img


from openpyxl import load_workbook

wb = load_workbook('test2.xlsx')
sheet1 = wb['111']
kv = {}
for i in range(2, sheet1.max_row + 1):
    id = sheet1.cell(row=i, column=1).value
    value = sheet1.cell(row=i, column=2).value
    key = str(id)
    if key in kv:
        if value < 0 and abs(value) > kv[key]:
            sheet1.cell(row=i, column=3).value = str(abs(value) - kv[key])+'续费' # 负值设置为上一条正值的键值
        else:
            sheet1.cell(row=i, column=3).value = '无需续费'
    else:
        if value < 0: # id第一条记录是负值,自行设置
            sheet1.cell(row=i,column=3).value = '无对应新单'
        elif value > 0 and value <= 50:
            sheet1.cell(row=i, column=3).value = '信用金'
        else:
            sheet1.cell(row=i, column=3).value = '新单'
    if value > 0:
        kv[key] = value
wb.save("test2.xlsx")
print(kv)