我有一些关于excel的数据,我在列H上有一个解决方案列表,在列G上有一个目标框,从0移动到100,我已经有一个代码来生成H列中的解决方案,但我想要用于检查G列上目标值的代码,并检查H列中最近的解决方案编号,然后将答案放在第I列并突出显示。
非常感谢您的时间和精力。
答案 0 :(得分:0)
你可以不使用宏,使用服务列,比如J,以及条件格式:
=MAX(J$1:J$100)-J1
并复制/填充直到第100行=ABS(G1-H1)
您可能需要其他函数名称,因为电子表格使用本地化接口。例如,对于我的测试,我在意大利语中使用了LibreOffice ......
HTH
答案 1 :(得分:0)
我假设'解决方案'是正数。如果这些解决方案按升序排列排列,则可以使用以下公式。如果没有,一个解决方案可以是使用辅助列按升序对值进行排序。
让H列中的解决方案列表来自H1:H100
,您的目标框位于单元格G1
中。
然后,您可以将以下公式复制到所需的单元格。
=IF(MAX(H1:H100)<=G1,MAX(H1:H100),IF(INDEX(H1:H100,1+MATCH(G1,H1:H100))-G1>G1-INDEX(H1:H100,MATCH(G1,H1:H100)),INDEX(H1:H100,MATCH(G1,H1:H100)),INDEX(H1:H100,1+MATCH(G1,H1:H100))))
将上述公式中的H1:H100
替换为解决方案按升序排列的范围。此外,将G1
替换为具有目标值的单元格的地址。
如果解决方案不是升序,那么您可以使用帮助列。您可以使用一个额外的列将解决方案按升序排序。如果您的解决方案出现在H1:H10
中,那么在单元格I1
中,您可以输入以下公式。
=IF(ISERROR(SMALL($H$1:$H$100,ROW()-ROW($I$1)+1)),"",SMALL($H$1:$H$100,ROW()-ROW($I$1)+1))
将公式中的$H$1:$H$100
替换为解决方案所在的范围。另外,将$I$1
替换为复制此公式的同一单元格的单元格地址。在此,由于我将此公式复制到I1
,因此我使用了$I$1
。
现在将此公式复制到您拥有解决方案的位置,例如对于此示例,您将其向上复制到I100
,因为您的解决方案来自H1:H100
。
现在,在上一个公式中,将H1:H100
替换为I1:I100
,因为此新列表按升序排序。
如果这不是你想要的,也许你可以给我一些更多的细节,因为你的问题不是很清楚。希望这会有所帮助。
P.S。 :如果您获得所需的值,可以稍后添加突出显示。