2016-12-05 85 views
0

我有以下excel公式,并不按照我想要的方式工作,我可能写错了。Vba + Match + IF

=VLOOKUP(B$22,Scenarios.New!$A$1:$M$211,IF(MATCH(Output!$A35,Scenarios.New!$A$1:$M$1,0)=2,FALSE)) 

我想VLOOKUP的B22如果Output35等于2

enter image description here

enter image description here

因此,如果操作不为= 2,则VLOOKUP。有任何想法吗?谢谢!

enter image description here

+0

MATCH返回匹配的相对位置,所以除非B1中的“操作编号”将始终返回false或0并且“0”不能成为VLOOKUP中的第三个标准。你想要的是和INDEX/MATCH匹配多列的地方。谷歌,你应该得到很多例子。 –

回答

0

你定义它周围的其他方法。你应该检查,如果条件为真,再如果这是真的......“VLOOKUP(......)”,如果不是,任何你想要的。试试看,我认为它应该做你想做的。

= IF(MATCH(Output!$ A35,Scenarios.New!$ A $ 1:$ M $ 1,0)= 2,FALSE),VLOOKUP(B $ 22,Scenarios.New!$ A $ 1:$ M $ 211 )

+0

谢谢马丁!它说太少的参数,所以它不能执行.. –

+0

是啊deffinitelly有太少的参数...但功能的定义是有点模糊...有什么理由你为什么使用匹配? 你为什么不尝试... = IF(B35 = 2,VLOOKUP(B $ 22 Scenarios.New $ A $ 1:$ M $ 211 COLUMNARGUMENT,FALSE) –

+0

检查我的新形象,这个问题我我面对的是,有时我有不止一个动作,所以当我查找数字4,例如,会忽略第二个4,我会错过一些信息 –