猿问

突出显示 Excel 列中大于某个值的总和

我有一个已排序的列,我想突出显示那些总和小于阈值(在本例中为 0.8)的行。如果您运行下面的代码,它将突出显示 0.294 和 0.202,但加起来只为 0.496;我希望它也突出显示 0.171,但不是 0.157,因为这会使其超过 0.8


我在条件格式中使用了正确的标准吗?


import pandas as pd

import numpy as np

import xlsxwriter



df = 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.book

yellow_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()


拉丁的传说
浏览 131回答 1
1回答

隔江千里

好的,首先这个答案只是 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,依此类推。注意我使用绝对引用,但仅在第一个单元格上使用,而不是整个范围,因此向下拖动时的范围是动态的。在相对、绝对和混合引用之间切换
随时随地看视频慕课网APP

相关分类

Python
我要回答