2017-03-01 33 views
-1

我正在尝试编写一个公式来查找符合特定条件的最近的单元格,总之我有一个表示其各个角度的性能的天线数据表,我想计算3dB波束宽度。 表的格式为:excel找到符合条件的最近的单元格

+-------------------------------------+ 
| Angle | Freq 1 | Freq 2 | Freq 3 | 
+----------+--------+--------+--------+ 
| 0  | -2  | -4  | -6  | 
| 10  | -2.5 | 4  | -7  | 
| 20  | -2  | 5  | 0  | 
| 30  | 1  | 6  | 2  | 
| 40  | 4  | 7  | 2  | 
| 50  | 5  | 6  | 3  | 
| 60  | 4  | 6  | 2  | 
| 70  | 2  | 5  | 2  | 
| 80  | 0  | 4  | 2  | 
| 90  | -2.5 | 2  | 1  | 
| 100  | -2  | -4  | 0  | 
| ...  | ... | ... | ... | 
| 350  | -2  | -4  | -6  | 
| 360  | -2  | -4  | -6  | 
+----------+--------+--------+--------+ 
| Max  | 5  | 7  | 3  | 
| Ang. Max | 50  | 40  | 50  | 
+----------+--------+--------+--------+ 

,所以我目前使用max表中获得的最高值,并INDEX([angle range],MATCH([max cell],[freq column range],0))来查找最大值对应的角度。

我需要一个公式,它可以找到最大单元的最大值与最大3dB和最后一个单元的角度之间的最后一个单元的相应角度,然后获得这些角度之间的差值,以获得波束宽度度,因此对于频率1:以上
:4 - 角低于40
:2 - 角度70
波束宽度:70 - 40 = 30

频率2:上述
:4 - 角低于10
:4-角80
波束宽度:80-10 = 70

频率3:上述
:0 - 角低于20
:0 - 角100
波束宽度:100 - 20 = 80

理想地,将工作直线是withing的最后一个单元之间进行内插3dB和第一次在外面猜测这些步骤之间的角度......但这可能是一个过度的桥梁。

我想避免使用宏来做这件事,因为我希望在源数据更改时自动计算它,并且我需要能够将它发送到不允许运行宏的机器。

我想过使用的VLOOKUPLOOKUP但这些都需要相匹配的精确值,除非一个选项设置,但是当我与选项设置尝试我没有比赛,在所有的(max - 3)

不是值真正当然还有其他的尝试。

回答

2

对于Excel 2010及以上:

要发现上面:

=INDEX($A:$A,AGGREGATE(15,6,ROW(B$2:B$12)/(B$2:B$12>=MAX(B$2:B$12)-3),1)) 

要找到下面,改变1514

=INDEX($A:$A,AGGREGATE(14,6,ROW(B$2:B$12)/(B$2:B$12>=MAX(B$2:B$12)-3),1)) 

然后拖/跨复制参考下一列。

enter image description here


对于2007年及以下,你将需要使用以下数组公式:

以上:

=INDEX($A:$A,SMALL(IF(B$2:B$12>=MAX(B$2:B$12)-3,ROW(B$2:B$12)),1)) 

下面:

=INDEX($A:$A,LARGE(IF(B$2:B$12>=MAX(B$2:B$12)-3,ROW(B$2:B$12)),1)) 

作为数组公式,它们需要使用Ctrl-Shift-Enter进行确认,而不是在退出编辑模式时输入。如果正确完成,Excel将在公式周围放置{}

enter image description here

+0

你能解释一下上述公式的每一点在做什么吗?当我在电子表格上试试这个时,我得到一个'#NAME?'错误... –

+0

你用什么excel? –

+0

它的标签,抱歉应该把它放在身体,2007 –

相关问题