我有一列数字(P 列),以十亿和百万为单位,例如 2.12B(代表 21.2 亿)、887.99M(代表 8.8799 亿)。数据是从互联网上复制粘贴的。需要帮助用公式将上述示例转换为包含四舍五入到千位的数据的相同单元格,并将数字中的句号替换为逗号作为分隔符,例如 2.12B 的结果为 2,120,000,887.99M 的结果为 887,990。我想也许条件格式最适合,因为该列将来会有新数据被复制粘贴,需要返回上述结果。非常感谢。
答案1
在问题 1进入:
=--MID(P1,1,LEN(P1)-1)*(IF(RIGHT(P1,1)="M",1000000,(IF(RIGHT(P1,1)="B",1000000000,1))))
并向下复制:
如果你需要转换在同一个牢房里,那么就需要一个宏:
Sub Konverter()
Dim r As Range, v As String, s As String
For Each r In Columns(16).SpecialCells(2)
v = r.Text
s = Right(v, 1)
Select Case s
Case "M"
r.Value = 1000000 * CDbl(Mid(v, 1, Len(v) - 1))
Case "B"
r.Value = 1000000000 * CDbl(Mid(v, 1, Len(v) - 1))
Case Else
r.Value = CDbl(v)
End Select
Next r
End Sub
答案2
我手头没有 Excel,无法发布可行的解决方案,但您需要以下内容:
- MID - 用于将数字与 B 或 M 分开的函数
- LEN - 返回字符串长度的函数
- SUBSTITUTE - 用逗号替换点的函数
最终结果应类似于: =SUBSTITUTE( MID(A1,1,LEN(A1)-1), ".", "," ) * IF( MID(A1,LEN(A1)-1,LEN(A1))="M", 1000000, 10000000000 )
我可能会对某些参数进行错误判断,而且我正在处理单元格 A1 - 您应该使用一些值进行测试,并调整示例以满足您的需要。
一旦您将此公式拖到列上,它将适用于所有未来的数据。