【问题标题】:index match returns 0 for blank cell, want it to be "-"索引匹配为空白单元格返回 0,希望它是“-”
【发布时间】:2017-09-08 18:25:00
【问题描述】:

我已经看了一遍,尝试了很多不同的东西,但都不起作用。

我可以得到显示- 的错误,但我也希望一个空白单元格返回-

现在空白单元格正在返回0

如果有帮助,空白单元格会出现在 $C$6:$DD$50 部分中。

=IFERROR(INDEX('Foundation Plates'!$C$6:$DD$50,MATCH($C9,'Foundation Plates'!$B$6:$B$50,0),MATCH(D$8,'Foundation Plates'!$C$5:$DD$5,0)),"-")

【问题讨论】:

  • 当你没有得到零时,公式会返回什么样的值,数字还是文本?
  • 考虑接受=Index(...) & “” 答案。这样做更好,因为您不需要像当前接受的答案那样重复公式

标签: excel formula


【解决方案1】:
=Index(...) & “”

它将 0(空白值)转换为空字符串。

【讨论】:

  • 这应该是推荐的答案
  • 非常流畅!非常感谢。你能分享一下你是怎么知道这样一个把戏的吗?
【解决方案2】:

您的公式返回 0,这意味着找到匹配项,但相关单元格中的值为空白或 0。 如果公式没有找到任何匹配的单元格,IFError 将对此进行处理并在这种情况下返回“-”。

要从公式单元格中隐藏零,您可以使用自定义格式来隐藏零。

选择公式单元格并根据应用于公式单元格的现有格式,使用下面给出的格式自定义它们的格式。

1) 如果公式单元格有通用格式,试试这个...

0;-0;;@

2) 如果公式单元格有货币格式,试试这个...

$#,##0.00_);($#,##0.00);

3) 如果公式单元格有日期格式,试试这个...

mm/dd/yyyy;;

如果您想在带有零的公式单元格中显示“-”而不是空白,请更改自定义格式,如下所示...

1) 0;-0;-;@

2) $#,##0.00_);($#,##0.00);-

3) mm/dd/yyyy;;-

【讨论】:

  • 这是正确的答案,它是格式问题而不是值问题。 0/Blank 和 Excel 一样。
  • @pyskell 感谢您的评论。
【解决方案3】:
 =IFERROR(IF(INDEX('Foundation Plates'!$C$6:$DD$50,MATCH($C9,'Foundation Plates'!$B$6:$B$50,0),MATCH(D$8,'Foundation Plates'!$C$5:$DD$5,0))=0,"-",INDEX('Foundation Plates'!$C$6:$DD$50,MATCH($C9,'Foundation Plates'!$B$6:$B$50,0),MATCH(D$8,'Foundation Plates'!$C$5:$DD$5,0))),"-")

这个公式是这样的:
=IFERROR(如果(索引 =0,"-",索引),"-")
它会起作用,因为它会测试索引 if = 0 结果将是“-”如果 0 它将给出相应的值

【讨论】:

  • 它的功能仍然与我的代码相同。空白单元格返回 0。错误单元格返回 -。我一定是错过了什么:(
  • 您可以使用 =IFERROR( If(Index =0,"-",Index),"-") 但它会太长,这就是为什么我试图找到更短的方法跨度>
【解决方案4】:

添加 ISBLANK 条件会实现您的目标吗?

=IF(ISBLANK(<range>),"-",<your code>)

【讨论】: