2012-12-06 21:09:17 +0000 2012-12-06 21:09:17 +0000
27
27

在Excel 2010中引用空白单元格时显示空白

我有一个Excel 2010工作簿,其中包含一些单独的工作表。其中一个工作表中的单元格链接到同一工作簿中另外两个工作表中的各个单元格。我正在使用直接单元格引用,本质上说,无论在一个工作表中的特定单元格中输入什么值,都会填充到另外两个工作表中的单元格。我使用了单元格引用的(=)函数来完成这个任务。

我遇到的问题是,即使主单元格留有空白,从该主单元格填充的单元格也会显示0,而不是自己保持空白。

我想让下级单元格保持空白,如果它们所连接的主单元格是空白的。

Risposte (17)

51
51
51
2015-04-28 04:56:10 +0000

您需要强制 Excel 将单元格的内容作为文本值而不是数字处理,因为它对空白值会自动处理。

=A2 & ""

这将迫使Excel将该单元格引用为文本值,从而防止将空白值转换为零。

18
18
18
2012-12-06 21:30:16 +0000

这里有三个答案。

1)让other.cell.reference代表你当前=后面的参考公式(如 Sheet17!$H$42),用

=IF(other.cell.reference<>"",other.cell.reference, "")

2)将你的链接单元格的 “数字 "格式设置为 "自定义"。General;–General;.

3)在 "Excel选项 "的 "高级 "页面中,"此工作表的显示选项 "部分,清除 "在有零值的单元格中显示零 "复选框. 警告:这将导致工作表中所有的零消失。

4
4
4
2015-04-28 04:19:06 +0000

如果你的参考数据只有数字类型(非文本)或者是空的,而且你可能有0,那么这是我比较喜欢的方法,只输入一次公式。诚然,这是一种略显间接的方法,但我认为这是最好的,因为。

  • 你不需要额外的单元格来输入公式,然后引用第二个单元格
  • 你不需要输入两次公式
  • 这种方法可以区分零值和空单元格
  • 不需要VBA
  • 不需要命名范围

倒霉 。如果你需要返回文本数据,这将无法工作。对于文本数据,我的首选方法是使用上面其他答案中提到的数字格式。

=IFERROR((A1 & "") * 1,"")

A1 在这个例子中,A1 可以被任何单元格替换,包括另一个工作表、工作簿或 INDIRECT()。

关于如何工作的说明。
IFERROR() - 第二个参数被设置为空字符串,所以如果发生错误,我们会得到一个空字符串。所以我们需要确保如果源单元格为空,就会触发错误。

数字方法 。将源值字符串化,然后乘以1,字面emtpy string * 1 = #VALUE,带有数字的字符串会自动转换为数字,不会发生错误。

4
4
4
2015-06-08 10:22:15 +0000

还有一个技巧:将soucre空单元格设置为公式=""。请看详细说明

2
2
2
2014-07-25 12:35:30 +0000

我也没有找到比Scott的更好的解决方案。

但结合这里的方法,我想这几乎是可以忍受的: http://www.ozgrid.com/Excel/named-formulas.htm

假设我有这样的公式

= IFERROR( INDEX(INDIRECT("EsZkouska");
  SMALL(IF((INDEX(INDIRECT("EsZkouska");;1‌​;1)="ČSN721180")*(INDEX(INDIRECT("EsZkouska");;9;1)="RC_P_B");
  ROW(INDIRECT"EsZkouska"))-MIN(ROW(INDIRECT("EsZkouska")))+1;"");1);17;1);"")

这个公式使用条件选择从数据表中读取单元格值,并在另一个表上显示。我无法控制数据表上单元格的排列。

我进入 “插入”>“名称”>“定义",在 "工作簿中的名称 "中,我创建了新的名称 "RC/P/B"。然后在 "引用 "栏中复制我的公式(没有{}字符–这是一个数组公式)。

然后你就可以使用Scott的公式,而不必重复整个公式文本。

{=IF(RC_P_B<>""; RC_P_B;"---")}

我相信这比复制整个公式要好。

2
2
2
2014-11-09 06:28:11 +0000

我简单的不用公式来克服这个问题。我所做的只是在单元格值等于0的情况下,有条件地将单元格格式化为字体颜色为白色。

1
1
1
2015-06-11 03:35:03 +0000

我一直在寻找一个优雅的解决这个问题的方法。

多年来我一直使用公式=if(a2=“”,“”,a2),但我发现它有点麻烦。

我试过上面的建议=a2&“",虽然看起来确实有效,但它显示的数字实际上是文本,所以不能应用数字格式化,也不能进行统计运算,如和、平均、中位数等,所以如果你要找的是可操作的数字,这个不适合。

我试验了一些其他函数,找到了我认为目前最优雅的解决方案。继续上面的例子:

=CELL("contents”,A2)

返回一个可以格式化为数字的数值,当引用的单元格为空白时,它返回一个空白。由于某些原因,这个解决方案似乎没有出现在我找到的任何在线建议中,但它是

1
1
1
2017-06-22 12:20:12 +0000

Excel 2010的解决方案。

1.打开 “文件” 2. 按 “选项 ” 3. 点击 “高级 ” 4. 在 “显示选项 "下为该工作表选择 "BBBB” 5. 取消勾选 “对有零值的单元格显示零值"。

1
1
1
2012-12-06 21:30:05 +0000

如果链接的单元格是非数字单元格,你可以使用ISTEXT的IF语句:

=IF(ISTEXT(Sheet1!A2), Sheet1!A2, "")
```。
0
0
0
2018-04-22 16:42:25 +0000

我使用条件格式化,在单元格值等于零的地方,将字体格式化为与单元格背景相同的颜色。

0
0
0
2016-01-08 17:33:14 +0000
Public Function FuncDisplayStringNoValue(MyCell As Variant) As String

Dim Result As Variant

If IsEmpty(MyCell) Then

   FuncDisplayStringNoValue = "No Value"

Else
   Result = CDec(MyCell)

   Result = Round(Result, 2)

   FuncDisplayStringNoValue = "" & Result

   End If

End Function
-1
-1
-1
2015-03-17 20:24:48 +0000

在Office 2013中对我有用的是:

=IF(A2=""," ",A2)

其中第一组引号上没有空格,第二组有一个空格。

希望能帮到你

-1
-1
-1
2016-08-13 21:40:08 +0000

所有这些解决方案对我来说都太复杂了,我意识到这可能不适合所有的应用,但我只是在源字段中填入空白,而在目标字段中却得到一个空白。

-1
-1
-1
2015-07-15 15:20:22 +0000

我也有类似的问题,我想我为你找到了一个方法。它解决了我的问题。

如果你想让C列引用A列,只写一个引用单元格的公式,你会用这个方法,然后向下拖动该列。

=A1

然而,A列中可能有源单元格是空白的,需要在C列的引用单元格中保持空白,你可以使用这个并向下拖动列。

=T(A1)

至于单元格的格式,参考(columnn C)需要一般。

-1
-1
-1
2018-01-29 12:01:59 +0000

我有一个解决方案对我有用。

IF(cell reference="","",cell reference)

解释:

""等于空白或空单元格。现在我只把if转过来。如果单元格是空的,就把它变成空白,否则就使用单元格引用。

-1
-1
-1
2015-11-30 05:58:52 +0000

解决办法
=IF('Wk1 Data-replace w dt bgn & end'!C2>0, 'Wk1 Data-replace w dt bgn & end'!C2, "")

解释: 为了解决这个问题,我使用了两组If命令。

命令的第一部分: 我告诉单元格,如果参考单元格中包含数据,则显示参考单元格的内容(Excel解释为单元格的值大于0)

命令的第二部分: 我告诉它,如果没有数据,该如何处理;"“表示留空

注意:Wk1数据替换w dt bgn & end'!C2是我的参考单元格。

-2
-2
-2
2015-09-25 19:33:35 +0000

进入格式化单元格。

然后选择自定义格式,并输入以下内容:0;-0;;@