如何格式化Excel中的大数字,用两位有效数字四舍五入

我想在Excel中格式化大数字,只显示两个最重要的数字。 剩余的数字将被补充零。

例:

1234567将显示为1 200 000

1234将显示为1 200

使用格式##“000”将显示1234567为1 235 000,但这不是我正在寻找,因为它不缩放到一位数字以下的数字。 像1.2 M这样的解决scheme并不是我所寻找的。

两种示例都应该使用相同的格式。 我不想四舍五入数字,只是围绕显示的值(格式)。

也许你可以使用这里描述的条件格式: http : //www.wikihow.com/Apply-Conditional-Formatting-in-Excel

所以如果你的电话号码超过100,小于1000 – # # " 00"超过1000,小于10000 – # # " 000"

等等

编辑 – 我知道该教程是一些Mac版本的Excel,但Conditionl格式仍然存在于我的Excel2010

假设你的值是A1,下面的公式返回两个数字的正确结果

=ROUND(A1/POWER(10,LEN(A1)-2),0)*POWER(10,LEN(A1)-2)

换句话说,得到数字的数字…

LEN(A1)

得到10 ^(位数-2)

POWER(10,LEN(A1)-2)

把你的号码除以那个号码

A1/POWER(10,LEN(A1)-2),0)

舍弃这个数字来摆脱小数

ROUND(A1/POWER(10,LEN(A1)-2),0)

然后乘以这个数字来得到你的最终结果

=ROUND(A1/POWER(10,LEN(A1)-2),0)*POWER(10,LEN(A1)-2)

然后可以使用TEXT格式来获取所需的格式。 就像是…

=TEXT(ROUND(A1/POWER(10,LEN(A1)-2),0)*POWER(10,LEN(A1)-2),"# ###")

可能会满足你的需求

编辑:正如在评论中所述,如果您的原始值是在不同的单元格中,也可以使用以下函数进行格式化

=CONCATENATE(LEFT(A1,2),REPT("0",LEN(A1)-2))

如果希望以这种方式格式化的单元格包含而不是公式 ,请select单元格并运行这个微小的macros:

 Sub PhancyPhormat() Dim r As Range, i As Long, le As Long Dim DQ As String DQ = Chr(34) For Each r In Selection s = CStr(r.Value) le = Len(s) For i = 3 To le Mid(s, i, 1) = "0" Next i phony = DQ & s & DQ & ";;;" r.NumberFormat = phony Next r End Sub 

如果更改值,则需要重新运行macros。