如何根据日期将一个值引用到各种单元格?

时间:2019-05-06 07:41:25

标签: excel vba excel-formula

请看一下我所附的图片,因为它很难描述,这将使理解我的问题更加容易。

在第一个表中,我有一个产品的容量数据。容量按列中指示的日期更改,即,从2017年7月起,容量将为56,从2018年12月起,容量将从2019年10月开始,99从2019年10月开始。我之所以不写下每个月的容量,是因为我想保存列。

在第二张表中,我每个月都有。我想参考每个月的正确容量,例如到2018年12月,每个月将为56。

我一直在考虑= INDEX函数,但这似乎很复杂。有没有不用VBA就能引用这样的方法? VBA解决方案是否简单?还是我被迫在第一张表中为每个月的容量写一栏?谢谢! https://i.imgur.com/mRoBtTo.png Capacity Problem

4 个答案:

答案 0 :(得分:0)

您可以简单地使用多个IF语句将列中的月份与第一张表中给出的月份进行比较,然后输入相应月份的值。

让我们承认您的第一行是1,第一列是A,它应该显示以下内容:

= IF(D7>=$F$2; $F$3; IF(D7 >= $E$2; $E$3; IF(D7 >= $D$2; $D$3; "")))

答案 1 :(得分:0)

我看不到列和行,因此希望您可以根据以下公式正确更改它们:

= HLOOKUP(C111,$ C $ 106:$ P $ 107,2,TRUE)

  • C111是红色行上方的单元格。
  • $ C $ 106:$ P $ 107是容量表,我知道它比当前容量更大,因此您可以添加更多的列。
  • 2是容量表中的行号。
  • true是因为您不希望它是将按项目的最高顺序进行预览的确切值

enter image description here

答案 2 :(得分:0)

以上两个答案都可以很好地工作,但是我会这样- 您实际上不需要找到先前的容量。您只需在索引公式中使用近似匹配(类似于hlookup答案)

=+INDEX($B$4:$E$5,MATCH($B$9,$B$4:$B$5,0),MATCH(C9,$B$4:$E$4,1))

乘积$ B $ 9精确匹配(0),但日期C9大于或等于(1)。

$ B $ 4:$ E $ 5是容量的来源, C9:AF9日期时间轴

最终的优势是您可以对多个产品进行索引,而不仅仅是单个产品。

答案 3 :(得分:0)

能否请您尝试以下公式并提供反馈?

=IF(AND(D8>=D2,D8<E2),"56",IF(AND(D8>=E2,D8<F2),"78",IF(D8>=F2,"99")))