4

我有以下庞大的 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 

这就是我想要做的:

给定“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)

如您所见,输出会因站点而异,这是我似乎无法掌握的部分!

4

1 回答 1

6

这些是使用 Control+Shift+Enter 输入的数组公式,而不仅仅是 Enter。如果输入正确,Excel 会在它们周围加上花括号 - 不要自己输入花括号。

较小的

{=MAX(($A$2:$A$9=D2)*($B$2:$B$9<=E2)*($B$2:$B$9))}

更大

{=MIN(IF((($A$2:$A$9=D2)*($B$2:$B$9>=E2)*($B$2:$B$9))=0,"",$B$2:$B$9))}

较小的找到小于或等于 E2 的站点的最大值。较大的会查找大于或等于 E2 的站点的最小值。填写完成剩下的工作。

公式中的数组为 FALSE 返回 0,为 TRUE 返回 1,因此只要其中一行为 FALSE,MIN 将始终返回 0。这就是你必须使用 IF 语句的原因。通过为 FALSE 注入一个字符串,它会忽略它们,因为 MIN 忽略字符串。

于 2012-08-16T21:58:47.973 回答