我有一个已排序的列,我想突出显示那些总和小于阈值(在本例中为 0.8)的行。如果您运行下面的代码,它将突出显示 0.294 和 0.202,但加起来只为 0.496;我希望它也突出显示 0.171,但不是 0.157,因为这会使其超过 0.8我在条件格式中使用了正确的标准吗?import pandas as pdimport numpy as npimport xlsxwriterdf = pd.DataFrame(np.array([.294, .202, .171, .157, .103, .082, .045, .023, .021, .018, .016]))writer = pd.ExcelWriter('results.xlsx', engine='xlsxwriter')df.to_excel(writer, sheet_name='sheet1', index=False)wb = writer.bookyellow_format = wb.add_format({'bg_color':'#F7FE2E'})ws = writer.sheets['sheet1']ws.conditional_format('A2:A20' , {'type': 'formula', 'criteria': '=SUM(A2:A20) >= 0.8', 'format': yellow_format})wb.close()
1 回答
隔江千里
TA贡献1906条经验 获得超10个赞
好的,首先这个答案只是 Excel,因为我不知道 Pythong 编码,但我希望如果你知道如何在 Excel 中实现这个,也许你可以编码:)
你几乎已经拥有了。您需要总和范围是动态的。您的实际公式只是检查A2:A20
总和是否高于 0.8。因为你使用的是相对引用,所以在检查时A2
,公式会求和A2:A20
,但在检查时A3
会检查A3:A21
,依此类推。
根据提供的值,SUM(A2:A20)
= 1.132,并且因为您输入了它,所以 >= 0.8
它突出显示0.294
。SUM(A3:A21)=0.838
所以.202
也被突出显示。但其余的总和不高于 0.8。
因此,您需要条件格式规则才能使用此公式:
=SUM($A$2:A2)<=0.8
这样,从第 2 行开始,如果第 2 行到实际位置的总和低于 0.8,它将突出显示单元格。因此,在第一个值时,它将求和 uo A2:A2
,第二个值将求和A2:A3
,依此类推。注意我使用绝对引用,但仅在第一个单元格上使用,而不是整个范围,因此向下拖动时的范围是动态的。
在相对、绝对和混合引用之间切换
添加回答
举报
0/150
提交
取消