我在 sheet1 中输入了日期,比如 A!15/07/2010,在另一张 sheet 中,日期范围以六个月为间隔,a1 为 01/01/2010,b1 为 30/06/2010,c1 为 15,同样有数据
我想检查 a1 中的日期与 sheet2 的日期范围,并返回 c 列中的相应值,如何使用查找和 if 函数实现它
答案1
据我理解,您的意思是 Sheet2 的不同行中有许多日期范围。
工作表2看起来应该是这样的。
| A | B | C
--+------------+--------------+------
1 | 1/1/2010 | 30/6/2010 | 15
2 | 1/7/2010 | 31/12/2010 | 25
3 | 1/1/2011 | 30/6/2011 | 35
4 | 1/7/2011 | 31/12/2011 | 45
正如你提到的,日期范围是 6 个月的间隔,你可以在工作表1。
| A | B
--+-------------+-------------------------------
1 | 15/7/2010 | =VLOOKUP(A1,Sheet2!A1:C4,3)
在此解决方案中,Sheet2!B:B
未被引用。Sheet1!B1
实际上是在查找Sheet2!A:A
小于Sheet1!A1
(15/7/2010) 的值。由于 1/1/2010 小于 15/7/2010,因此结果是二十五。
笔记:必须对 Sheet2 进行排序才能使该VLOOKUP
函数正常工作。
参考: http://www.techonthenet.com/excel/formulas/vlookup.php
答案2
这应该可以做到(写入时给出默认值为零):
=IF(A1>Sheet2!A1,IF(A1<Sheet2!B1,Sheet2!C1,0),0)
答案3
尝试这个:
=SUMPRODUCT(--(Sheet2!A:A>=Sheet1!A1),--(Sheet2!B:B<=Sheet1!A1),Sheet2!C:C)
使用 Wilson 对此示例的模拟,此公式将进入 Sheet1!B1。