【发布时间】:2015-02-10 06:53:05
【问题描述】:
我有一个包含 2 个工作表的工作簿。在 Sheet1 上是 ColC 中的名称列表,在 Sheet2 上的 C 列中是相同的名称列表,但与 D 列中与每个名称相关的数据几乎作为标题隔开。即
Ben 678
700
450
200
Janet 9
23
所以我需要一个 vlookup 函数来查找 ColC Sheet1 中的名称,然后在 ColC Sheet2 中找到相应的名称,并对 ColD 中该名称的值进行平均,直到 ColC 中的值发生变化(以及下一个名称出现)。每个名称的 ColD 值的数量在 1 到 100 之间变化,因此没有设置范围。
(我正在寻找一种解决方案,以在下一个出现之前计算每个名称的最后 6 个值的平均值 - 但一旦我有了结构,我可以稍后自己尝试修改它。)
我熟悉 VBA,但不是专家,这超出了我的能力范围 - 我已经尝试了几个小时,但没有运气。我也有这段代码做类似的事情(我在论坛上找到它)但只粘贴一个值,我无法对其进行足够的修改以满足我的需要 - 它使用 VBA 将公式放入特定的单元格中。 (虽然没什么用,但我认为这是一个开始)
Sub MCInternet()
'CODE OFF WEB FOR RETURNING VALUE IN COL ... AFTER A LOOKUP OF VALUE IN RANGE - DOESNT ADDRESS RANGE JUST SINGLE CELL
Dim Cll As Range
Dim lngLastRow As Long
lngLastRow = Cells(rows.count, "C:C").End(xlUp).Row
'Sheets("Unpaid List").Range("H2:H" & lngLastRow).ClearContents
For Each Cll In Sheets("Sheet2").Range("C1:C" & Sheets("Sheet2").Range("C1").End(xlDown).Row)
'Cll.Offset(, 6).Formula = "=Vlookup(" & Cll.Address & ", " & Sheets("Sheet1").Name & "!A:C,1,False)"
Cll.Offset(, 6).Formula = "=Vlookup(" & Cll.Address & ", " & Sheets(Sheets.count).Name & "!A:C,1,False)"
Next Cll
End Sub
【问题讨论】: