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

VBA Excel-根据不同单元格范围的结果对单元格范围求和,vba,excel,excel-formula,Vba,Excel,Excel Formula,我正在尝试使用基于一组预先注册的历史数据在excel中创建预测函数。我是VBA新手,无法实现此功能 我有三个范围: 范围1列出了一年中的每一天。所有单元格的格式均为日期。 另一张名为C的表格上的范围2也列出了一年中的每一天。所有单元格的格式均为日期。 表C中的范围3包含在范围2所述年份的特定日期实现的美元价值。 要求: 函数应采用三个不同的变量,即三个不同的范围。函数应首先查找所选单元格的月份和年份,并将其与范围2内单元格的月份和年份-1相匹配 因此,查找与范围2匹配的同一行中范围3中的单元格应

我正在尝试使用基于一组预先注册的历史数据在excel中创建预测函数。我是VBA新手,无法实现此功能

我有三个范围:

范围1列出了一年中的每一天。所有单元格的格式均为日期。 另一张名为C的表格上的范围2也列出了一年中的每一天。所有单元格的格式均为日期。 表C中的范围3包含在范围2所述年份的特定日期实现的美元价值。 要求: 函数应采用三个不同的变量,即三个不同的范围。函数应首先查找所选单元格的月份和年份,并将其与范围2内单元格的月份和年份-1相匹配

因此,查找与范围2匹配的同一行中范围3中的单元格应相加,然后除以已计数的单元格计数

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

函数MNAMEx作为变量作为字符串 将当前月份改为日期 当前月份=x MNAME=MonthNamenthCurrentMonth,真 端函数 但是我无法嵌套查找并汇总值。

您不需要VBA

阅读SUMPRODUCT功能-这是一个很好的解释

要总结您想要了解的问题,请执行以下操作:

如果范围2中单元格的年份与年份参考_cell-1相同

如果Range2中单元格的月份与MONTHreference\u单元格相同

其中1。是真的,2。如果为TRUE,则对范围3中的相应单元格求和


您需要使用VBA执行此操作的具体原因是什么?查看您的需求,似乎可以使用excel中提供的默认函数来完成此操作。感谢您的支持。公式不适用于IF语句。我删除了if,但最终得到了VALUE!。对不起,我一定是抄错了。我现在改了。请注意-它将True/False更改为1/0,然后可以将其与值相乘。记住命名你的范围。太好了!!这似乎是可行的,但是如果我选择一个完整的列,excel会返回值,因为我的数据有标题。有没有一个可能的解决办法?我已经把它放进了表格,它起了作用。完美&谢谢你:
--> IF(YEAR(reference_cell)-1=YEAR(Range2))
--> IF(MONTH(reference_cell)=MONTH(Range2))
--> =SUMPRODUCT(--(YEAR(reference_cell)-1=YEAR(Range2))*--(MONTH(reference_cell)=MONTH(Range2))*Range3)