如何在数组函数(CSE)中使excel用户定义函数(UDF)工作?


1

我正在使用Excel 2010。

我写了一个UDF来为每个月创建一个唯一的数字: yearmonth = 12 *年(日期)+月(日期)

现在我想在CSE中使用它: {= SUM(IF(yearmonth( '方案' $Ĵ$ 3:$Ĵ$ 1000)<> yearmonth(A5),0, '方案' $ķ$ 3:!$ķ$ 1000))}

这会产生一个#value!错误。当我使用“评估公式”#value时!当excel尝试计算第一个数组时出现错误(yearmonth('plan!$ j $ 3:$ j $ 1000))。所以看来问题是在cse中使用我的udf。

udf本身可以正常工作(在cse之外)。如果我删除udf并用等式的长形式替换它 {= SUM(IF(12 * YEAR( '方案' $Ĵ$ 3:$Ĵ$ 1000)+ MONTH( '方案' $Ĵ$ 3:!$Ĵ$ 1000)<> 12 * YEAR(A5)+ MONTH( A5),0, '计划' $ķ$ 3:$!ķ$ 1000))} 这也很好。

我需要做什么?

提前致谢。


这不是您对UDF和数组公式的一般问题的答案,但它可以帮助您获得所需的总和: TEXT(date, "yyyymm") 可以用来代替你的 yearmonth 功能。它的计算结果基本上是100 *年(日期)+月(日期)的文本表示。如果您不希望处理大型数据集,并且您不希望在85年内使用此电子表格,那么您可能会放弃 TEXT(date, "yymm")
Scott

斯科特,我的问题,实际上,解决了两个问题;数组函数中使用的UDF,以及未说明的问题,压缩公式,以便在85年内更容易理解,或者由下一个人使用我创建的工具。你的解决方案非常好地解决了第二个问题,我正在使用它直到我能找到第一个问题。感谢您的帮助。
Dave
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.