簡體   English   中英

VBA Excel-根據不同范圍的單元格中的結果求和一定范圍的單元格

[英]VBA Excel - Summing a range of cells based on result in a different range of cells

我正在嘗試基於一組預先注冊的歷史數據在excel中創建預測功能。 我是VBA的新手,無法執行此功能。

我有三個范圍:

  • 范圍1列出一年中的每一天。 所有單元格都以“日期”的形式格式化。
  • 另一個名為“ C”的工作表上的范圍2也列出一年中的每一天。 所有單元格都以“日期”的形式格式化。
  • 工作表“ C”上的范圍3包含在范圍2中提到的當年特定日期實際實現的美元價值。

需求:

該函數應采用3個不同的變量,它們是3個不同的范圍。 函數應首先“ LOOKUP ”所選單元格的月份和年份,並將其與范圍二中單元格的月份和(-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

但是我無法嵌套查詢並匯總值。

您不需要VBA。

閱讀 SUMPRODUCT()函數- 是一個很好的解釋

總結您要發現的問題:

  1. 如果Range2中的單元格的YEAR(reference_cell)-1YEAR(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) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM