Excel SUMPRODUCT和ROW函数错误

我不断收到#NAME? 错误与此function:

=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))) 

谢谢你的帮助!

您的问题“可能导致此问题的正确答案是: 缺less故障排除

问为什么一个公式不工作,没有分享它正在查看的数据,或自定义函数的代码,就好像我打电话给你,说“这是什么颜色? …你不知道我在问什么(即使你知道什么颜色)。

故障排除

您的问题标题表明问题是[SUMPRODUCT]或[ROW]。 我只能假设这些术语是随机select的

  • 你没有说明你为什么怀疑这些function
  • 解释为什么这些比在ROW,COMBIN甚至自定义函数[EulerPhi]等公式中的其他问题还要多。
  • 自发布几分钟后,您还没有检查回答有关您的post的问题。

故障排除步骤

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

  1. 确认问题确实存在。
  2. 隔离问题的原因。
  3. 纠正问题的原因。
  4. 确认问题已被纠正。
  5. 跟进,以防止未来的问题。

你在第一步停了下来。 即使下一步

  1. Stack Overflow上将问题行作为一个问题发布。

。 。 。 你仍然不能期望一个可靠的解决scheme,因为没有人有步骤2,3和4所需的信息。(另外,这不是SO的目的,请参阅参观 。

隔离问题

通常情况下,我不会花这么多时间在“无人值守”的问题上,缺less解决问题所需的信息,但是我logging了我的故障排除步骤,这只是一个部分的例子。

为了说明的目的,我把这个分成了25个公式部分。 (15没有重复)。 显然在检查这样一个简单的公式时没有必要去这个范围。

故障排除步骤

(在这里下载工作表的副本。)

因此,我不知道问题所在: – A5的值 – B5的值 – ROW(1:24)的内容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) 

(这些公式只是图片的副本,删除了重复项。)

在这一点上,你将会解决这个问题,或者至less有一个具体的问题要问。 请阅读关于需要包含哪些示例信息的提示: 如何创build最小化,完整和可validation的示例 。

适当的故障排除方法似乎很耗时,但是通过练习消除过程会更快,并且从长远来看将会节省大量的时间和挫折(对于自己和其他人)。