我有一个 Excel 2010 工作簿,其中包含许多单独的工作表。其中一个工作表上的单元格链接到同一工作簿中另外两个工作表上的单个单元格。我使用直接单元格引用,本质上说,在一个工作表上的特定单元格中输入的任何值也会填充其他两个工作表上的单元格。我使用 (=) 函数和单元格引用来实现这一点。
我遇到的问题是,即使主单元格留空,从该主单元格填充的单元格也会显示 0,而不是自己保持空白。
如果链接到的主单元格是空白的,我希望下属单元格保持空白。
答案1
您需要强制 Excel 将单元格的内容视为文本值而不是数字,它会自动对空白值执行此操作。
=A2 & ""
这将强制 Excel 使该单元格引用文本值,从而防止空白转换为零。
答案2
以下是三个答案:
1)出租其他.单元格.引用=
表示您当前在(例如 )之后拥有的参考公式Sheet17!$H$42
,将该链接引用替换为
=IF(
其他.单元格.引用<>"",
其他.单元格.引用, "")
2)将链接单元格的“数字”格式设置为“自定义”:General;–General;
。
3) 在“Excel 选项”的“高级”页面的“此工作表的显示选项”部分中,清除“在具有零值的单元格中显示零”复选框。警告:这将导致工作表中的所有零消失。
答案3
如果您的参考数据只是数字类型(非文本)或空,并且可能有 0,那么这是我首选的方法,只需输入一次公式。诚然,这是一种稍微间接的方式,但我认为这是最好的,因为:
- 你不需要额外的单元格来输入公式,然后引用第二个单元格
- 你不需要输入两次公式
- 此方法区分零值和空单元格
- 不需要 VBA
- 不需要命名范围
倒台:如果您需要返回文本数据,则此方法不起作用。对于文本数据,我首选的方法是使用数字格式,如上文其他答案中所述。
=IFERROR((A1 & "") * 1,"")
在这种情况下,A1 可以被任何单元格替换,包括另一个工作表、工作簿或 INDIRECT()。
关于其工作原理的说明:
IFERROR() - 第二个参数设置为空字符串,因此如果发生错误,我们将得到一个空字符串。因此我们需要确保如果源单元格为空,则会触发错误。
数值方法:将源值字符串化,然后乘以 1。文字空字符串 * 1 = #VALUE,带有数字的字符串会自动转换为数字,不会发生错误。
答案4
我也没有找到比斯科特更好的解决方案。
但结合这里的方法,我认为它几乎是可以忍受的:
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;"---")}
我相信这比复制整个公式更好。