我试图将一个单元格的值赋予等于其他几个单元格的总和。我可以使用像
这样的两行来实现这一点 dailycell=45
while sheet['E' + str(dailycell)].value is not None:
mysum+=sheet['E'+str(dailycell)].value
sheet['B13']=mysum
dailycell+=1
凭借我有限的知识,我尝试了lambda。然后我得到了各种错误。我尝试了几次迭代,但没有人得到相同的结果。
sheet['B13']=lambda weeklybudget,sheet['E'+str(dailycell)].value:weeklybudget+=sheet['E'+str(dailycell)]
有替代方案吗?
答案 0 :(得分:1)
为什么不迭代整个E
列并总结值:
sheet["B13"] = sum(c.value or 0 for c in sheet['E'])
如果您对从哪一行开始有限制,那么只需抓住相应的切片:
sheet["B13"] = sum(c.value or 0 for c in sheet['E'][46:])
如果您需要在第一次出现None
时停止求和,则需要一些外部帮助 - itertools.takewhile()
会想到:
from itertools import takewhile
sheet["B13"] = sum(c.value for c in takewhile(lambda x: x.value is not None, sheet['E'][46:]))