2017-04-06 69 views
0

我有一个挑战,似乎应该有一个简单的答案,但我无法解决它。如果条件与其他三个单元格匹配(一个单元格等于,下一个单元格大于,下一个单元格小于),并且我的公式为:Excell - 阵列,偏移相关单元格

=IF(C7="f",IF(MIN(IF($C$4:$C$43="m",IF($D$4:$D$43>E7,IF($D$4:$D$43<F7,$G$4:$G$43,""),""),""))>0,MIN(IF($C$4:$C$43="m",IF($D$4:$D$43>E7,IF($D$4:$D$43<F7,$G$4:$G$43,""),""),"")),"no match"),"") 
我需要在大列表中找到最小值的列表

它有额外的内容,所以如果它不符合“f”标准,它将不会执行任何操作,如果数组中没有满足条件,它将返回“不匹配”。

这部分工作,但现在我想显示一个单元名称的速率发现(速率的名称)相关的速度,除了上面的公式中找到率,因此类似的公式,但使用INDEX和MATCH或OFFSET。我面临的挑战是我的数据的速率是相同的,因此数组可以返回多个正确的答案,这也是可以的,但是当我尝试将其与速率名称进行匹配时,它只是发现数组中的第一个速率与速率匹配没有标准,我不知道如何再次纳入标准。

换句话说 - 标准找到了正确的匹配,但匹配然后查找值并选择数组中的第一个匹配 - 总是不正确。以下是数据的一个示例。 sorry about the image- no easy way to show data in SO

+0

所以你只想找到M值?如果是这样,那么作为IF函数中的一个参数。 – Luuklag

+0

我相信上面的公式'<' and '>'是相反的,你需要把'='放在它们后面。根据您的示例,需要进行这些更改才能获得第一列的回报。 –

+0

等号是正确的,我< and >正确,但我提供的样本数据有我的实际数据的低和高相反 - 哎呀,因此下面的公式是真棒 - 但我不得不扭转< and >使其工作。谢谢! – user2213980

回答

0

这个数组公式将返回正确的名称和不依赖于你的其他公式的返回:退出时

=IF(C4="f",IFERROR(INDEX($B$4:$B$43,MATCH(MIN(IF(($C$4:$C$43="m")*($D$4:$D$43<=E4)*($D$4:$D$43>=F4),$G$4:$G$43)),IF(($C$4:$C$43="m")*($D$4:$D$43<=E4)*($D$4:$D$43>=F4),$G$4:$G$43),0)),"No Match"),"") 

是数组公式,它必须与确认按Ctrl-Shift键输入,而不是进入编辑模式。如果正确完成,Excel将在公式周围放置{}

enter image description here