Avatar billede CHC Forsker
19. januar 2018 - 11:39 Der er 18 kommentarer og
3 løsninger

Find mailadresse i celle

Hej

Jeg har nogle kontaktoplysninger stående i kolonne A.
I en af cellerne (men ikke altid samme celle) står der f.eks. "E-mail: info@info.dk".

Herfra vil jeg gerne have kun mailadressen overført til kolonnen B1. Kan det lade sig gøre med en formel?

Vh CHC
Avatar billede finb Ekspert
19. januar 2018 - 11:49 #1
Da det varierer, om det er en "ren" mail-adresse,
og længden før og efter @ varierer,
skal du nok i vba, men
ellers til inspiration:
= hvis( er.tal(find(celleA;"@")); X tegn foran @ & @ & Y tegn efter @ )
Avatar billede CHC Forsker
19. januar 2018 - 12:50 #2
Hej Finb

Jeg får besked om, at der er et problem med denne formel.

Vh CHC
Avatar billede falster Ekspert
19. januar 2018 - 15:50 #3
(Næsten) som altid har Extend Office flere løsninger:

https://www.extendoffice.com/documents/excel/1272-excel-extract-email-address.html
Avatar billede CHC Forsker
21. januar 2018 - 14:15 #4
Hej Falster

Tak for dit svar.
Jeg har prøvet med formlen i ovenstående, men jeg får besked på, at der er et problem med denne formel. Desuden skal den ikke kun se på en enkelt celle, men på kolonne A, da mailadressen kan stå forskellige steder.

Gode forslag modtages gerne, da jeg skal hente en del data ind og dette kan lette arbejdet meget.

Jeg har faktisk behov for noget tilsvarende, for så vidt angår telefonnr. og internetadresser, skrevet som f.eks. "Telefon: 12345678" og "Webadresse: www.abc.dk"

Vh CHC
Avatar billede jens48 Ekspert
21. januar 2018 - 17:22 #5
Jeg bruger ofte en makro til at udtrække e-mail adresser fra tekst i kolonne A. Jeg har modificeret den lidt. Måske kan du bruge den. Den skriver e-mail adressen i kolonne B, ud for den celle adressen står i. Hvis den ikke finder nogen "@" skrives det i kolonne C

Sub ExtractEmailAdress()
Dim AtSignLocation As Long
    Dim i As Long
    Dim TempStr As String
    Const CharList As String = "[A-Za-z0-9._-]"
  Lastrow = Cells(65356, 1).End(xlUp).Row
x = Lastrow
For y = 2 To x
'Get location of the @
    AtSignLocation = InStr(Cells(y, 1), "@")
    If AtSignLocation = 0 Then
        Cells(y, 3) = "@ not found" 'not found
    Else
        TempStr = ""
        'Get 1st half of email address
        For i = AtSignLocation - 1 To 1 Step -1
            If Mid(Cells(y, 1), i, 1) Like CharList Then
                TempStr = Mid(Cells(y, 1), i, 1) & TempStr
            Else
                Exit For
            End If
        Next i
        If TempStr = "" Then Exit Sub
        'get 2nd half
        TempStr = TempStr & "@"
        For i = AtSignLocation + 1 To Len(Cells(y, 1))
            If Mid(Cells(y, 1), i, 1) Like CharList Then
                TempStr = TempStr & Mid(Cells(y, 1), i, 1)
            Else
                Exit For
            End If
        Next i
    End If
    'Remove trailing period if it exists
    If Right(TempStr, 1) = "." Then TempStr = Left(TempStr, Len(TempStr) - 1)
    'Check for dublicates
    If y > 4 Then
    For z = 4 To y - 1
    If Cells(z, 2) = TempStr Then
    Cells(y, 3) = "Dublicate"
    TempStr = ""
    End If
    Cells(y, 2) = TempStr
    Next
    End If
Next
End Sub
Avatar billede CHC Forsker
23. januar 2018 - 08:04 #6
Hej Jens48

Tusind tak for hjælpen, jeg har dog brug for at få adressen i celle B1 (da det så står i rækkefølge med navn, adresse, poster., by mv. , som skal kopieres til en anden destination - i den rækkefølge) og havde håbet at kunne klare det med en formel.

Ydermere har jeg behov for noget tilsvarende, for så vidt angår telefonnr. og internetadresser, skrevet som f.eks. "Telefon: 12345678" og "Webadresse: www.abc.dk".

Jeg håber, at det kan lade sig gøre.

Vh CHC
Avatar billede Dan Elgaard Ekspert
23. januar 2018 - 08:46 #7
I B-cellen skriver du:
=UDSKIFT(UDSKIFT(UDSKIFT(A1;"E-Mail";"");":";"");" ";"")

Du kan bruge samme teknik med 'Telefon', 'Webadresse', o.s.v.
Avatar billede CHC Forsker
23. januar 2018 - 09:29 #8
Hej Dan

Mange tak. Jeg har fået det til at virke for telefon og webadresse, men for e-mail står der "E-mail: xyz@xyz.dk" go der vil jeg gerne slippe for dette "e-mail: ".

Ydermere ville det være optimalt, hvis formlen kan finde oplysningerne i kolonne A og ikke en specifik celle i kolonne A. Kan det ikke lade sig gøre, så lever jeg med det.

Vh CHC
Avatar billede jens48 Ekspert
23. januar 2018 - 09:54 #9
Så er det vist noget i denne retning du har brug for:

=MIDT(INDIREKTE("A"&SAMMENLIGN("E-mail: ";VENSTRE(A1:A100;8);FALSK));9;99)

Det er en matrixformel, så husk at bruge Ctrl + Shift + Enter
Avatar billede CHC Forsker
23. januar 2018 - 10:12 #10
Hej Dan og jens48

Det blev en kombination af jeres løsninger. Tusind tak for hjælpen.

Vh CHC
Avatar billede Dan Elgaard Ekspert
23. januar 2018 - 11:57 #11
Min formel virker osse med "E-Mail:" - du må gøre noget galt...
Avatar billede Dan Elgaard Ekspert
23. januar 2018 - 12:05 #12
Er du sikker på, at du har skrevet 'E-Mail' med de rigtige bogstaver???

Der er forskel på 'E-Mail' og 'E-mail' - husk, at rette til, som din originale tekst er...
Avatar billede CHC Forsker
23. januar 2018 - 12:10 #13
Hej Dan

Det gør vel ikke nogen forskel, at jeg er Mac-bruger, så længe det ikke er VBA?

Betyder det noget, at teksten i kolonne A er formateret som et link? Næ, jeg har lige prøvet at ændre det. Hmmm....jeg får stadig "E-mail..." med i starten af cellens indhold.

Vh CHC
Avatar billede falster Ekspert
23. januar 2018 - 12:14 #14
Hvad med kolon efter "E-Mail"?
Avatar billede Dan Elgaard Ekspert
23. januar 2018 - 14:56 #15
Underligt - jeg har lige prøvet hos mig selv, og her virker det???
Well, du har alligevel fundet en løsning, så det er nok mere af 'akademisk' interesse :-)
Avatar billede CHC Forsker
23. januar 2018 - 15:26 #16
Hej Dan

Dit indlæg #12 er nok kommet på, mens jeg var i gang med at skrive #13, så den havde jeg ikke set og der har vi fejlen. Jeg havde skrevet E-Mail og ikke E-mail.

Der er til gengæld et mellemrum før e-mailadressen (altså når "E-mail:" er fjernet) - kan det fjernes?

Vh CHC
Avatar billede Dan Elgaard Ekspert
23. januar 2018 - 20:18 #17
Min formel fjerner allerede mellemrummet - prøv, at se den sidste 'UDSKIFT()'.
Avatar billede CHC Forsker
24. januar 2018 - 08:16 #18
Hej Dan

Det kan jeg godt se, men jeg har stadig et mellemrum inden e-mailadressen, det er lidt mystisk.
Jeg har også prøvet med forskellige mailadresser, men det er det samme. Og der er kun et mellemrum, så det er heller ikke det der giver udfordringer.
Avatar billede falster Ekspert
24. januar 2018 - 10:28 #19
Kunne det i stedet for et mellem rum være et blanktegn Alt+0160?

Ellers prøv at copy/paste "mellemrummet" ind i formlen fra en af cellerne.
Avatar billede finb Ekspert
24. januar 2018 - 10:34 #20
Hvad med noget:
små.bogstaver(cellen) LIKE *e*m*a*i*l*
?
Avatar billede CHC Forsker
24. januar 2018 - 10:37 #21
Hej Falster

Jeg har kopieret mellemrummet ind i formlen og nu er det væk i det færdige resultat.

Mange tak til alle for jeres indsats - det er værdsat.

VH CHC
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester