我正在使用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,以及未说明的问题,压缩公式,以便在85年内更容易理解,或者由下一个人使用我创建的工具。你的解决方案非常好地解决了第二个问题,我正在使用它直到我能找到第一个问题。感谢您的帮助。
—
Dave
TEXT(date, "yyyymm")
可以用来代替你的yearmonth
功能。它的计算结果基本上是100 *年(日期)+月(日期)的文本表示。如果您不希望处理大型数据集,并且您不希望在85年内使用此电子表格,那么您可能会放弃TEXT(date, "yymm")
。