如何使用另一个单元格中的公式中引用的范围/参数创建公式?

时间:2018-08-06 20:55:56

标签: excel-vba excel-formula

我尝试寻找问题的答案,但很简短。我不知道所有的术语,所以它本可以摆在我的面前,但是我没有意识到,我通过了它。

我想做的只是编写一个excel函数(例如MAX),对于所述函数中使用的参数/范围,我想从另一个单元格或单元格中的函数中获取它以上(假设该函数为MIN)。它可以在VBA或非编码解决方案中。

所以它看起来像是:

单元格A1:

=MIN(C1:C100)

和单元格A2:

=MAX(CallRange(A1))

CallRange显然是假设的/虚构的函数。

编辑:

哇,我对此站点的支持感到惊讶。我以为我可能会在下个月左右的某个时候得到至少一个不相关的答案,但是所有答案都是相对的且有用的。

因为我以为我会在一段时间内没有得到答案,所以我创建了一种效果很好的变通方法:

在我创建的VBA宏中,它用于分析完整的原始数据工作表,其中的一部分创建了具有多个Min,Max,Avg的表格,该表格针对多个列(电流,电压,功率,环境)中的数据进行了显示。所以我所做的就是我编码了宏以创建命名范围(标题:Cdata,Vdata,Wdata和Amb)。我预定义了所有命名的范围,以从Wdata中偏移许多列(已定义:{{1},-2或-3),这些列我将在数据中手动定义。 因此,除了预定义的命名范围外,最初询问我的功能更改为:

第1行:=OFFSET(Wdata,0,-1) =MIN(Amb) =MIN(Cdata) =MIN(Vdata)

第2行:=MIN(Wdata) =MAX(Amb) =MAX(Cdata) =MAX(Vdata)

第3行:=MAX(Wdata) =AVERAGE(Amb) =AVERAGE(Cdata) =AVERAGE(Vdata)

最后,我唯一要做的就是打开工作表后定义Wdata。

这很好用,但是我仍然愿意接受其他任何解决方案。

谢谢大家, 扎克

2 个答案:

答案 0 :(得分:0)

OK假设该函数具有相同的参数列表且只有一对括号,则可以使用FORMULATEXT函数获取公式,然后使用文本函数提取参数(通过找到括号)。最后使用INDIRECT转换为参考。

例如上面显示的示例: enter image description here

答案 1 :(得分:0)

在VBA中,通常通过 offset 引用Excel单元格到当前单元格,例如:

myValue = ActiveCell.Offset(-1, 0).value

将引用单元格-1 row (向上),并在 same列中将其作为您当前选择的单元格。

有关更多信息,请参见https://msdn.microsoft.com/en-us/vba/excel-vba/articles/refer-to-cells-relative-to-other-cells