添加动态命名范围时嵌套 IF 返回 0

添加动态命名范围时嵌套 IF 返回 0

我有一个嵌套的 IF 语句,它似乎运行良好。

=IF(INDEX(F$3:F$523,MATCH(OFFSET(Z6,0,L6-2),OUID,0))="X", OFFSET(Z6,0,L6-2,), IF(INDEX(F$3:F$523,MATCH(OFFSET(Z6,0,L6-3),OUID,0))="X", OFFSET(Z6,0,L6-3), IF(INDEX(F$3:F$523,MATCH(OFFSET(Z6,0,L6-4),OUID,0))="X", OFFSET(Z6, 0, L6-4), IF(INDEX(F$3:F$523,MATCH(OFFSET(Z6,0,L6-5),OUID,0))="X", OFFSET(Z6,0,L6-5), IF(INDEX(F$3:F$523,MATCH(OFFSET(Z6,0,L6-6),OUID,0))="X", OFFSET(Z6,0,L6-6), "ERROR")))))

其中 OUID 是一个动态命名范围,定义为:

=OFFSET('DLH'!$B$3,0,0,COUNTA('DLH'!$B:$B),1)

这按预期工作并返回相应的单元格。但是,如果我尝试将公式中的 F$3:F$523 元素替换为名为“Report”的动态命名范围,其定义为:

=OFFSET('DLH'!$F$3,0,0,COUNTA('DLH'!$F:$F),1)

它开始返回“0”,而不是单元格中的文本字符串。新的无效公式如下所示:

=IF(INDEX(Report,MATCH(OFFSET(Z5,0,L5-2),OUID,0))="X", OFFSET(Z5,0,L5-2,), IF(INDEX(Report,MATCH(OFFSET(Z5,0,L5-3),OUID,0))="X", OFFSET(Z5,0,L5-3), IF(INDEX(Report,MATCH(OFFSET(Z5,0,L5-4),OUID,0))="X", OFFSET(Z5, 0, L5-4), IF(INDEX(Report,MATCH(OFFSET(Z5,0,L5-5),OUID,0))="X", OFFSET(Z5,0,L5-5), IF(INDEX(Report,MATCH(OFFSET(Z5,0,L5-6),OUID,0))="X", OFFSET(Z5,0,L5-6), "ERROR")))))

这两个动态命名范围所做的就是允许更改行数。上面的公式位于单元格 F5 中。我认为这可能是一个问题,因为报告动态命名范围引用与原始单元格相同的列,但即使我将公式移动到不同的单元格,它仍然返回 0。

当我使用 Excel 中的评估函数并将其与工作版本进行比较时,一切似乎都运行良好,它甚至产生了正确的最终单元格引用,只是在最后阶段它失败并返回 0。

有任何想法吗?

谢谢。

答案1

我的猜测是,$B:$B 中填充的单元格数量可能与 $F:$F 中填充的单元格数量不同,从而导致 OUID 和报告长度不同,这可能会搞砸您的索引匹配功能。

相关内容