【问题标题】:Find closest value to 0 in range of values in Excel (with non-numeric fields)在 Excel 中的值范围内查找最接近 0 的值(使用非数字字段)
【发布时间】:2016-03-05 22:55:15
【问题描述】:

我在 Excel 中有一系列包含各种正数和负数的单元格。单元格的值由 IF 公式确定,区域中的某些单元格没有值 ("")。

我需要找到最接近 0 的单元格的绝对值。因此,如果我有一个包含 -10、-5、-1、3、6 和“”的列表:我需要得到 1 的结果。

我尝试了多种方法,但我有非数字单元格这一事实似乎是一个导致错误的问题。

我尝试过的:

{=Min(ABS(A1:D10))},我按 Ctrl-Shift-Enter(由于非数字而返回错误)

{=IF(MAX(D3:D22)<=0,-1,IF(MIN(ABS(D3:D22))=MIN(ABS(IF(D3:D22>0,D3:D22,MAX(D3:D22)))),1,-1))*MIN(ABS(D3:D22))},我按下 Ctrl-Shift-Enter(由于非数字而返回错误)

{=IF(OR((D3:D22)>0),MIN(ABS(D3:D22)),-MIN(ABS(D3:D22)))},我按 Ctrl-Shift-Enter(由于非数字而返回错误)

【问题讨论】:

    标签: excel min absolute-value


    【解决方案1】:
    =MIN(ABS(IF(ISNUMBER(D3:D22),D3:D22,9999)))
    

    这是一个数组公式,必须用Ctrl+Shift+Enter

    确认

    应该做的伎俩

    或更好的使用:

    =INDEX(D3:D22,MATCH(MIN(IF(ISNUMBER(D3:D22),ABS(D3:D22))),ABS(D3:D22),0))
    

    这是一个数组公式,必须用Ctrl+Shift+Enter

    确认

    不关心文本或空单元格,但将 0 作为数字将计数...负数也将是负数(如果您总是想要正数,则需要 ABS 整个公式...

    【讨论】:

    • 有趣——我们同时输入了基本相同的答案。这表明答案有些自然。
    • 如果您将 ABS 作为 IF 语句的一部分,即 MIN(IF(ISNUMBER(D3:D22),ABS(D3:D22)),那么您不需要 value_if_false 子句。跨度>
    【解决方案2】:

    如果你有一个上限,比如 10^9,那么你可以做的最小值是多少:

    {=MIN(ABS(IF(ISNUMBER(D3:D22),D3:D22,10^9)))}
    

    如果您发现对最小值做出任何假设有问题,请注意它肯定小于 1 + 最大值的绝对值,因此您可以使用:

    {=MIN(ABS(IF(ISNUMBER(D3:D22),D3:D22,1+ABS(MAX(D3:D22)))))}
    

    【讨论】:

    • @DirkReichel 谢谢。我使用不同的范围测试了公式,并尝试手动修改它以反映 OP 的范围,但必须有错误计数的括号或其他东西
    • 如果您将 ABS 作为 IF 语句的一部分,即 MIN(IF(ISNUMBER(D3:D22),ABS(D3:D22)),那么您不需要 value_if_false 子句。跨度>
    【解决方案3】:

    我发布这个只是因为它在其他用户提出他们的答案之前对我有用。我仍然会接受他们的答案之一,而不是这个。

    =MIN(IF(D3:D22>0,D3:D22,ABS(D3:D22)))
    

    当然我必须按下 Ctrl+Shift+Enter 让这个工作。

    【讨论】:

      【解决方案4】:

      当值不在连续单元格中时,如何找到最接近零的数字? (即,不在“范围”内)例如,a1b5f15 包含值 -3、4 和 -5。该公式应返回值 -3。

      https://www.atlaspm.com/toms-tutorials-for-excel/ 的 Tom Ogilvy 回答了这个问题:

      对于您提出的具体问题,这将返回 -3

      =INDEX(CHOOSE({1,2,3},A1,B5,F15),MATCH(MIN(ABS(CHOOSE({1,2,3},A1,B5,F15))),ABS(CHOOSE({1,2,3},A1,B5,F15)),0))
      

      使用 Ctrl+Shift+Enter 输入。您可以调整CHOOSE({1,2,3},A1,B5,F15)(替换原始公式中的C7:C20)以包含更多单元格。例如,如果我想添加Z20AA4,我可以使用CHOOSE({1,2,3,4,5},A1,B5,F15,Z20,AA4)。每个单元格都需要单独列出。所以你不能有CHOOSE({1,2},A1,B5:B20)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-12-15
        • 2020-08-31
        • 1970-01-01
        • 2017-01-23
        • 1970-01-01
        • 2013-03-01
        • 2014-12-11
        相关资源
        最近更新 更多