Print side | Luk vindue

Fjerne tekst ved hentning af data

Udskrevet fra: Dansk Regneark Forum
Kategori: Hjælp til regneark.
Forum navn: Formler
Forum beskrivelse: Hjælp til formler i regneark og/eller brugen af disse.
Web-adresse: https://forum.excel-regneark.dk/forum_posts.asp?TID=131
Udskrevet den: 05.Dec.2024 kl. 03:44


Emne: Fjerne tekst ved hentning af data
Besked fra: Søren 34
Emne: Fjerne tekst ved hentning af data
Posteringsdato: 11.Nov.2010 kl. 10:59
Disapprove Jeg har et problem med et regneark (excel 2007), som henter data fra nettet. Når der hentes data fra den hjemmeside, som jeg skal bruge tal fra, henter excel også tekst fra hjemmesiden og sætter det ind i samme celle, som tallet. I det her tilfælde drejer det sig om kursmål på forskellige aktier og excel henter så samtidig tekst, eksempel "gns. 100,33 kr.". Teksten kan jeg fjerne med guiden "Tekst til kolonner" under data, da der ellers går kage i de beregninger, som jeg senere skal lave på tallet. Men, men, når arket opdateres med "Opdater alle" under data, så henter excel igen teksten ned, så der går kage i alle mine beregninger og diagrammer. Kan det virkelig være rigtigt at der ikke findes en formel til at fjerne tekst fra talværdier, så man kan lave beregninger på tallet?



Svar:
Besked fra: Allan
Posteringsdato: 11.Nov.2010 kl. 14:44
Hej Søren,
 
Jeg ved ikke om du er bekendt med VBA, for det er nok den løsning som passer bedst til din problemstilling.
Du skal bruge denne kodestump, som gør arbejdet for dig.
 
For at sætte koden ind skal du:
TRYK ALT+F11
I Venstre siden af skærmen, højreklik på THISWORKBOOK, vælg 'Insert' og klik på 'Module'
Kopier koden herfra (Den blå tekst) og sæt den ind i vinduet til højre.
 
Når dette er gjort, har du en ny formel i Excel som hedder: FindTal
 
Hvis du skriver formlen: FindTal(A1) vil formlen finde tallene i cellen A1, hvis der altså er nogen Wink
 
 
Function FindTal(Celle As Range) As Double
Dim Tæller As Integer, i As Integer
Dim Tekst As String, Tal As String, Værdi As String
Tekst = Celle
    For Tæller = Len(Tekst) To 1 Step -1
        Værdi = Mid(Tekst, Tæller, 1)
        If IsNumeric(Værdi) Or Værdi = "," Then
            i = i + 1
            Tal = Mid(Tekst, Tæller, 1) & Tal
            If IsNumeric(Tal) Then
                If CDbl(Tal) < 0 Then Exit For
            Else
                Tal = Replace(Tal, Left(Tal, 1), "", , 1)
            End If
        End If
        If i = 1 And Tal <> vbNullString Then Tal = CDbl(Mid(Tal, 1, 1))
    Next Tæller
FindTal = CDbl(Tal)
End Function
 
//Allan


Besked fra: Søren 34
Posteringsdato: 12.Nov.2010 kl. 22:23
Hej Allan

Jeg kender ikke så meget til VBA, så jeg måtte prøve mig lidt frem med lidt forhindringer, sådan som at arket skal være en makrobaseret filtype, men til min forbløffelse ser det ud til at virke. En noget komplikatet løsning på et rimeligt simpelt problem, men skidt med det, bare det virker.

Tak for hjælpen.

Med venlig hilsen
Søren


Besked fra: Allan
Posteringsdato: 12.Nov.2010 kl. 22:57
Velbekomme Søren, og tak for din tilbagemelding.
 
Du har ret, det virker lidt vildt at man skal programmere sig ud af denne problemstilling, men desværre kan Excel ikke selv finde et tal som befinder sig midt i en tekst.
 
Jeg håber alligevel du får glæde af funktionen. Jeg kigger dog gladeligt på dit ark hvis du mener at det bør kunne gøres mere simpelt.
 
God aften
 
//Allan


Besked fra: Søren 34
Posteringsdato: 13.Nov.2010 kl. 14:44
Nja, det virker faktisk fint, når først jeg har formlen på plads, så jeg tror ikke at det kan laves ret meget simplere.

Det undrer mig dog, at der ikke findes en præinstalleret formel, som kan fjerne tekst i excel, men det gør der tilsyneladende ikke, mener jeg har haft problemet før ved kopiering af tabeller fra internettet til excel, men kan ikke lige huske om, eller hvordan jeg løste problemet (formentlig blev det løst med en del monofunktionelt arbejde...).

En enkelt anke er, at din beskrivelse ikke matchede helt i excel 2007 (ihvertfald min udgave), men med lidt improvisering gik det.

Med venlig hilsen

Søren


Besked fra: Allan
Posteringsdato: 13.Nov.2010 kl. 23:25
Hej Søren,
 
Undskyld det med beskrivelsen, Embarrassed netop programmering er svært at forklare for ikke VBA-kyndige og der kan være temmelig meget forskel på opsætningen i de forskellige versioner af Excel, men jeg er da glad for at det lykkedes for dig til sidst.
 
//Allan


-------------
MVH

Allan
https://www.excel-regneark.dk" rel="nofollow - Excel-regneark.dk - Gratis skabeloner til Excel
Få over 120 ekstra funktioner med Danmarks bedste add-in



Print side | Luk vindue