Avatar billede bars Nybegynder
02. november 2011 - 08:33 Der er 14 kommentarer og
1 løsning

finde del af en string i en del af mange strings

Hej eksperter

Jeg kan godt bruge lidt hjælp til en formel i excel, så jeg håber noget kan give en hånd med.

Jeg har en kolonne med 6-cifrede materiale numer efterfulgt af en bindestreg og et 4-cifret løbenr. Det er her jeg vil kigge efter materialenr. og jeg kan fint isolere den med en:

LEFT("celle_med_nr;&)

Derefter vil jeg lave et opslag i en anden kolonne med erstatningsnumre. Den indeholder kun materialenumre, men nogle med flere i samme celle.

EKS:
Liste 1
123456-1234
654321-2222
111111-6543
222222-4152

Liste 2
764183
554219, 654321, 868674
999999, 454545
111111, 222222, 333333
654654, 123456

Det er så her i min liste 1 jeg gerne på den første linje vil fange linje 5 i den anden liste så strengen 654654, 123456 bliver skrevet ved siden af linje 1 i liste 1.

EKS på resultat:

123456-1234    654654, 123456
654321-2222
111111-6543    111111, 222222, 333333
222222-4152    111111, 222222, 333333

Jeg har prøvet med en VLOOKUP(), men den kan ikke kigge ind i dele af en tekststreng, så lidt hjælp ville være skønt.
Avatar billede iver_mo Nybegynder
02. november 2011 - 09:21 #1
VLOOKUP kan godt kigge på en del af en streng. Google evt. "excel wildcards"

Du skal bruge noget a la:
=LOPSLAG(SAMMENKÆDNING(VENSTRE(A1;6);"*");A4:A6;1;FALSK)
Avatar billede iver_mo Nybegynder
02. november 2011 - 09:28 #2
Lidt uddybende:

Ovenstående tager de første 6 karakterer fra venstre fra værdien i A1 og kæder det sammen med wildcard'et * som skal puttes i anførselstegn, så det ikke opfattes som matematisk multiplicering og bruger dette i en normal LOPSLAG (DK for VLOOKUP).
Avatar billede bars Nybegynder
02. november 2011 - 09:36 #3
Nå jeg bruger dette:
=VLOOKUP(CONCATENATE(LEFT(A1;6);"*");Sheet2!$A:$A;FALSE)

Får jeg #VALUE
en værdi brugt i formlen er af forkert datatype.

Nogen ideer?
Avatar billede bars Nybegynder
02. november 2011 - 09:43 #4
Enten forstår jeg det ikke eller også gøde den formel ikke hvad jeg søger.
Jeg skal vel ikke sammenkæde min opslagsværid med noget, det er vel det array jeg kigger jeg skal kigge nærmere ind i (istedet for at finde rækker hvor det er lig med min opslagsvædri skal jeg kigge efter rækker som indeholder min opslagsværdi)?
Avatar billede bars Nybegynder
02. november 2011 - 09:49 #5
Hov jeg lavede også det opslag forkert, men det virker alligevel ikke.

=VLOOKUP(CONCATENATE(LEFT(A1;6);"*");Sheet2!$A:$A;1;FALSE)

Giver #N/A
En værdi er ikke tilgængelig til din funktion eller formular
Avatar billede iver_mo Nybegynder
02. november 2011 - 09:57 #6
Ahh.. du skal have wildcard på begge sider:

=LOPSLAG(SAMMENKÆDNING("*";VENSTRE(A1;6);"*");$A$7:$A$11;1;FALSK)


Liste1 med øverste værdi placeret i A1:
123456-1234
654321-2222
111111-6543
222222-4152


Liste2 med øverste værdi placeret i A7:
764183
554219, 654321, 868674
999999, 454545
111111, 222222, 333333
654654, 123456


Resultat:
654654, 123456
554219, 654321, 868674
111111, 222222, 333333
111111, 222222, 333333
Avatar billede iver_mo Nybegynder
02. november 2011 - 10:03 #7
VLOOKUP vil altid komme med #N/A(DK: #I/T) hvis den ikke kan finde værdien fra Liste1 i Liste2. Hvis den ikke må lave den fejl skal formularen pakkes ind i ER.FEJL. fx:

=HVIS(ER.FEJL(LOPSLAG(SAMMENKÆDNING("*";VENSTRE(A1;6);"*");$A$7:$A$11;1;FALSK));"Kunne ikke finde tilsvarende værdi i Liste2";LOPSLAG(SAMMENKÆDNING("*";VENSTRE(A1;6);"*");$A$7:$A$11;1;FALSK))
Avatar billede bars Nybegynder
02. november 2011 - 10:13 #8
OK, så virker det, og det giver endda mening for mig :)

Hvis du vil give et svar vil jeg give dig nogele points
Avatar billede iver_mo Nybegynder
02. november 2011 - 10:28 #9
Svar :-)
Avatar billede bars Nybegynder
02. november 2011 - 10:40 #10
Nu når jeg har dig her, vil du hjælpe med en lille formel mere?
Avatar billede bars Nybegynder
02. november 2011 - 11:24 #11
Det er vist en kommentar du har skrevet for jeg kan ikke give point.
Avatar billede iver_mo Nybegynder
02. november 2011 - 11:32 #12
Svar (nu med med svar) :D

Sig frem mht. en formel mere.
Avatar billede bars Nybegynder
02. november 2011 - 12:37 #13
Det drejer sig om tre lister, en hvor der står hvad der er registreret i systemet, en der fortæller et minimumsantal og en der tæller det fysiske lager.

Det jeg gør er at brugen et VLOOKUP() til at se om det der er talt op stemmer med minimumslisten. Mit problem er at der kan forekomme ting på listen over registrerede ting som ikke er med på minimumslisten, de skal så nedskrives, men hvordan finder jeg dem på systemlisten som ikke er med på minimumslisten?
Avatar billede iver_mo Nybegynder
02. november 2011 - 12:47 #14
Jeg kan ikke se nogen umiddelbar løsning, men hvis det gerne må laves i VBA, så er det kein problem...?
Avatar billede bars Nybegynder
02. november 2011 - 13:19 #15
Det må det godt, det har jeg bare ikke meget forstand på.
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