Excel,与细胞一起锻炼

时间:2012-03-25 07:23:31

标签: excel

我有一些关于excel的数据,我在列H上有一个解决方案列表,在列G上有一个目标框,从0移动到100,我已经有一个代码来生成H列中的解决方案,但我想要用于检查G列上目标值的代码,并检查H列中最近的解决方案编号,然后将答案放在第I列并突出显示。

非常感谢您的时间和精力。

2 个答案:

答案 0 :(得分:0)

你可以不使用宏,使用服务列,比如J,以及条件格式:

    在列I上的
  1. 放置公式=MAX(J$1:J$100)-J1并复制/填充直到第100行
  2. 同样使用公式=ABS(G1-H1)
  3. 填充服务栏J.
  4. 在第I列中使用条件格式来突出显示value = 0
  5. 的位置

    您可能需要其他函数名称,因为电子表格使用本地化接口。例如,对于我的测试,我在意大利语中使用了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。 :如果您获得所需的值,可以稍后添加突出显示。