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


27

我有一个Excel 2010工作簿,其中包含许多单独的工作表。一张纸上的单元格链接到同一工作簿中两个其他工作表上的单个单元格。我使用的是直接单元格引用,该引用本质上说的是,在一张纸上的特定单元格中输入的任何值也会填充另外两张纸上的单元格。我将(=)函数与单元格引用一起使用来完成此操作。

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

我希望从属单元格保持空白,如果它们链接到的主单元格为空白。


我的公式很长,对我来说,IF构造也很难接受,这是一个很好的问题,但我也没有找到足够好的答案。{= IFERROR(INDEX(NEPŘÍMÝ.ODKAZ(“ EsZkouska”); SMALL(KDYŽ((INDEX(NEPŘÍMÝ.ODKAZ(“ EsZkouska”);; 1; 1)=“ČSN721180”)*(INDEX(NEPŘÍMÝ.ODKAZ(“ EsZkouska“);;; 9; 1)=” RC_P_B“);ŘÁDEK(NEPŘÍMÝ.ODKAZ(” EsZkouska“))-MIN(ŘÁDEK(NEPŘÍMÝ.ODKAZ(” EsZkouska“)))+ 1;”“); 1) ; 17; 1); “”)}
Vojtěch多纳尔

可以将IF构造与以下方法结合使用:stackoverflow.com/questions/22359452/…。这样你可以创建一个名为公式和IF语句中使用他们在您的简单...
Vojtěch多纳尔

Answers:


49

您需要强制Excel将单元格的内容视为文本值而不是数字,它会自动使用空白值。

=A2 & ""

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


4
哇!我简直不敢相信它是如此简单!
斯科特

1
解决方案如何处理数字输入的格式?在我看来,这个答案破坏了数字数据。当然-当单元格为空时,您不会得到0,但是您还会得到文本数据而不是数字...这在实践中是一个问题,还是您有放心的单词?
路德维格

1
它将其存储为文本。但是,当您在数学方程式中使用它时,Excel应将其转换回数字。但是实际上,您只能将此解决方案部署在已经完成其他工作表或隐藏列的幕后工作的报表上。
wbeard52 '17

18

这是三个答案:

1)出租 other.cell.reference代表您当前在=(例如  Sheet17!$H$42)之后拥有的参考公式,用替换该链接参考

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

2)将链接的单元格的“数字”格式设置为“自定义”:General;–General;

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


1
第一个选项不是最佳选择,因为它需要在单元格中两次输入(或复制)您的公式。当您有一个很长的公式,然后需要稍后编辑(或更糟糕的是调试)该公式时,这可能会特别令人讨厌。第二个选项似乎对我不起作用,但是也许我做错了。第三个绝对不是理想的,因为它的作用范围比人们可能真正想要的要广得多。真的没有更好的选择吗?
Iszi 2013年

@Iszi:关于第一种选择:我不是在说两次输入公式。按照最初的问题,我说的是一种情况,其中Q1包含一个(实际上很长)公式,并且A1包含=Q1; 我们想要更改A1=IF(Q1<>"", Q1, ""),您无需再更改。“真的没有更好的选择了吗?”嗯,这个问题已经闲置了九个月了,这就是所有已发布的内容。如果这些答案对您来说不够好,请发布新问题,或对此悬赏。
斯科特

差不多是同一回事。尽管它确实解决了必须对一个单元格中的一个公式的两个实例进行故障排除的一些麻烦问题,但通过向混合物中添加另一个(否则为不必要的)单元格或一组单元格,也使事情变得有些复杂。不幸的是,我想对此确实没有另一个“好而干净”的答案。
Iszi 2013年

我确实在不久前发布了一个相关的问题,唯一有价值的答案与这里的内容有所不同,其中涉及VBA脚本。
Iszi 2013年

4

如果您的参考数据只是数字类型(非文本)或为空,并且您可能有0,那么这是我的首选方法,只需输入一次公式即可。诚然,这是一种间接的方式,但是我认为最好是因为:

  • 您不需要多余的单元格来放入公式,然后引用第二个单元格
  • 您不需要两次键入公式
  • 此方法区分零值和空单元格
  • 不需要VBA
  • 不需要命名范围

失败:如果您需要返回文本数据,则此操作将无效。对于文本数据,我的首选方法是使用数字格式,如上面其他答案中所述。

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

在这种情况下,A1可以用任何单元格替换,包括另一个工作表,工作簿或INDIRECT()。

有关其工作原理的注释:
IFERROR()-第二个参数设置为空字符串,因此,如果发生错误,我们将得到一个空字符串。因此,我们需要确定源单元格是否为空,是否会触发错误。

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


有趣。为什么您认为需要"" & A1 & ""?何时会与A1 & ""或产生不同的结果"" & A1
G-Man说'Resstate Monica''Aug

@ G-man:正确,更可取。谢谢,我已经更新了答案。
rayzinnz 2015年

4

还有另一个技巧:将空白的单元格设置为Formula =""。请参阅此处详细说明。


这对我来说是完美的解决方案,因为我要引用的单元格少于引用它们的单元格。谢谢!

2

我也没有找到比斯科特的解决方案更好的解决方案。

但我认为,结合此处的方法,几乎​​可以忍受:

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

我简单地不使用公式来解决此问题。我要做的就是如果单元格值等于0,则将单元格有条件地设置为白色字体。


5
对于具有合法值为0的像元,这显然存在问题。
德米特里·格里戈里耶夫

此外,它还有一个缺点,那就是放慢计算速度,特别是对于大型电子表格,因为条件格式公式是“超级”易失的。(每次重新粉刷屏幕时也会对其进行评估。)
robinCTS

1

如果链接的单元格是非数字的,则可以将IF语句与ISTEXT一起使用:

=IF(ISTEXT(Sheet1!A2), Sheet1!A2, "")

1
但是,如果引用的单元格(Sheet1!A2在您的示例中为)包含数字,则将显示一个空字符串。
斯科特

是的,从这个问题尚不清楚,所引用的单元格中有哪些数据。我知道如果是数字,他会想要零。
布拉德·帕顿

1

我长期以来一直在寻找一种优雅的解决方案来解决这个问题。

我已经使用公式= if(a2 =“”,“”,a2)多年了,但是我发现它有点麻烦。

我尝试了上面的建议= a2&“”,尽管它确实可以工作,但它显示的是实际上是文本的数字,因此无法应用数字格式,并且没有统计运算有效,例如总和,平均值,中位数等,因此,如果可行您要查找的数字不符合要求。

我尝试了其他一些功能,发现我认为是迄今为止最优雅的解决方案。继续上面的示例:

= CELL(“ contents”,A2)

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


1
我刚刚在Excel 2013中尝试过此操作。如果A2为空,则显示0。您确定对格式没有做任何事情吗?
斯科特

1

Excel 2010解决方案:

  1. 打开文件”
  2. 按“选项”
  3. 点击“高级”
  4. 在此工作表的“显示选项”下,“ BBBB”
  5. 取消选中“为具有零值的单元格显示零值”框。

我在答案中的第三个选项中这样 
斯科特(Scott)

0
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

在Office 2013中为我工作的是:

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

第一组报价上没有空格,而第二组上没有空格。

希望这可以帮助


为什么在第二组括号中需要空格?效果不=IF(A2="", "", A2)好吗?那有什么不同=IF(A2<>"", A2, "")呢?那么为什么从最高投票的答案,这是给两年前有什么不同?
G-Man说'恢复莫妮卡'

-1

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

如果您希望C列引用A列,而只为该引用单元格编写公式,则可以使用该公式并将其向下拖动。

=A1

但是,在A列中可能有空白的源单元格,并且在C列中的参考单元格中需要保持空白,您可以使用它并向下拖动列。

=T(A1)

就单元格格式化而言,引用(列C)将需要是通用的。


las,这是一个棘手的问题-OP来到了超级用户(大约三年前),问了一个问题,再也没有回来。因此,我们可能永远都不知道他的处境细节。但是,Excel 主要功能(如果不是主要功能)是对数字进行运算。如果源数据(在您的示例中,列A)包含数字,则您的答案无法用数字数据填充目标单元格。
斯科特

确保包含= T()公式的单元格中的单元格格式为“常规”而不是“文本”。因为在我使用过的地方,它完全显示数字。
Will Prater 2015年

我检查了。很一般,而且空白。(Excel 2013)
Scott

问题可能是您使用的是2013年,我的回答是2010
。– Will Prater

一个答案(现已删除;仅当您的代表≥10000时才可以看到),该答案报告这在Excel 2010中也不起作用。
斯科特(Scott)

-1

解:
=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是我的参考单元。


(1)即使引用的单元格包含0或负数,也将显示空白。该问题仅在引用的单元格为时才希望链接单元格为。(2)如果您进行了明显的更改并将其更改为=IF('Wk1 … bgn & end'!C2<>"", 'Wk1 … bgn & end'!C2, ""),则它等同于已经给出了大约四次的答案。
G-Man说“恢复莫妮卡”

-1

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


1
您如何用空白填充单元格,空白是什么意思?
fixer1234 '16

对不起,我应该说一个空格字符。这样,它的单元格实际上并不是空的。源单元格中有一个空间,该空间将复制到目标单元格中​​。
约翰·阿隆索


-2

转到格式化单元格。

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


2
您能解释一下这是什么吗?谢谢。
fixer1234

1
这与我回答该问题的第二个选项(将链接的单元格的“数字”格式设置为“自定义”:General;–General;。»)的功能几乎相同,即(a)如果该值为正数,显示其整数绝对值;(b)如果该值为负数,则显示其整数绝对值,后跟-;;(c)如果值为零,则不显示任何内容;(d)如果该值不是数字,则显示其文本值。…(续)
斯科特

1
(续)…但是,此版本的缺点(即错误)是将非整数四舍五入到最接近的整数。(General为您提供了数字的默认格式,必要时包括十进制数字(但不包括-符号)。)而且;@,由于我的答案正确显示了文本值,因此最终的字符似乎是不必要的(即,这似乎是默认值)。无需修改。
斯科特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.