似乎有点遗漏了,在 Excel 中创建用户定义的声明性函数而不定义宏是不容易的。我不能将 XSLM 用于企业中的艰苦战斗,但我希望能够有目的地定义一个函数。
我想做这个;
=BreakEven(C1:C20)
但我不能使用宏,虽然我可以使用“命名公式”。麻烦的是如何传递参数呢?我已经看到了一些技巧(kludgy workarounds),但不适用于 xslx。
我希望能够在另一个选项卡中定义一个 Breakeven() 函数,并在此处引用它,传入 MORE THAN 一个参数,实际上是两个范围。我确定有某种方法可以使用字符串解析,但我看不到它。
我不介意函数看起来不完全一样,只要它在单元格内进行评估并且我可以将其解析为“意图”。例如,我无法在 xlsx 中工作的这个示例( http://www.jkp-ads.com/articles/ExcelNames09.asp )使用这种语法;
=IF(ROW(D3),CellColor)
其中“cellcolor”是函数的名称,D3 是范围参数。我正在玩的另一个解决方案是使用可变参数列表以列格式定义一个函数(这是 Excel 电子表格的两行);
[Value][function][parameter1][parameter2][parameter3]
24050 BreakEven C1:C20 A1:A20
它并不漂亮,但后者的好处是它向外部读者描述了该功能。我们知道这是一个盈亏平衡函数,而如果我们输入实际公式“OFFSET,INDIRECT,SUM()()()()等”,它将无法读取/解析。当然,在这种情况下,我必须通过解析 Excel 中右侧的单元格来构造值字段,这会使值公式变得混乱,但至少它会是一个自我描述的行。
任何人都可以提出更好的方法吗?