Excel Feet To Inci - Tips Excel

Daftar Isi

Perbarui Maret 2017

Dan Ashby memiliki fungsi kaki-dan-inci-in-excel yang ditingkatkan.

Saya memiliki spreadsheet Excel dengan panjang kolom dalam format 12 '6 7/8 ". Bagaimana cara menggunakan Excel untuk mengubahnya menjadi kaki desimal? Saya tidak ingin membagi kolom menjadi dua bagian. Lalu, bagaimana caranya dapatkah saya mengonversi kembali ke kaki dan inci di Excel ?.

Kaki fungsi kustom () yang diperlihatkan di bawah ini akan mengambil bidang teks dalam format yang Anda gambarkan dan mengubahnya menjadi kaki desimal.

Fungsi kustom LenText akan mengubah angka desimal dari kaki menjadi bidang teks yang menampilkan kaki, inci, dan inci pecahan ke 1/32 "terdekat.

Untuk memasukkan fungsi kustom:

  • Mulai editor VB dengan alt-F11.
  • Sisipkan> Modul.
  • Sisipkan> Prosedur.
  • Ketik kaki sebagai nama prosedur dan tunjukkan bahwa itu adalah fungsi.
  • Kemudian, salin kode berikut:

    Public Function feet(LenString As String) Dim FootSign As Integer Dim InchSign As Integer Dim SpaceSign As Integer Dim FracSign As Integer Dim InchString As String Dim Word2 As String ' Copyright 1999, 2005.com LenString = Application.WorksheetFunction.Trim(LenString) 'The find function returns an error when the target is not found 'Resume Next will prevent VBA from halting execution. On Error Resume Next FootSign = Application.WorksheetFunction.Find("'", LenString) If IsEmpty(FootSign) Or FootSign = 0 Then ' There are no feet in this expression feet = 0 FootSign = 0 Else feet = Val(Left(LenString, FootSign - 1)) End If ' Handle the case where the foot sign is the last character If Len(LenString) = FootSign Then Exit Function ' Isolate the inch portion of the string InchString = Application.WorksheetFunction.Trim(Mid(LenString, FootSign + 1)) ' Strip off the inch sign, if there is one InchSign = Application.WorksheetFunction.Find("""", InchString) If Not IsEmpty(InchSign) Or InchSign = 0 Then InchString = Application.WorksheetFunction.Trim(Left(InchString, InchSign - 1)) End If ' Do we have two words left, or one? SpaceSign = Application.WorksheetFunction.Find(" ", InchString) If IsEmpty(SpaceSign) Or SpaceSign = 0 Then ' There is only one word here. Is it inches or a fraction? FracSign = Application.WorksheetFunction.Find("/", InchString) If IsEmpty(FracSign) Or FracSign = 0 Then 'This word is inches feet = feet + Val(InchString) / 12 Else ' This word is fractional inches feet = feet + (Val(Left(InchString, FracSign - 1)) / Val(Mid(InchString, FracSign + 1))) / 12 End If Else ' There are two words here. First word is inches feet = feet + Val(Left(InchString, SpaceSign - 1)) / 12 ' Second word is fractional inches Word2 = Mid(InchString, SpaceSign + 1) FracSign = Application.WorksheetFunction.Find("/", Word2) If IsEmpty(FracSign) Or FracSign = 0 Then ' Return an error feet = "VALUE!" Else If FracSign = 0 Then feet = "VALUE!" Else feet = feet + (Val(Left(Word2, FracSign - 1)) / Val(Mid(Word2, FracSign + 1))) / 12 End If End If End If End Function
  • Ulangi untuk fungsi yang disebut LenText. Gunakan kode ini:

    Public Function LenText(FeetIn As Double) ' This function will change a decimal number of feet to the text string ' representation of feet, inches, and fractional inches. ' It will round the fractional inches to the nearest 1/x where x is the denominator. ' Copyright 1999.com Denominator = 32 ' must be 2, 4, 8, 16, 32, 64, 128, etc. NbrFeet = Fix(FeetIn) InchIn = (FeetIn - NbrFeet) * 12 NbrInches = Fix(InchIn) FracIn = (InchIn - NbrInches) * Denominator Numerator = Application.WorksheetFunction.Round(FracIn, 0) If Numerator = 0 Then FracText = "" ElseIf InchIn>= (11 + (31.4999999 / 32)) Then NbrFeet = NbrFeet + 1 NbrInches = 0 FracText = "" ElseIf Numerator = Denominator Then NbrInches = NbrInches + 1 FracText = "" Else Do ' If the numerator is even, divide both numerator and divisor by 2 If Numerator = Application.WorksheetFunction.Even(Numerator) Then Numerator = Numerator / 2 Denominator = Denominator / 2 Else FracText = " " & Numerator & "/" & Denominator Exit Do End If Loop End If LenText = NbrFeet & "' " & NbrInches & FracText & """" End Function

Kolom A memperlihatkan teks asli. Kolom B dengan benar mengonversi ke kaki nilai apa pun yang berisi kaki, inci, dan / atau inci pecahan.

Perhatikan bahwa jika Anda tidak menyertakan tanda kaki, nilainya dianggap inci. (baris 12). Jika bagian pecahan dari inci tidak valid, Nilai! dikembalikan (baris 13).

Catatan: Terima kasih kepada Dale Richmond dari Kansas City yang menyediakan pembaruan pada bulan Oktober 2007 untuk mencegah jawaban 1 kaki 12 inci ketika angka yang lebih besar dari 1,999 diteruskan ke fungsi.

Artikel yang menarik...