Excel单元格转换教程 – 转换单位、文字和数字、货币、时区等
在Excel中处理数据时,有些情况下您可能需要对单元格进行一些数据转换,比如转换单位、转换货币、转换时区等。
转换单位
在大多数情况下,当我们需要将一个数值从一个度量单位转换为另一个度量单位时,我们将利用CONVERT函数。然而,对于某些您尝试进行的单位转换,CONVERT函数将无法正常运行。
步骤1
您可以使用CONVERT函数将范围中指定的英寸分别转换为相应的英尺、厘米和毫米的值。
步骤2
有许多选择用于测量的单位。要查看属于每个类别的单位,并可与CONVERT函数的“from unit”和“to unit”参数一起使用的单位,请分别键入“from unit”和“to unit”。
=CONVERT(number, from_unit, to_unit)
其中,
- number - 必须转换的数值。
-
from_unit - 数字的初始测量单位。
-
to_unit - “number”将被转换的单位
英寸到毫米的转换
选择一个单元格(假设此示例使用C2),然后将下面提供的公式粘贴或键入该单元格,然后按Enter键。首先,选择包含该结果的单元格,然后使用自动填充处理器向下移动它。这将带出其余的结果。
=CONVERT(A2,"in","mm")
步骤3
选择一个单元格(假设此示例使用D2),然后将下面提供的公式粘贴或键入该单元格,然后按Enter键。首先,选择包含该结果的单元格,然后使用自动填充处理器向下移动它。这将带出其余的结果。
=CONVERT(A2,"in","cm")
步骤4
选择一个单元格(假设此示例使用E2),然后将下面提供的公式粘贴或键入该单元格,然后按Enter键。首先,选择包含该结果的单元格,然后使用自动填充处理器向下移动它。这将带出其余的结果。
=CONVERT(A2,"in","ft")
文字和数字
如果您想将数字显示为英语单词,那么下面的用户定义函数可能会对您有用。
步骤1
按住Alt键,同时按下F11键,即可启动Microsoft Visual Basic for Applications窗口;或者转到 开发人员 菜单并选择 Visual Basic 。
然后,它将打开 Microsoft Visual Basic for Applications 。然后转到 插入 并选择 模块 。
然后复制并粘贴以下VBA代码。
Function NumberstoWords(ByVal MyNumber)
'20220516由Extendoffice更新
Dim xStr As String
Dim xFNum As Integer
Dim xStrPoint
Dim xStrNumber
Dim xPoint As String
Dim xNumber As String
Dim xP() As Variant
Dim xDP
Dim xCnt As Integer
Dim xResult, xT As String
Dim xLen As Integer
On Error Resume Next
xP = Array("", "千", "百万", "十亿", "万亿", " ", " ", " ", " ")
xNumber = Trim(Str(MyNumber))
xDP = InStr(xNumber, ".")
xPoint = ""
xStrNumber = ""
If xDP > 0 Then
xPoint = "点"
xStr = Mid(xNumber, xDP + 1)
xStrPoint = Left(xStr, Len(xNumber) - xDP)
For xFNum = 1 To Len(xStrPoint)
xStr = Mid(xStrPoint, xFNum, 1)
xPoint = xPoint & GetDigits(xStr) & " "
Next xFNum
xNumber = Trim(Left(xNumber, xDP - 1))
End If
xCnt = 0
xResult = ""
xT = ""
xLen = 0
xLen = Int(Len(Str(xNumber)) / 3)
If (Len(Str(xNumber)) Mod 3) = 0 Then xLen = xLen - 1
Do While xNumber <> ""
If xLen = xCnt Then
xT = GetHundredsDigits(Right(xNumber, 3), False)
Else
If xCnt = 0 Then
xT = GetHundredsDigits(Right(xNumber, 3), True)
Else
xT = GetHundredsDigits(Right(xNumber, 3), False)
End If
End If
If xT <> "" Then
xResult = xT & xP(xCnt) & xResult
End If
If Len(xNumber) > 3 Then
xNumber = Left(xNumber, Len(xNumber) - 3)
Else
xNumber = ""
End If
xCnt = xCnt + 1
Loop
xResult = xResult & xPoint
NumberstoWords = xResult
End Function
Function GetHundredsDigits(xHDgt, xB As Boolean)
Dim xRStr As String
Dim xStrNum As String
Dim xStr As String
Dim xI As Integer
Dim xBB As Boolean
xStrNum = xHDgt
xRStr = ""
On Error Resume Next
xBB = True
If Val(xStrNum) = 0 Then Exit Function
xStrNum = Right("000" & xStrNum, 3)
xStr = Mid(xStrNum, 1, 1)
If xStr <> "0" Then
xRStr = GetDigits(Mid(xStrNum, 1, 1)) & "百"
Else
If xB Then
xRStr = "零"
xBB = False
End If
End If
If Mid(xStrNum, 2, 2) <> "00" Then
xRStr = xRStr & GetTenDigits(Mid(xStrNum, 2, 2), xBB)
End If
GetHundredsDigits = xRStr
End Function
Function GetTenDigits(xTDgt, xB As Boolean)
Dim xStr As String
Dim xI As Integer
Dim xArr_1() As Variant
Dim xArr_2() As Variant
Dim xT As Boolean
xArr_1 = Array("十", "十一", "十二", "十三", "十四", "十五", "十六", "十七", "十八", "十九")
xArr_2 = Array("", "", "二十", "三十", "四十", "五十", "六十", "七十", "八十", "九十")
xStr = ""
xT = True
On Error Resume Next
If Val(Left(xTDgt, 1)) = 1 Then
xI = Val(Right(xTDgt, 1))
If xB Then xStr = "零"
xStr = xStr & xArr_1(xI)
Else
xI = Val(Left(xTDgt, 1))
If Val(Left(xTDgt, 1)) > 1 Then
If xB Then xStr = "零"
xStr = xStr & xArr_2(Val(Left(xTDgt, 1)))
xT = False
End If
If xStr = "" Then
If xB Then
xStr = "零"
End If
End If
If Right(xTDgt, 1) <> "0" Then
xStr = xStr & GetDigits(Right(xTDgt, 1))
End If
End If
GetTenDigits = xStr
End Function
Function GetDigits(xDgt)
Dim xStr As String
Dim xArr_1() As Variant
xArr_1 = Array("零", "一", "二", "三", "四", "五", "六", "七", "八", "九")
xStr = ""
On Error Resume Next
xStr = xArr_1(Val(xDgt))
GetDigits = xStr
End Function
查看下面的屏幕截图。
步骤2
选择一个空白单元格,例如C2。输入以下公式后按Enter键 ŌłÆ
=NumberstoWords(C2)
步骤3
选择此结果单元格后,拖动AutoFill Handle到其他结果。
结论
在本教程中,我们解释了如何在Excel中转换单位、文本和数字。