需要在列表中找到最接近的更大数字,该列表由另一列中的数值过滤

时间:2014-08-30 19:01:23

标签: excel excel-formula

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

只要列Number中有特定数字,那么公式就应该将Target列中的相应值与Code列中的值进行比较,并将{{1所有行,其中Expected Output更大且列Code中的值最近。

Closest greater number

1 个答案:

答案 0 :(得分:1)

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

您需要公式,Excel不直接支持此,因为它不是SQL数据库。 然而,使用公式可以很容易地完成。有更多的方法可以实现这一点,我可以告诉你,我将如何做到这一点。我使用了数组公式MIN(IF(...,其工作方式与SELECT MIN(A) FROM range GROUP BY B

类似

我会创建2个辅助列(D和E) - 如果需要,它们最终可以放在单独的工作表上 - 见下图。

  • 在D栏中放置公式:=IF(B1-C1>0,B1-C1,65535)(对于相对较高的数字,65535有点破解)
  • 在列E中,将公式:=MIN(IF(A$1:A$12=A1,D$1:D$12)) 作为数组公式Ctrl + Shift + Enter A $ 1:A $ 12和D $ 1:D $ 12是您的数据范围
  • 在F列中,您可以获得Expected output=IF(E1=D1,1,0)

因此,在E栏中,您获得的C和B之间的最小差异是> 0由A过滤。

Excel example

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