poimi.teksti

excel-hevijuuser

Onko mahdollista tehdä funktio, jossa on etsittävä teksti (esim. cm) ja sen EDESSÄ vaihtuva numero (esim. 5cm, 7cm ...). Eli ottaisi huomioon aloitusmerkin edessä olevan merkin? Se kyllä onnistuu, että funktio ottaa huomioon aloitusmerkin jälkeen tulevat merkit.

5

314

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • muuan_mies2

      Jos tarvitaan vain yksi numero ennen "cm" tekstiä:
      =ARVO(POIMI.TEKSTI(A1;ETSI("cm";A1;1)-1;1))

    • Tämmöinen

      Tämä ei sallii välilyönnit luvun ja yksikön välissä. Pelkkää etumerkkiä ei hyväksytä luvuksi. Desimaalierottimeksi käy sekä pilkku että piste. Niiden lukumäärää ei tarkisteta - toinen pilkku vain katkaisee luvun.

      Function HaeLuku(s As String, y As String)
         
         n = ""
         p = InStr(s, y)
         
         If p > 0 Then

            Do While Mid(s, p - 1, 1) = " "
               p = p - 1
            Loop

            Do
               nyt = Mid(s, p - 1, 1)
               Select Case nyt
                  Case "0" To "9", ".", ","
                     n = nyt n
                     p = p - 1
                  Case " ", "-"
                     n = nyt n
                     Exit Do
                  Case Else
                     Exit Do
               End Select
            Loop
            
         End If
         
         n = WorksheetFunction.Substitute(n, ",", ".")
         If n = "" Or n = " " Or n = "-" Then
            HaeLuku = CVErr(xlErrNA)
         Else
            HaeLuku = Val(n)
         End If
         
      End Function

      • tämmösen funktiohan ei palauta mitään... ;-)

        luvun tai lukujen välissä voi olla tyhjiäkin. Kyssäristä ei käy ilmi voiko olla desimaaleja yms ?

        Sub Testi()
        MsgBox HaeLuku("222227 cm")
        End Sub

        Public Function HaeLuku(s As String) As Variant
        HaeLuku = Trim(Mid(StrReverse(s), 3))
        If IsNumeric(HaeLuku) Then
        HaeLuku = StrReverse(HaeLuku)
        Else
        HaeLuku = "VIRHE"
        End If
        End Function

        Keep EXCELing
        @Kunde


      • Tämmöinen
        kunde kirjoitti:

        tämmösen funktiohan ei palauta mitään... ;-)

        luvun tai lukujen välissä voi olla tyhjiäkin. Kyssäristä ei käy ilmi voiko olla desimaaleja yms ?

        Sub Testi()
        MsgBox HaeLuku("222227 cm")
        End Sub

        Public Function HaeLuku(s As String) As Variant
        HaeLuku = Trim(Mid(StrReverse(s), 3))
        If IsNumeric(HaeLuku) Then
        HaeLuku = StrReverse(HaeLuku)
        Else
        HaeLuku = "VIRHE"
        End If
        End Function

        Keep EXCELing
        @Kunde

        Mitä tarkoitat, ettei palauta mitään? Sellainen vika siinä kyllä oli, että jos haettava luku oli jo tekstin alussa, tuli virhe. Muuten se toimii. EndSelect:in jälkeinen Loop pitää muuttaa:
        Loop Until p = 1

        Riippuen siitä, mihin tätä tarvitaan, CVErr(xlErrNA) tilalla toiminee paremmin pelkkä tyhjä "". Näin ainakin, jos funktiota käytetään kuten ao. testissä. Siis, ymmärsin tarpeen näin:

        Sub Testi()
        Dim teksti As String
        teksti="4 ffwf222f227 km wfwwfwf88cm fw"
        MsgBox HaeLuku(teksti, "km") & " km"
        ' -> 227 km
        MsgBox HaeLuku(teksti, "cm") & " cm"
        ' -> 88 cm
        End Sub


    • excel-hevijuuser

      Kiitos!

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Hetken jo luulin, että en ikävöi sinua koko aikaa

      Mutta nyt on sitten taas ihan hirveä ikävä jotenkin. Tiedätköhän sinä edes, kuinka peruuttamattomasti minä olen sinuun r
      Ikävä
      35
      7051
    2. JOKO OLETTE KUULLET, MITÄ KIURUVEDELLÄ ON SATTUNUT!

      Oletteko jo kuulleet, mitä Kiuruvedellä on sattunut, voi hyvänen aika? Aivan viime tuntien aikana olisi sattunut, jos t
      Kiuruvesi
      26
      6209
    3. Nolointa ikinä miehelle

      On ghostata nainen jonka kanssa on ollut ystävä tai ollu orastavaa tapailua pidemmän aikaa. Osoittaa sellaista moukkamai
      Ikävä
      100
      3245
    4. Outoa että Trump ekana sanoutui irti ilmastosopimuksesta

      kun Kaliforniaa riepottelee siitä johtuvat tuhoisat maastopalot. Hirmumyrskytkin ovat USA:ssa olleet tuhoisia.
      Maailman menoa
      556
      2958
    5. V*ttuu että mä haluan sua

      Jos jotain ihmistä voi kunnolla haluta, niin hän on se. Voi Luoja auta jo! Joku jeesus hjelppa mej!
      Ikävä
      60
      2887
    6. Mikä sinua eniten

      Huolestuttaa tässä tilanteessa?
      Ikävä
      58
      2433
    7. Eli jos toisen hiki haisee ns. omaan nenään siedettävältä

      Se kertoo hyvästä yhteensopivuudesta. Selvä! Olet mies minun. 🫵🥳
      Ikävä
      34
      2256
    8. Katsoitko mua yhtään

      Kun nähtiin 🥺.
      Ikävä
      33
      2114
    9. Sattuma ja muutama väärinkäsitys

      vaikuttivat siihen millaiseksi tämä kaikki muodostui. Pienet aikanaan huomaamattomat käänteet. Seuraava näytös on jo tul
      Ikävä
      32
      1893
    10. Ei ois kyllä kivaa

      Jos miestä ei kiinnostais ollenkaan minun seura. Aina huitelis ties missä tai olis omassa seurassaan. Kaikki muu ois kiv
      Ikävä
      7
      1451
    Aihe