我在设置一个以多个条件连接我的两张纸的功能时遇到了问题。
我希望在飞行列中发生以下情况:
IF sheet1.product = sheet2.product AND
sheet1.date >= sheet2.start date AND
sheet1.date <= sheet2.end date THEN
sheet2.flight
我无法连接和vlookup,因为我正在寻找一系列日期,我不能使用if(和(因为我需要我的&#39; value_if_true&#39;是动态的。
达到我试图解释的最佳方案是什么?
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(&#39;航班时刻表&#39;!$ F $ 3:INDEX(&#39;航班时刻表&#39;!F:F,MATCH(1E + 99,&#39;航班时刻表&#39; ; F:F)),MATCH(1,IF((A2&gt; =&#39;飞行时间表&#39;!$ B $ 3:INDEX(&#39;飞行时间表&#39;!B:B,MATCH( 1E + 99,&#39;航班时刻表&#39;!F:F)))(A2 <=&#39;航班时刻表&#39;!$ C $ 3:INDEX(&#39;航班时刻表&# 39;!C:C,MATCH(1E + 99,&#39;飞行时间表&#39;!F:F)))(O2 =&#39;飞行时间表&#39;!$ A $ 3: INDEX(&#39;航班时刻表&#39;!A:A,MATCH(1E + 99,&#39;航班时刻表&#39;!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
这是&#39;航班时刻表&#39;
的数据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
答案 0 :(得分: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))
正在做的事情。他们找到D列中具有数字的最后一个单元格,并自动将其设置为底部参考。因此,当工作表2上的表增长或收缩时,参考也是如此,只使用必要的计算。