串联时匹配格式(Microsoft Excel)
当使用公式将多个单元格的内容合并到一个单元格中时,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及更高版本)找到本技巧的版本: