Avatar billede Thomas Novice
02. december 2017 - 09:31 Der er 9 kommentarer og
2 løsninger

Slet øverste linie i tekst

Jeg har en Excel udfordring som jeg håber en på siden kan hjælpe med at løse.
En af mine Excel celler indeholder flere linjers tekst. Hvis øverste linje i teksten følger mønsteret dd.mm.åååå tt:mm ABC (f.eks. 02.12.2017 09:26 ABC) skal denne linje slettes. Efterfølgende linjer skal beholdes.

Eksempel 1:
31.11.2017 18:30 ABC
Yderligere tekst 1
Yderligere tekst 2

Skal konverteres til
Yderligere tekst 1
Yderligere tekst 2

Eksempel 2:
31.11.2017 18:30 DEF
Yderligere tekst 1
Yderligere tekst 2

Skal ende med at blive (denne linje skal bevares som den var)
31.11.2017 18:30 DEF
Yderligere tekst 1
Yderligere tekst 2

På forhånd tak for hjælpen!
Avatar billede jens48 Ekspert
02. december 2017 - 10:01 #1
Prøv med

=IF(ISNUMBER(FIND("ABC"&CHAR(10);A2));RIGHT(A2;LEN(A2)-FIND(CHAR(10);A2));A2)

På dansk

=HVIS(ER.TAL(FIND("ABC"&TEGN(10);A2));HØJRE(A2;LÆNGDE(A2)-FIND(TEGN(10);A2));A2)
Avatar billede Thomas Novice
02. december 2017 - 10:21 #2
Virker. Fantastisk. En enkelt ting:
Den returnerer "Yderligere tekst 1Yderligere tekst 2" i én linje. Kan den beholde det i to linjer som i den oprindelige tekst?

En anden ting:
Hvis cellen indeholder
31.11.2017 18:30 ABC
Yderligere tekst 1
Yderligere tekst 2
10.09.2017 14:45 ABC
Yderligere tekst 1
Yderligere tekst 2
03.04.2017 16:42 ABC
Yderligere tekst 1
Yderligere tekst 2

Kan den så slette alt fra anden gang der står dd.mm.åååå tt:mm, så følgende returneres:
31.11.2017 18:30 ABC
Yderligere tekst 1
Yderligere tekst 2
(alt under er fjernet)
Avatar billede jens48 Ekspert
02. december 2017 - 11:19 #3
Dit første problem er blot et spørgsmål om formateringen af cellen. Sæt den til at acceptere ombrydning af teksten. Det andet problem skal jeg lige tænke over
Avatar billede jens48 Ekspert
02. december 2017 - 11:41 #4
Hvis du sætter en funktion ind i et modul (Alt F11 + indsæt modul) med denne kode:

Function FindN(sFindWhat As String, _
sInputString As String, N As Integer) As Integer
Dim J As Integer
Application.Volatile
FindN = 0
For J = 1 To N
FindN = InStr(FindN + 1, sInputString, sFindWhat)
If FindN = 0 Then Exit For
Next
End Function

kan det lade sig gøre med denne formel:

=LEFT(A2;findn(CHAR(10);A2;3))

På dansk:

=VENSTRE(A2;findn(TEGN(10);A2;3))
Avatar billede Thomas Novice
02. december 2017 - 12:50 #5
Tak for din løsning det virker fint når teksten står i celle A2.
Hvis jeg kopierer teksten til celle A1 og indsætter
=VENSTRE(A1;findn(TEGN(10);A1;3))
returnere den blot en tom celle.
Gør jeg noget forkert?
Avatar billede Thomas Novice
02. december 2017 - 13:02 #6
Glem mit spørgsmål ovenfor. Jeg har fået løst det.
Efter at have indsat funktionen, kan jeg ikke få
=HVIS(ER.TAL(FIND("ABC"&TEGN(10);A2));HØJRE(A2;LÆNGDE(A2)-FIND(TEGN(10);A2));A2)
til at virke.
Gør jeg noget forkert?
Avatar billede jens48 Ekspert
02. december 2017 - 16:13 #7
Hvad svar giver den? Husk at der er to forskellige løsninger: Det der løser det oprindelige problem, og det der løser det problem du formulerer i #2. Hvilket af dem ønsker du at få løsning på?
Avatar billede Thomas Novice
02. december 2017 - 17:36 #8
Løsning #2 virker fint. Løsning #1 (fjernelse af linjen med formatet dd.mm.åååå mm:tt ABC) kan jeg ikke få til at virke sammen med løsning #2. Der kommer ingen fejlmeddelelse, linjen med ovenstående format fjernes ikke.
Jeg har behov for een løsning der løser #1 og #2.
På forhånd tak!
Avatar billede jens48 Ekspert
02. december 2017 - 18:01 #9
Hvis du kombinerer de to formler bliver det til:

=HVIS(ER.TAL(FIND("ABC"&TEGN(10);VENSTRE(A2;findn(TEGN(10);A2;3))));HØJRE(VENSTRE(A2;findn(TEGN(10);A2;3));LÆNGDE(VENSTRE(A2;findn(TEGN(10);A2;3)))-FIND(TEGN(10);VENSTRE(A2;findn(TEGN(10);A2;3))));VENSTRE(A2;findn(TEGN(10);A2;3)))
Avatar billede jens48 Ekspert
02. december 2017 - 18:16 #10
Glem mit seneste svar. Det virker kun, hvis der er mere end 3 linier i cellen. Prøv i stedet med 2 kolonner. I B2 skrives:

=HVIS(findn(TEGN(10);A2;3)>0;VENSTRE(A2;findn(TEGN(10);A2;3));A2)

Og i C2 skrives:

=HVIS(ER.TAL(FIND("ABC"&TEGN(10);B2));HØJRE(B2;LÆNGDE(B2)-FIND(TEGN(10);B2));B2)

Og kopier nedefter

Hvis du ønsker at kombinere det til en formel, bliver den lidt stor:

=HVIS(ER.TAL(FIND("ABC"&TEGN(10);HVIS(findn(TEGN(10);A2;3)>0;VENSTRE(A2;findn(TEGN(10);A2;3));A2)));HØJRE(HVIS(findn(TEGN(10);A2;3)>0;VENSTRE(A2;findn(TEGN(10);A2;3));A2);LÆNGDE(HVIS(findn(TEGN(10);A2;3)>0;VENSTRE(A2;findn(TEGN(10);A2;3));A2))-FIND(TEGN(10);HVIS(findn(TEGN(10);A2;3)>0;VENSTRE(A2;findn(TEGN(10);A2;3));A2)));HVIS(findn(TEGN(10);A2;3)>0;VENSTRE(A2;findn(TEGN(10);A2;3));A2))
Avatar billede Thomas Novice
02. december 2017 - 19:40 #11
Det virker nu. Tusind tak for hjælpen Jens48.
Du har været en stor hjælp!!!
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
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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