当使用公式将多个单元格的内容合并到一个单元格中时,Kris很难让Excel保留原始单元格的格式。例如,假定单元格A1和B1分别包含1和0.33。在单元格C1中,他输入以下公式:

=A1 & " : " & B1

单元格C1中的结果如下所示:

1 : 0.3333333333

生成的C1与B1(0.33)中显示的不匹配的原因是因为B1中的值实际上不是0.33。在内部,Excel将值保持为15位,因此,如果单元格B1包含诸如= 1/3的公式,则在内部将其保持为0.33333333333333。但是,您在单元格B1中看到的内容取决于单元格的格式。在这种情况下,格式可能设置为仅显示小数点后两位。

但是,有几种方法可以在单元格C1中获得所需的结果。一种方法是简单地修改您的公式,以便格式化从单元格A1和B1提取的值。例如,以下示例使用TEXT函数进行格式化:

=TEXT(A1,"0") & " : " & TEXT(B1,"0.00")

在这种情况下,将A1格式化为仅显示整数,而将B1格式化为仅显示两位小数。.您也可以使用ROUND函数获得类似的结果:

=ROUND(A1,0) & " : " & ROUND(B1,2)

另一个可能的解决方案是更改Excel如何处理工作簿中的精度。请按照下列步骤操作:

。从工具菜单中选择选项。 Excel将显示“选项”对话框。

。确保显示了计算选项卡。 (请参见图1。)

。确保选中“显示精度”复选框。

。单击确定。

现在,Excel会在其所有计算和级联中使用屏幕上显示的精度,而不是使用通常保持的全15位精度进行计算。尽管此方法对于某些用户可能是可接受的,但对于其他用户而言,它将带来比解决的问题更多的问题。您将需要确定是否可以降低精度,以便以期望的方式格式化输出。

还有另一种方法是创建您自己的用户定义函数,该函数将返回目标单元格显示的内容,而不是那里存储的内容。在这方面,以下宏将非常有用:

Function FmtText(rng As Range)

Application.Volatile     FmtText = rng.Cells(1).Text End Function

要使用此宏,您可以在工作表中使用以下公式:

=FmtText(A1) & " : " & FmtText(B1)

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(3213)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: