Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel,使用单元格进行计算_Excel - Fatal编程技术网

Excel,使用单元格进行计算

Excel,使用单元格进行计算,excel,Excel,我在excel上有一些数据,在H列上有一个解决方案列表,在G列上有一个从0移动到100的目标框,我已经在H列中有了生成解决方案的代码,但我需要一个代码来检查G列上的目标值,检查H列中最近的解数,然后将答案放在i列并高亮显示 非常感谢您花费的时间和精力。您可以不用宏,使用服务列(如J)和条件格式: 在第I列中放置公式=MAX(J$1:J$100)-J1,并复制/填充到第100行 同样,用公式=ABS(G1-H1) 使用列I中的条件格式突出显示value=0的位置 您可能需要其他函数名,因为电子表格

我在excel上有一些数据,在H列上有一个解决方案列表,在G列上有一个从0移动到100的目标框,我已经在H列中有了生成解决方案的代码,但我需要一个代码来检查G列上的目标值,检查H列中最近的解数,然后将答案放在i列并高亮显示


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

您可以不用宏,使用服务列(如J)和条件格式:

  • 在第I列中放置公式
    =MAX(J$1:J$100)-J1
    ,并复制/填充到第100行
  • 同样,用公式
    =ABS(G1-H1)
  • 使用列I中的条件格式突出显示value=0的位置
  • 您可能需要其他函数名,因为电子表格使用本地化接口。例如,在我的测试中,我使用了意大利语的LibreOffice


    HTH

    我假设“解”是正数。如果这些解决方案按升序排列,则可以使用以下公式。如果不是,一种解决方案是使用helper列按升序对值进行排序

    让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))))
    
    将公式中的
    $H$1:$H$100
    替换为存在解决方案的范围。另外,用复制此公式的同一单元格的单元格地址替换
    $I$1
    。在这里,由于我将这个公式复制到
    I1
    ,所以我使用了
    $I$1

    现在将此公式向下复制,直到找到解决方案为止,例如,对于本例,您将向下复制到
    I100
    ,因为您的解决方案来自
    H1:H100

    现在在前面的公式中,将
    H1:H100
    替换为
    I1:I100
    ,因为此新列表按升序排序

    如果这不是你想要的,也许你可以给我更多的细节,因为你的问题不是很清楚。希望这有帮助


    备注:如果您获得所需的值,您可以稍后添加突出显示。

    向我们展示您已经构建的内容,以便我们可以在代码方面为您提供帮助
    =IF(ISERROR(SMALL($H$1:$H$100,ROW()-ROW($I$1)+1)),"",SMALL($H$1:$H$100,ROW()-ROW($I$1)+1))