我一直在尝试定义名称在 Excel 中。我为单元格定义了一个名称,可以在其中输入文本或日期值,也可以将其留空。
但是,当我在另一个单元格中使用这个定义的名称时,第二个单元格会显示一个数字值,除非第一个单元格中有实际文本。
Value in first cell | Value in second cell
<blank> | 0
Some text | Some text
Date | Numeric representation of date
如何定义列的名称,以便第一个单元格中的值(无论那是什么)被展示正是如此在第二个单元格中?我是不是漏掉了什么?
编辑:
根据建议麦卡莱克斯,我重复了应用格式的实验(文本和日期作为适当的)。
结果更接近我需要的,但仍然不够好。例如,即使应用的格式适用于日期,空白文本仍显示为0
。除非诉诸如下公式(伪代码) if 0 then show blank else show text
,怎样才能修复此问题?
简短回答:
申请文本在源单元格(第一个单元格)上格式化,然后风俗目标单元格(第二个单元格)的格式:
#,##0;-#,##0;
如需日期,请申请日期源单元格和目标单元格均采用该格式。请参阅麦卡莱克斯更多细节。
答案1
你是得到价值从第一个单元格开始 - 你想要的是格式。结果与您将单元格(作为普通单元格而不是命名范围)复制到格式化为“常规”的单元格时获得的结果类似。
当 Excel 看到单元格中使用等号公式时,它会包含格式。在命名区域上使用等号时不会发生这种情况。
您可能需要借助一些复制格式的 VBA 来实现您想要的结果。
编辑:
要使复制/“相等”的单元格在源单元格为空时不显示 0,您可以使用自定义格式。选择包含错误 0 的单元格并将格式更改为自定义,然后将类型设置为:
#,##0;-#,##0;
这将设置逗号分隔符,数字不带小数,负数带减号,并将 0 值设置为空白。这可能不是理想的,但应该可以正确显示。如果您想看到小数,请将其设置为:
#,##0.##;-#,##0.##;