如果与VLookup声明

我有麻烦设置一个函数,在多个条件下join我的两张床单。

我想在航class栏中发生以下情况:

IF sheet1.product = sheet2.product AND sheet1.date >= sheet2.start date AND sheet1.date <= sheet2.end date THEN sheet2.flight 

我不能连接和查找,因为我正在寻找一个date范围,我不能使用if(和(因为我需要我的'value_if_true'是dynamic的。

什么是最好的方法来实现我试图解释的?

 Sheet1 For flight column row 1 =IF(AND(D2=Sheet2!A2,Sheet1!A2>=Sheet2!B2,Sheet1!A2<=Sheet2!C2),Sheet2!D2) Date Start Date End Date product flight 11/29/2015 11/29/2015 12/5/2015 product1 1 11/29/2015 11/29/2015 12/5/2015 product1 11/30/2015 11/29/2015 12/5/2015 product1 11/30/2015 11/29/2015 12/5/2015 product1 12/1/2015 11/29/2015 12/5/2015 product1 12/1/2015 11/29/2015 12/5/2015 product1 12/2/2015 11/29/2015 12/5/2015 product1 12/3/2015 11/29/2015 12/5/2015 product1 12/3/2015 11/29/2015 12/5/2015 product1 12/4/2015 11/29/2015 12/5/2015 product1 12/5/2015 11/29/2015 12/5/2015 product1 11/25/2015 11/29/2015 12/5/2015 product2 11/26/2015 11/29/2015 12/5/2015 product2 11/27/2015 11/29/2015 12/5/2015 product2 11/29/2015 11/29/2015 12/5/2015 product2 11/29/2015 11/29/2015 12/5/2015 product2 11/30/2015 11/29/2015 12/5/2015 product2 11/30/2015 11/29/2015 12/5/2015 product2 12/1/2015 11/29/2015 12/5/2015 product2 12/1/2015 11/29/2015 12/5/2015 product2 12/2/2015 11/29/2015 12/5/2015 product2 12/2/2015 11/29/2015 12/5/2015 product2 12/3/2015 11/29/2015 12/5/2015 product2 12/3/2015 11/29/2015 12/5/2015 product2 12/4/2015 11/29/2015 12/5/2015 product2 12/4/2015 11/29/2015 12/5/2015 product2 12/5/2015 11/29/2015 12/5/2015 product2 12/6/2015 11/29/2015 12/5/2015 product2 Sheet2 product start date end date flight product1 11/29/2015 12/1/2015 1 product1 12/2/2015 12/5/2015 2 product2 11/25/2015 11/30/2015 1 product2 12/1/2015 12/2/2015 2 product2 12/3/2015 12/6/2015 3 

任何帮助非常感谢。 谢谢。


更改列参考时出错

获得#N / A! 当我将列引用从D更改为O时,值不可用错误。单元格引用是相同的(dataVal下拉相同来源)数据下面举例说明。 正如评论中所提到的,这个公式在我把D列的一个改变为O之前是完美的。

公式(使用Ctrl-Shift-Enter):

= INDEX('flighting schedule'!$ F $ 3:INDEX('flighting schedule'!F:F,MATCH(1E + 99,'flighting schedule'!F:F)),MATCH(1,IF((A2> B:B,MATCH(1E + 99,'flighting schedule'!F:F))) (A2 <='flighting schedule'!$ C $ 3:'flighting schedule' INDEX('flighting schedule'!C:C,MATCH(1E + 99,'flighting schedule'!F:F))) (O2 ='flighting schedule'!$ A $ 3:INDEX('flighting schedule'!A:A ,MATCH(1E + 99,'flighting schedule'!F:F))),1,0),0))

这是活动工作表上的数据:

 Date ColB ColC Start Date End Date ColF ColG ColH Coli ColJ ColK ColL ColM flight Product 11/29/2015 Emp Loc 11/29/2015 12/5/2015 Type ZZZ dim dim 4850000 2015-11 1 1524 #REF! ProductA 11/29/2015 Emp Loc 11/29/2015 12/5/2015 Type ZZZ dim dim 4850000 2015-11 691 2046191 #REF! ProductA 11/30/2015 Emp Loc 11/29/2015 12/5/2015 Type ZZZ dim dim 4850000 2015-11 3 1906 #REF! ProductA 11/30/2015 Emp Loc 11/29/2015 12/5/2015 Type ZZZ dim dim 4850000 2015-11 1152 2923570 #REF! ProductA 12/1/2015 Emp Loc 11/29/2015 12/5/2015 Type ZZZ dim dim 4850000 2015-12 2 3 #REF! ProductA 12/1/2015 Emp Loc 11/29/2015 12/5/2015 Type ZZZ dim dim 4850000 2015-12 0 49 #REF! ProductA 12/2/2015 Emp Loc 11/29/2015 12/5/2015 Type ZZZ dim dim 4850000 2015-12 0 2 #REF! ProductA 12/3/2015 Emp Loc 11/29/2015 12/5/2015 Type ZZZ dim dim 4850000 2015-12 0 433 #REF! ProductA 12/3/2015 Emp Loc 11/29/2015 12/5/2015 Type ZZZ dim dim 4850000 2015-12 642 2002431 #REF! ProductA 12/4/2015 Emp Loc 11/29/2015 12/5/2015 Type ZZZ dim dim 4850000 2015-12 2 24 #REF! ProductA 

这是“飞行时间表”的数据

 Product start date end date Budget Rate Flight ProductA 11/29/2015 11/30/2015 $10,000.00 $5.00 1 ProductA 12/01/2015 12/03/2015 $10,000.00 $5.00 2 ProductA 12/04/2016 12/06/14 $10,000.00 $5.00 3 

你想要的是一个数组公式然后:

 =INDEX(Sheet2!$D$2:INDEX(Sheet2!D:D,MATCH(1E+99,Sheet2!D:D)),MATCH(1,IF((A2>=Sheet2!$B$2:INDEX(Sheet2!B:B,MATCH(1E+99,Sheet2!D:D)))*(A2<=Sheet2!$C$2:INDEX(Sheet2!C:C,MATCH(1E+99,Sheet2!D:D)))*(D2=Sheet2!$A$2:INDEX(Sheet2!A:A,MATCH(1E+99,Sheet2!D:D))),1,0),0)) 

作为一个数组公式,在编辑公式而不是Enter或Tab时,必须使用Ctrl-Shift-Enter。 如果正确完成,Excel将在公式周围放置{}

数组公式的计算是指数的,所以我们想把公式限制在数据的范围内。 这就是所有的INDEX(Sheet2!D:D,MATCH(1E+99,Sheet2!D:D))所做的事情。 他们findD列中最后一个有数字的单元格,并将其自动设置为底部引用。 因此,随着工作表2上的表格增长或收缩,参考文献也只会使用必要的计算。

在这里输入图像说明