Претвори стопе и инче у децимале - Екцел савети

Преглед садржаја

Ажурирање марта 2017. године: Дан Асхби има побољшану функцију стопа и инча у екселу.

Имам Екцел табелу са дужином колоне у формату 12 '6 7/8 ". Како могу да користим Екцел да то претворим у децималне стопе? Не желим да колону поделим на два дела. Тада, како могу ли претворити назад у стопе и инче у програму Екцел ?.

Прилагођена функција стопала () приказана доле заузеће текстуално поље у формату који описујете и претвориће га у децималне стопе.

Прилагођена функција ЛенТект претвориће децимални број стопа у текстуално поље које приказује стопе, инче и разломљене инче на најближу 1/32 ".

Да бисте унели прилагођену функцију,

  • Покрените ВБ едитор са алт-Ф11.
  • Уметни> Модул.
  • Уметни> Поступак.
  • Унесите стопала као назив поступка и означите да је то функција.
  • Затим копирајте следећи код:
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

Поновите за функцију названу ЛенТект. Користите овај код:

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
Претвори стопе и инче у децимале

У колони А приказан је оригинални текст. Колона Б исправно претвара у стопе било које вредности које садрже стопе, инче и / или делне инче.

Имајте на уму да ако не укључите знак стопала, претпоставља се да је вредност инча. (ред 12). Ако делимични део центиметара није важећи, вредност! се враћа (ред 13).

Ажурирање: Захваљујући Далеу Рицхмонду из Канзас Ситија који је пружио ажурирање у октобру 2007. године како би спречио одговор од 1 стопа 12 инча када се функцији проследи број већи од 1.999.

Занимљиви Чланци...