Excel單元格轉換教程 – 轉換單位、文字和數字、貨幣、時區等


在處理Excel中的資料時,有時您可能需要對單元格進行某些資料轉換,例如轉換單位、轉換貨幣、轉換時區等等。

轉換單位

在大多數情況下,當我們需要將數字從一個計量單位轉換為另一個計量單位時,我們將使用CONVERT函式。但是,對於您嘗試進行的一些單位轉換,CONVERT函式將無法正常工作。

步驟1

您可以使用CONVERT函式將指定範圍內的英寸分別轉換為英尺、釐米和毫米的對應值。


步驟2

測量單位種類繁多。要檢視屬於每個類別並可與CONVERT函式的“起始單位”和“目標單位”引數一起使用的單位,請分別鍵入“起始單位”和“目標單位”。

=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")


文字和數字

如果您想在Excel中將數字顯示為英文單詞,則以下使用者定義函式可能對您有用。


步驟1

要啟動Microsoft Visual Basic for Applications視窗,請按住Alt鍵的同時按F11鍵。或轉到開發工具選單並選擇Visual Basic


之後,它將開啟Microsoft Visual Basic for Applications。然後轉到插入並選擇模組

然後複製並貼上以下VBA程式碼。

Function NumberstoWords(ByVal MyNumber)
  'Update by Extendoffice 20220516
   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("", "Thousand ", "Million ", "Billion ", "Trillion ", " ", " ", " ", " ")
   xNumber = Trim(Str(MyNumber))
   xDP = InStr(xNumber, ".")
   xPoint = ""
   xStrNumber = ""
   If xDP > 0 Then
      xPoint = " point "
      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)) & "Hundred "
      Else
         If xB Then
            xRStr = "and "
            xBB = False
         Else
            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("Ten ", "Eleven ", "Twelve ", "Thirteen ", "Fourteen ", "Fifteen ", "Sixteen ", "Seventeen ", "Eighteen
   ", "Nineteen ")
   xArr_2 = Array("", "", "Twenty ", "Thirty ", "Forty ", "Fifty ", "Sixty ", "Seventy ", "Eighty ", "Ninety ")
   xStr = ""
   xT = True
   On Error Resume Next
   If Val(Left(xTDgt, 1)) = 1 Then
      xI = Val(Right(xTDgt, 1))
      If xB Then xStr = "and "
         xStr = xStr & xArr_1(xI)
      Else
         xI = Val(Left(xTDgt, 1))
         If Val(Left(xTDgt, 1)) > 1 Then
            If xB Then xStr = "and "
               xStr = xStr & xArr_2(Val(Left(xTDgt, 1)))
               xT = False
            End If
            If xStr = "" Then
               If xB Then
                  xStr = "and "
               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("Zero ", "One ", "Two ", "Three ", "Four ", "Five ", "Six ", "Seven ", "Eight ", "Nine ")
   xStr = ""
   On Error Resume Next
   xStr = xArr_1(Val(xDgt))
   GetDigits = xStr
End Function

請參見下面的螢幕截圖。

步驟2

選擇一個空白單元格,在本例中為C2。輸入以下公式後按Enter鍵:

=NumberstoWords(C2)

步驟3

選擇此單元格後,向下拖動此結果單元格的自動填充柄以訪問其他結果。

結論

在本教程中,我們講解了如何在Excel中轉換單位、文字和數字。

更新於:2022年9月10日

瀏覽量:138

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.