Konvertuokite pėdas ir colius į dešimtaines pėdas - „Excel“ patarimai

Turinys

Atnaujinta 2017 m. Kovo mėn.: Dan Ashby turi patobulintą „pėdų ir colių viename“ funkciją.

Turiu „Excel“ skaičiuoklę su ilgių stulpeliu, kurio formatas yra 12 '6 7/8 ". Kaip naudoti„ Excel “, kad tai paverstų dešimtainėmis pėdomis? Nenoriu padalyti stulpelio į dvi dalis. Tada kaip ar galiu „Excel“ konvertuoti atgal į pėdas ir colius ?.

Žemiau parodytos pasirinktinės funkcijos pėdos () užims aprašyto formato teksto lauką ir pavers dešimtainėmis pėdomis.

Pasirinktinė funkcija „LenText“ dešimtainį pėdų skaičių pavers teksto lauku, kuriame pėdos, coliai ir daliniai coliai bus rodomi 1/32 colių tikslumu.

Norėdami įvesti pasirinktinę funkciją,

  • Paleiskite VB redaktorių naudodami alt-F11.
  • Įterpti> Modulis.
  • Įterpti> Procedūra.
  • Procedūros pavadinime įveskite pėdas ir nurodykite, kad tai funkcija.
  • Tada nukopijuokite šį kodą:
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

Pakartokite funkciją, vadinamą „LenText“. Naudokite šį kodą:

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
Konvertuokite pėdas ir colius į dešimtaines pėdas

A stulpelyje rodomas originalus tekstas. B stulpelyje teisingai paverčiamos bet kokios vertės, kuriose yra pėdos, coliai ir (arba) trupmeniniai coliai.

Atminkite, kad jei neįtrauksite pėdos ženklo, manoma, kad vertė yra coliai. (12 eilutė). Jei trupmeninė colių dalis negalioja, reikšmė! grąžinamas (13 eilutė).

Atnaujinimas: ačiū Dale'ui Richmondui iš Kanzaso miesto, kuris 2007 m. Spalio mėn. Pateikė atnaujinimą, kad būtų išvengta atsakymo 1 pėda 12 colių, kai funkcijai perduodamas didesnis nei 1,999 skaičius.

Įdomios straipsniai...