我需要创建一个Excel公式,它将执行以下操作:
只要列Number
中有特定数字,那么公式就应该将Target
列中的相应值与Code
列中的值进行比较,并将{{1所有行,其中Expected Output
更大且列Code
中的值最近。
答案 0 :(得分:1)
使用GROUP BY
语句可以在SQL数据库语言中轻松完成所描述的内容。
您需要公式,Excel不直接支持此,因为它不是SQL数据库。
然而,使用公式可以很容易地完成。有更多的方法可以实现这一点,我可以告诉你,我将如何做到这一点。我使用了数组公式MIN(IF(...
,其工作方式与SELECT MIN(A) FROM range GROUP BY B
我会创建2个辅助列(D和E) - 如果需要,它们最终可以放在单独的工作表上 - 见下图。
=IF(B1-C1>0,B1-C1,65535)
(对于相对较高的数字,65535有点破解)=MIN(IF(A$1:A$12=A1,D$1:D$12))
作为数组公式Ctrl + Shift + Enter A $ 1:A $ 12和D $ 1:D $ 12是您的数据范围Expected output
:=IF(E1=D1,1,0)
因此,在E栏中,您获得的C和B之间的最小差异是> 0由A过滤。
以这种方式处理Excel数据时,我建议使用命名范围而不是A $ 1:A $ 12等。