Excel重用另一个函数使用的范围

时间:2016-09-06 13:16:21

标签: excel function range

我有一个单元格C1,其中C1 = AVERAGE(E1:E10)。 在单元格D1中,我希望D1 = STDEVP(E1:E10)没有明确键入范围E1:E10,因为我需要多次使用此范围和其他范围。

是否有一种简单的方法来获取/引用C1中的受影响范围以供另一个单元格中的另一个函数使用?像D1 = STDEVP(AFFECTEDRANGE(C1))。

我找到了一个名为INDIRECT的函数,它大致可以实现我想要的功能,但是为了我的目的,它需要额外的列。由于我更喜欢​​保持我的工作表清洁和紧凑,我更喜欢上述功能。像这样的单线是否存在?

2 个答案:

答案 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