Avatar billede scheler Novice
10. januar 2017 - 09:08 Der er 9 kommentarer og
1 løsning

SEARCH funktion

Jeg har problemer med at få skrevet min formel rigtigt, mit mål er, at den skal returnere de tal der står efter * i et givent felt, hvis der før * står et 1-tal. Jeg kan godt få den til returnere, hvis der er et 1-tal men er der et 2-tal foran *, så returnerer den en fejl, mit forsøg ser således ud:

=IF(SEARCH("1*";S3;1);MID(S3;SEARCH("1*";S3)+2;5);0)
Avatar billede acore Ekspert
10. januar 2017 - 09:35 #1
Hvad skal der returneres, hvis din tekst ikke indeholder "1*"? Ret "ikke fundet" i nedenstående formel til det, du ønsker.

Brugen af SEARCH er ok, men jeg tror du skal erstatte "1*" med "1~*". * er en wildcard character, der matcher enhver teksstreng, og du vil derfor få forkerte matches i nogle tilfælde.

Prøv med:

=IF(ISERROR(SEARCH("1~*";S3));"ikke fundet";RIGHT(S3;LEN(S3)-SEARCH("1~*";S3)-1))

Den returnerer hele strengen efter "1*" uanset om det er tal eller ej. Men måske er din formel ok, hvis du bare sætter ~ind i de to SEARCH?
Avatar billede scheler Novice
10. januar 2017 - 09:53 #2
Det hjælper ikke at sætte ~ ind i min formel, der fremkommer stadig en fejl. Hvis jeg bruger din formel, så skriver den rigtignok 2000 i feltet, men det er som tekst og jeg kan dermed ikke bruge det i en anden formel - what to do?
Avatar billede anedi Ekspert
10. januar 2017 - 09:55 #3
Prøv og se om det hjælper at gange med en:
=(IF(ISERROR(SEARCH("1~*";S3));"ikke fundet";RIGHT(S3;LEN(S3)-SEARCH("1~*";S3)-1)))*1
Avatar billede acore Ekspert
10. januar 2017 - 10:41 #4
=IF(ISERROR(SEARCH("1~*";A3));"ikke fundet";VALUE(RIGHT(A3;LEN(A3)-SEARCH("1~*";A3)-1)))
Avatar billede scheler Novice
10. januar 2017 - 10:41 #5
Formlen virker nu efter hensigten, men nogle gange har jeg i S3 kun stående 1*, når der står det, så returnerer den fejl, det kan jeg omgås ved, at skrive 1*0 i S3, hvorved den returnerer 0, er der en smartere måde?
Avatar billede ebea Ekspert
10. januar 2017 - 10:45 #6
Prøv med denne formel, hvor du f.eks. indsætter det tal som skal stå forrest i din søgestreng, i A1 (eller hvor du ønsker), hvorefter der så returneres det der står efter det tal, hvis tallet findes som start i S3. Eller indsæt tallet i din formel, istedet for A1
=MID(S3;FIND(A1;S3)+1;LEN(S3))
Avatar billede acore Ekspert
10. januar 2017 - 10:46 #7
=IF(OR(ISERROR(SEARCH("1~*";S3));LEN(S3)<3);"ikke fundet";VALUE(RIGHT(S3;LEN(S3)-SEARCH("1~*";S3)-1)))
Avatar billede acore Ekspert
10. januar 2017 - 10:47 #8
"ikke fundet" skal selvfølgelig rettes til 0
Avatar billede scheler Novice
10. januar 2017 - 12:09 #9
> EBEA, din formel giver fejl, hvis der står noget helt tredje i feltet!

>acore, din formel virker nu som ønsket, tak for svar :-)
Avatar billede ebea Ekspert
10. januar 2017 - 12:55 #10
#9 - Jeg gik ud fra, at du selv kunne indsætte en fejlhåndterer i Formlen (ISERROR). ;-)
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