excel中的数组公式突然无法正常工作......故障排除

时间:2013-06-05 12:27:50

标签: arrays excel function if-statement

我目前正在使用此数组公式..

 {=LARGE(IF(('Data Input'!$L$3:$L$15000=$B10)*('Data Input'!$H$3:$H$15000>$C10),'Data Input'!$O$3:$O$15000,0),1)}

其中B10是文本ID,如658A和L:L是具有ID的列。    C10是日期,H:H是带日期的列。    O:O是我正在检索的#值的列。

当与ctrl,shift,enter

一起使用时,此公式适用于我的目的

当我尝试使用时会出现问题...

 {=IF('Data Input'!$L$3:$L$15000=$B10,1,0)}

它始终返回FALSE结果,即使它在第一个公式中正常工作。

改变结果的第二个公式有何不同? 这对我来说很奇怪。 谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

你的第二个公式本身就是一个数组。您只查看该返回数组中的左上角元素 - 恰好是FALSE。

你的第一个公式返回一个标量值;这就是区别。

如果您想将“1”值相加,那么您的第二个公式可以修改为

{=SUM(IF('Data Input'!$L$3:$L$15000=$B10,1,0))}

这也是一个标量回归。

答案 1 :(得分:0)

IF只是同步返回的数组的第一个值,所以只有当第一个比较为真时,它才会返回一个真值。

举例说明:
enter image description here 公式

式: {=IF(A1:A3=B2,1,0)}会;返回0,除非单元格A1更改为true。要更改结果,如果任何值为true,则返回true,你必须采取一些小技巧......

首先,使用--将True / False值更改为1/0,然后使用SUM将它们添加到一起。因为IF将任何非零结果视为true,这将导致在任何比较为真时返回1

使用新公式{=IF(SUM(--(A1:A3=B2)),1,0)}(仍然是数组公式)完成我们的示例,我们在评估中得到以下步骤:

=IF(SUM(--(A1:A3=B2)),1,0)
=IF(SUM(--(A1:A3=2)),1,0)
=IF(SUM(--({1,2,2}=2)),1,0)
=IF(SUM(--({False,True,True})),1,0)
=IF(SUM(0,1,1),1,0)
=IF(2,1,0)
=1