如何格式化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。