在excels公式计算中显示确切的数字

时间:2016-10-18 21:32:26

标签: excel vba formula

我在001,011,01,03,013(我使用自定义单元格格式00和/或000)这样的单元格中有数字,当我在它们上面使用公式显示在一个单元格中时,我得到它像这:1 0 31 2 0 7 4而不是01 00 31 02 00 007.004。我该怎么办。

截图:

https://s4.postimg.org/61q9ybj31/image.jpg

2 个答案:

答案 0 :(得分:0)

假设A1到D1的值,公式为:

=TEXT(A1,"00#")&" "&TEXT(B1,"00#")&" "&TEXT(C1,"00#")&" "&TEXT(D1,"00#")

必须在每个应该适合您使用的公式中指定格式,因为似乎每个数字都有不同的预期格式。然后,它将使用特定格式将值格式化为文本,然后将它们与空格或您在其间使用的任何分隔符连接起来。

编辑:根据评论解决方案中的每个OP澄清可以假设4列数字的2,1,3,2长度(您可以在REPT())公式内更改为:

=TEXT(A1,REPT("0",2-LEN(A1))&REPT("#",LEN(A1)))&" "&TEXT(B1,REPT("0",1-LEN(B1))&REPT("#",LEN(B1)))&" "&TEXT(C1,REPT("0",3-LEN(C1))&REPT("#",LEN(C1)))&" "&TEXT(D1,REPT("0",2-LEN(D1))&REPT("#",LEN(D1)))

此致

答案 1 :(得分:0)

这是一个UDF,它将返回与原始列中显示的结果完全相同的结果,包括格式。无需事先知道格式。

Option Explicit
Function ConcatWithFormat(rg As Range) As String
    Dim V As Variant
    Dim I As Long

ReDim V(1 To rg.Count - 1)
For I = 1 To rg.Count - 1
    V(I) = rg(I).Text
Next I

V(I - 1) = V(I - 1) & "." & rg(I).Text

ConcatWithFormat = Join(V)

End Function

enter image description here