VBA Excel - 根据不同单元格范围内的结果对一系列单元格求和

时间:2014-09-09 08:19:38

标签: excel vba excel-vba excel-formula

我正在尝试使用基于一组预先注册的历史数据在Excel中创建预测功能。我是VBA的新手,我无法完成这项功能。

我有三个范围:

  • 范围1列出一年中的每一天。所有单元格都以“date”的形式格式化。
  • 名为“C”的另一张纸上的范围2也列出了一年中的每一天。所有单元格都以“date”的形式格式化。
  • 工作表“C”上的范围3包含在范围2中提到的年份的特定日期中实现的美元值。

要求:

该函数应该采用3个不同的变量,这三个变量是三个不同的范围。函数应首先“LOOKUP”所选单元格的月份和年份,并将其与范围2中单元格的月份和(年份-1)匹配。

因此,“LOOKUP”与范围2匹配的同一行中的范围3中的单元格应该相加,然后除以计算的单元格数。

到目前为止,我已经能够创建一个名为MNAME的函数。

Function MNAME(x As Variant) As String
  Dim CurrentMonth As Date
  CurrentMonth = x
  MNAME = MonthName(Month(CurrentMonth), True)
End Function

但是我没有嵌套查找并总结值。

1 个答案:

答案 0 :(得分:1)

你不需要VBA。

SUMPRODUCT()函数

阅读 - Here是一个很好的解释

总结您想要了解的问题:

  1. 如果Range2中的单元格年份与YEAR(reference_cell)-1相同

    --> IF(YEAR(reference_cell)-1=YEAR(Range2))
    
  2. 如果Range2中的单元格月份与MONTH(reference_cell)相同

    --> IF(MONTH(reference_cell)=MONTH(Range2))
    
  3. 其中1. IS TRUE和2. IS TRUE,将Range3

    中的相应单元格相加
    --> =SUMPRODUCT(--(YEAR(reference_cell)-1=YEAR(Range2))*--(MONTH(reference_cell)=MONTH(Range2))*Range3)