2016-06-21 66 views
1

以下公式按预期工作。它在列任一显示#N/A或它显示与其它表中提取的金额:IF(ISNA)不能正常工作

=INDEX('Import Invoice Upload'!K:K, 
     MATCH(VALUE(A54), VALUE('Import Invoice Upload'!C:C), 0)) 

我试图使用修改它IF(ISNA),这样我可以显示“”,而不是# N/A。

下面的公式会在它应该显示时显示“”,但它不应显示美元值,而应按上述公式进行计算。

=IF(ISNA(INDEX('Import Invoice Upload'!K:K, 
    MATCH(VALUE(A22), VALUE('Import Invoice Upload'!C:C), 0))), "", 
    INDEX('Import Invoice Upload'!K:K, 
      MATCH(VALUE(A22), VALUE('Import Invoice Upload'!C:C), 0))) 

请让我知道我错过了什么。

+0

我没有看到任何错误的公式,虽然很难与所有的鬼臼周围飞来飞去。也许'= iferror()'会更好:'= IFERROR(INDEX('Import Invoice Upload'!K:K,MATCH(VALUE(A22),VALUE('Import Invoice Upload'!C:C),0)) ,“”)' – JNevill

+0

只是好奇,Value()做了什么?另外,如果你拿出'If(IsNa(...)'而只留下'Index/Match',你会得到美元数额吗? – BruceWayne

+1

@BruceWayne它将文本强制转换为数字,所以他可以混合使用真实数字和数字作为文本存储在范围内,但为了在Match()中工作,它需要数组输入。 – teylyn

回答

1

您的第一个公式必须是数组输入(使用Ctrl-Shift-Enter)才能通过Match的Value()函数解析范围。

当您将公式包装到IF(ISNA(公式),“”,公式)中时,您还必须使用Ctrl-Shift-Enter进行确认。完成此操作后,您发布的公式将返回预期结果。

enter image description here

0

谢谢你,所有的建议。 Ctrl-Shift-Enter很有趣。我需要更多地探索,因为我无法实现它。但是,如果错误使我在正确的轨道与下面的解决方案为我工作:

=IF(ISERROR(INDEX('Import Invoice Upload'!K:K, MATCH(VALUE(A219), VALUE('Import Invoice Upload'!C:C), 0))),"",(INDEX('Import Invoice Upload'!K:K, MATCH(VALUE(A219), VALUE('Import Invoice Upload'!C:C), 0))))