Excel 需要在列表中查找由另一列中的数值过滤的最接近的较大数字

Excel 需要在列表中查找由另一列中的数值过滤的最接近的较大数字,excel,excel-formula,Excel,Excel Formula,我需要创建一个Excel公式来执行以下操作: 只要列number中有一个特定的数字,那么公式就应该将Target列中的相应值与code列中的值进行比较,并在预期输出所有行中进行标记,其中code列中的值更大且最近 您所描述的内容可以在SQL数据库语言中使用GROUPBY语句轻松完成 您需要公式,Excel不直接支持,因为它不是SQL数据库。 然而,用公式可以很容易地做到这一点。有更多的方法可以实现这一点,我可以告诉你,我将如何做到这一点。我使用了数组公式MIN(IF(…),其工作方式类似于B从范

我需要创建一个Excel公式来执行以下操作:

只要列
number
中有一个特定的数字,那么公式就应该将
Target
列中的相应值与
code
列中的值进行比较,并在
预期输出
所有行中进行标记,其中
code
列中的值更大且最近


您所描述的内容可以在SQL数据库语言中使用
GROUPBY
语句轻松完成

您需要公式,Excel不直接支持,因为它不是SQL数据库。 然而,用公式可以很容易地做到这一点。有更多的方法可以实现这一点,我可以告诉你,我将如何做到这一点。我使用了数组公式
MIN(IF(…
),其工作方式类似于
B从范围组中选择MIN(a)

我将创建两个辅助列(D和E)-如果需要,它们最终可以放在单独的表上-参见下面的图片

  • 在D列中放置公式:
    =IF(B1-C1>0,B1-c165535)
    (65535对于一个相对非常高的数字来说是一个小技巧)
  • 在E列中,将公式:
    =MIN(如果(A$1:A$12=A1,D$1:D$12))
    放置为数组公式Ctrl+Shift+EnterA$1:A$12和D$1:D$12是数据的范围
  • 在F列中,您可以得到您的
    预期输出
    =IF(E1=D1,1,0)
因此,在列E中,你可以得到C和B之间的最小差值,即A过滤的>0


以这种方式处理Excel数据时,我建议使用命名范围,而不是$1:A$12等。

深呼吸,并尝试重新表述您的问题。不清楚您在问什么。这非常不清楚。但我想我理解您的意思。这仅适用于VBA用户定义的函数。但因为您从未接受过任何answer(s)之前给过你…这个评论和我将要做的一样多。@RusanKax我不理解你评论的两个部分。1)我在该用户的4个问题中的5个问题中看到了被接受的答案。2)正如你在我的回答中看到的,数组MIN(IF(
MIN中的formula.Typo)(IF(A$1:A$12=A1;D$1:D$12))可以做得很好
谢谢您的回复,但这并不是我所期望的。让我详细解释一下。在excel操作中,A列中应该有A1:A6数字匹配,因此在列表B1:B6的B列中,它将检查C列中提到的最接近的值3。一旦它得到D列中的值,它将标记为D3和D4 1,其余的都是0。上述操作将起作用在B7:B12中继续。在这里删除E和F列。@据我所知,用户3172930的问题是存在两个额外的列。我怀疑,在没有任何辅助列或VBA代码的情况下,用一个公式可以实现这一点。您可以将这些列隐藏起来,或者将它们放在另一个隐藏的工作表上-我看不出有任何问题。那么我是上面的公式problem@user3172930似乎我不太明白。F列-预期输出中的值是否有任何错误?如果有,请在某处发布一个包含更多数据的示例屏幕截图,并标记值为0和应该为1的位置,以此类推。