我有以下excel设置,但这是一个简化的设置:
A B C D E
1 Site1 X-Given Y-Given Site2 X-New-Given
2 A 10 400 A 15
3 A 20 500 A 25
4 A 30 600 A 30
5 A 40 700 B 35
6 A 50 800 B 30
7 B 2 400 B 15
8 B 25 500 B 25
9 B 300 600 B 30
Run Code Online (Sandbox Code Playgroud)
这就是我想要做的:
给定"E列"中的值,我想找到一个值<="E列"中的值,只要它们位于同一个站点
然后我想做同样的事情只找到"列E"中的>值
因此,期望的公式将是两个具有更大值的单元格,一个具有小于值的单元格
Example 1: Given 15 (E2) ---> would return "10" (from B2) and "20" (from B3)
Example 2: Given 15 (E7) ---> would return "2" (from B7) and "25" (from B8)
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,输出会根据站点而改变,这是我似乎无法掌握的部分!
这些是使用Control + Shift + Enter输入的数组公式,而不仅仅是Enter.如果你正确输入它们,Excel将在它们周围放置花括号 - 不要自己输入大括号.
小
{=MAX(($A$2:$A$9=D2)*($B$2:$B$9<=E2)*($B$2:$B$9))}
Run Code Online (Sandbox Code Playgroud)
大
{=MIN(IF((($A$2:$A$9=D2)*($B$2:$B$9>=E2)*($B$2:$B$9))=0,"",$B$2:$B$9))}
Run Code Online (Sandbox Code Playgroud)
较小的人发现该网站的最大值小于或等于E2.较大者发现站点的最小值大于或等于E2.下来做其余的事情.
公式中的数组返回0表示FALSE,1表示TRUE,因此只要其中一行为FALSE,MIN就会返回0.这就是你必须使用IF语句的原因.通过为FALSE注入一个字符串,它会忽略它们,因为MIN会忽略字符串.