欧拉004 - Excel。为什么这个数组没有找到最大的palidrome?

时间:2016-07-22 09:20:39

标签: arrays excel max

=MAX(B2:AHQ901*--AND(LEFT(B2:AHQ901,1)=RIGHT(B2:AHQ901,1),MID(B2:AHQ901,2,1)=MID(B2:AHQ901,5,1),MID(B2:AHQ901,3,1)=MID(B2:AHQ901,4,1)))

在Excel 2013中尝试Euler挑战004。 我已经设置了一个简单的电子表格,它汇总了所有3位数字。 上面的数组在此电子表格中找到最大数量,但是返回#value。 有什么建议吗?

1 个答案:

答案 0 :(得分:1)

如果该公式返回#VALUE!作为数组公式,则B2:AHQ901中的某个位置是非数字值。

但是在数组上下文中使用AND也存在问题。将首先使用整个数组评估AND。对每个数组元素进行 not 评估。因此,如果整个数组中只有一个比较为false,则整个AND将为false。

应该是:

{=MAX(IF(ISNUMBER(B2:AHQ901),B2:AHQ901)*
(LEFT(B2:AHQ901,1)=RIGHT(B2:AHQ901,1))*
(MID(B2:AHQ901,2,1)=MID(B2:AHQ901,5,1))*
(MID(B2:AHQ901,3,1)=MID(B2:AHQ901,4,1)))}