我有一个单元格C1,其中C1 = AVERAGE(E1:E10)。 在单元格D1中,我希望D1 = STDEVP(E1:E10)没有明确键入范围E1:E10,因为我需要多次使用此范围和其他范围。
是否有一种简单的方法来获取/引用C1中的受影响范围以供另一个单元格中的另一个函数使用?像D1 = STDEVP(AFFECTEDRANGE(C1))。
我找到了一个名为INDIRECT的函数,它大致可以实现我想要的功能,但是为了我的目的,它需要额外的列。由于我更喜欢保持我的工作表清洁和紧凑,我更喜欢上述功能。像这样的单线是否存在?
答案 0 :(得分:1)
Replace上的Range.Formula property似乎就足够了。
range("d1").formula = replace(range("c1").formula, "AVERAGE", "STDEVP", vbtextcompare)
如果您想留在工作表中并避免使用VBA,请使用命名范围。
答案 1 :(得分:0)
解决了问题:我将Jeeped的答案与this帖子的答案合并,创建了一个自定义的可重用函数,可以满足我的需求。
现在可以将=AverageToStDev(CELL)
设置为任何单元格的值。请注意,CELL必须是包含AVERAGE()函数的单个单元格才能生效。
Function AverageToStDev(MyCell As Range)
Application.Volatile
AverageToStDev = Evaluate(Replace(MyCell.Formula, "AVERAGE", "STDEVP", vbTextCompare))
End Function