Excel SUMPRODUCT和ROW函数错误

时间:2017-11-25 23:01:53

标签: excel function

我一直在收到#NAME?此函数出错:

=1/A5*SUMPRODUCT((IF(FLOOR((GCD(A5,B4)/ROW(1:24)),1)=GCD(A5,B4)/ROW(1:24),1,0)*EulerPhi(ROW(1:24))*COMBIN(A5/ROW(1:24),B4/ROW(1:24))))

(EulerPhi是一个用户定义的函数,可以执行Euler的Totient函数)

有谁知道造成这种情况的原因是什么?或者有更好的方法从i = 1-24总结这个

=1/A5*SUMPRODUCT((IF(FLOOR((GCD(A5,B4)/i),1)=GCD(A5,B4)/i,1,0)*EulerPhi(i)*COMBIN(A5/i,B4/i)))

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

正确回答您的问题“可能导致此问题的原因是:缺少疑难解答

询问为什么公式不起作用,没有共享它正在查看的数据,或者自定义函数的代码,就像我打电话给你并说“那是什么颜色的东西?” ......你不知道我在问什么(即使你知道 )。

故障排除

您的问题标题表明问题是[SUMPRODUCT]或[ROW]。我只能假设这些术语是随机选择的,因为:

  • 您没有指明为什么您怀疑这些功能
  • 解释为什么那些问题比[ROW],[COMBIN]甚至自定义函数[EulerPhi]
  • 等公式中的其他问题更多
  • 自发布后几分钟,您没有回来回答有关您帖子的问题。
  

疑难解答步骤

     

五步故障排除过程包括以下内容:   (([来源]的详细信息)(https://www.myodesie.com/wiki/index/returnEntry/id/2956#Troubleshooting%20Steps))

     
      
  1. 确认问题确实存在。
  2.   
  3. 隔离问题的原因。
  4.   
  5. 纠正问题的原因。
  6.   
  7. 验证问题是否已得到纠正。
  8.   
  9. 跟进以防止将来出现问题。
  10.   

您已停在第1步。即使下一步

  
      
  1. 将有问题的行发布为 Stack Overflow 上的问题。
  2.   

。 。 。您仍然无法期待可靠的解决方案,因为没有其他人拥有步骤2,3和步骤2所需的信息。 4.(此外,这不是SO的目的。请参阅tour。)

隔离问题

通常情况下,我不会花太多时间在一个“无人看管”的问题上,缺少解决问题所需的信息,但我正在记录我的故障排除步骤,这只是一个例子。< / em>的

为了便于说明,我将其分解为所有25个公式部分。 (15没有重复)。当检查这么简单的公式时,显然没有必要这么做。

Troubleshooting Steps

(下载工作表here的副本。)

因此,如果不知道,我无法确定问题所在:   - A5的值   - B5的值   - ROW(1:24)的内容   - 自定义函数EulerPhi

背后的代码

。 。 。但我几乎可以保证它归结为:  1.自定义函数EulerPhi,和  2.引用范围ROW(1:24)的意外效果。

您可以通过检查此公式是否正确计算来确认我的理论:

=EulerPhi(ROW(1:24))

如果碰巧正常工作,请将以下15个论坛格式复制并粘贴到数据所在的相同工作表的空白区域。问题在于你得到的错误:

=1/A5*SUMPRODUCT((IF(FLOOR((GCD(A5,B4)/ROW(1:24)),1)=GCD(A5,B4)/ROW(1:24),1,0)*EulerPhi(ROW(1:24))*COMBIN(A5/ROW(1:24),B4/ROW(1:24))))
=A5*SUMPRODUCT((IF(FLOOR((GCD(A5,B4)/ROW(1:24)),1)=GCD(A5,B4)/ROW(1:24),1,0)*EulerPhi(ROW(1:24))*COMBIN(A5/ROW(1:24),B4/ROW(1:24))))
=SUMPRODUCT((IF(FLOOR((GCD(A5,B4)/ROW(1:24)),1)=GCD(A5,B4)/ROW(1:24),1,0)*EulerPhi(ROW(1:24))*COMBIN(A5/ROW(1:24),B4/ROW(1:24))))
=(IF(FLOOR((GCD(A5,B4)/ROW(1:24)),1)=GCD(A5,B4)/ROW(1:24),1,0)*EulerPhi(ROW(1:24))*COMBIN(A5/ROW(1:24),B4/ROW(1:24)))
=IF(FLOOR((GCD(A5,B4)/ROW(1:24)),1)=GCD(A5,B4)/ROW(1:24),1,0)*EulerPhi(ROW(1:24))*COMBIN(A5/ROW(1:24),B4/ROW(1:24))
=IF(FLOOR((GCD(A5,B4)/ROW(1:24)),1)=GCD(A5,B4)/ROW(1:24),1,0)
=FLOOR((GCD(A5,B4)/ROW(1:24)),1)
=GCD(A5,B4)/ROW(1:24)
=GCD(A5,B4)
=EulerPhi(ROW(1:24))
=COMBIN(A5/ROW(1:24),B4/ROW(1:24))
=A5
=B4/ROW(1:24)
=B4
=ROW(1:24)

(公式只是图像中的副本,删除了重复项。)

到目前为止,您要么已经解决了问题,要么至少要有一个特定问题来解决问题。请阅读有关需要在此处包含哪些示例信息的提示:How to create a Minimal, Complete, and Verifiable example

正确的故障排除方法似乎很耗时,但通过练习可以更快地完成淘汰过程,并且从长远来看,这将为您自己和他人节省大量时间和挫折。