0

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

 {=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 结果,即使它在第一个公式中正常工作。

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

4

2 回答 2

0

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

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

如果您想对“1”值求和,则可以将第二个公式修改为

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

这也是一个标量回报。

于 2013-06-05T12:49:57.207 回答
0

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

举例说明:
在此处输入图像描述 公式

公式: {=IF(A1:A3=B2,1,0)}意志;返回 0,除非单元格 A1 更改为 true。要更改结果以使其在任何值为真时返回真,您必须采取一些技巧......

首先,使用--将 True/False 值更改为 1/0,然后使用SUM将它们相加。由于 IF 将任何非零结果视为真,因此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
于 2013-06-05T12:51:32.413 回答