Excel Feet To Inches - Excel-Tipps

Inhaltsverzeichnis

Update März 2017

Dan Ashby verfügt über eine verbesserte Fuß-und-Zoll-in-Excel-Funktion.

Ich habe eine Excel-Tabelle mit einer Spalte mit Längen im Format 12 '6 7/8 ". Wie kann ich Excel verwenden, um diese in Dezimalfuß umzuwandeln? Ich möchte die Spalte nicht in zwei Teile aufteilen Kann ich in Excel wieder in Fuß und Zoll konvertieren?

Die unten gezeigte benutzerdefinierte Funktion füße () verwendet ein Textfeld in dem von Ihnen beschriebenen Format und konvertiert es in Dezimalfüße.

Die benutzerdefinierte Funktion LenText konvertiert eine Dezimalzahl von Fuß in ein Textfeld, in dem Fuß, Zoll und Bruchteil Zoll auf 1/32 "genau angezeigt werden.

So geben Sie die benutzerdefinierte Funktion ein:

  • Starten Sie den VB-Editor mit Alt-F11.
  • Einfügen> Modul.
  • Einfügen> Vorgehensweise.
  • Geben Sie als Namen der Prozedur Fuß ein und geben Sie an, dass es sich um eine Funktion handelt.
  • Kopieren Sie dann den folgenden Code:

    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
  • Wiederholen Sie diesen Vorgang für die Funktion LenText. Verwenden Sie diesen Code:

    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

Spalte A zeigt den Originaltext. Spalte B konvertiert alle Werte, die Fuß, Zoll und / oder Bruchteil Zoll enthalten, korrekt in Fuß.

Beachten Sie, dass der Wert Zoll angenommen wird, wenn Sie das Fußzeichen nicht angeben. (Reihe 12). Wenn der Bruchteil der Zoll nicht gültig ist, wird Wert! wird zurückgegeben (Zeile 13).

Hinweis: Dank an Dale Richmond aus Kansas City, der im Oktober 2007 ein Update bereitgestellt hat, um eine Antwort von 1 Fuß 12 Zoll zu verhindern, wenn eine Zahl größer als 1,999 an die Funktion übergeben wird.

Interessante Beiträge...