Nervatos Seniormester
23. juli 2018 - 21:58 Der er 18 kommentarer og
1 løsning

Søge efter data fra andet sheet og tilføje data

Hej med Jer.

Jeg har lidt udfordringer på, hvordan jeg skal løse en måske simpel opgave. Det drejer som om, at jeg skal have fat i Celle A & E fra sheet 1 - som skal flyttes over til sheet 2.

Men da meget af det samme tekst, så er det vigtigt - at det er det rigtige som bliver flyttet. Derfor skal den søge på flere celler, i sheet 2.

Sheet 2 søgning: Kolonne C står uger, som også gør i Sheet 1 Kolonne G - de skal matche. Sammen med D i Sheet2 som skal matche D i Sheet 1. Desuden, skal det arknavn, hvor der bliver fortaget søgning skal også matche i Sheet 1 Kolonne C.

Passer de 3 punkter, flyttes cellerne A & E over i Sheet 2. Det skal siges, at der sagtens kan stå flere uger og varenr. Men den skal bare tage det første match, i begge dele.

Tænker det er noget VBA, da jeg ikke har kunne finde en løsning med vlookup og match.

Håber det giver mening og kan lade sig gøre. :).

PFT.
anedi Ekspert
24. juli 2018 - 11:40 #1
Prøv evt. at lægge et eksempel op via dropbox el. lign, med beskrivelse i arket, så er det nemmere at guide dig videre.

Men det lyder umiddelbart, som om du kan komme langt med INDEX og MATCH funktionerne i en matrixfunktion:
=INDEX("Et passende område af kolonne A på sheet 1";MATCH("Celle med ugenummer"&"Celle i kolonne D";"Et passende område af Ugekolonnen på sheet 2"&"Et passende område af kolonne D på sheet 2";0);1)

Vh
Anedi
Nervatos Seniormester
24. juli 2018 - 17:35 #2
Hej Anedi

https://ufile.io/mc0s4

Jeg har uploadet et eksempel på, hvordan arket kan se ud. Håber min forklaring tidligere giver bedre mening nu.

På Hans arket, mangler jeg at få udfyldt data i H & I kolonnerne.

H2 skal give 20 kr og I2 skal give 10-07-2018 00:00
H3 skal give 18 kr og I3 skal give 13-07-2018 00:00

Den skal sørge på ark navnet, for det er kunden hvor kunden står i Ark1 i kolonne C.
Håber det giver mening.

Grete arket er blot lavet for at du kan se idéen i det jeg har.
Nervatos Seniormester
25. juli 2018 - 19:41 #3
Sub Search()
    Dim ws1 As Worksheet: Set ws1 = ThisWorkbook.Sheets("Ark1")
    Dim ws2 As Worksheet: Set ws2 = ThisWorkbook.Sheets("Hans")
    Dim week1 As Range: Set week1 = ws1.Range("G2", ws1.Cells(ws1.Rows.Count, "G").End(xlUp))
    Dim week2 As Range: Set week2 = ws2.Range("C2", ws2.Cells(ws2.Rows.Count, "C").End(xlUp))
    Dim f As Range, s As Range

    For Each s In week1
        For Each f In week2
            If InStr(s.Text, f.Text) <> 0 Then
                f.Offset(0, 5).Value = s.Offset(0, -2).Value
                f.Offset(0, 6).Value = s.Offset(0, -6).Value
            End If
        Next f
    Next s
End Sub

Fandt denne på en side, som søgte lidt som jeg. Dog mangler jeg at tilføje, at den også søger på varenr - således at de også stemmer overens.
Lige nu gør scriptet det fint i mit dummy excel, men i mit main excel - så hvis der står flere uger - får alle den samme pris som den sidste som har samme uge.

Så det den skal sikre er, at uge nr og varenr er et fælles match.
Nu har jeg manuelt tilføjet "Hans" som arknavn, men her er det meningen at den kigger arkene igennem og læser fra "Ark1" og finder de rigtige post den vej igennem.

Håber der er én, som lige kan fikse scriptet :).
PFT
Nervatos Seniormester
25. juli 2018 - 19:42 #4
Skal lige siges, at varenr i alle ark er i kolonne D.
anedi Ekspert
26. juli 2018 - 11:01 #5
Hej Nervatos.

Se forslag vedhæftet her:
https://ufile.io/57blq


Vh
Anedi
Nervatos Seniormester
26. juli 2018 - 17:47 #6
Hej anedi

Tusind tak for forslaget, det virker jo faktisk ret fint. Dog er ulempen bare, at der sagtens kan stå flere varenumre. Hvis der findes flere i den samme serie - så den kan sagtens se således ud: (varenr: 2300+2310+3320+3324)

Kan det bygges ind i det VBA script i #3 i stedet for en matrix? For du har ramt så godt med matrix, men VBA scriptet i #3 søger hele linien igennem. Så den er ligeglad med om der står varenr og uge f.eks.

Endnu engang tak!!
anedi Ekspert
27. juli 2018 - 11:32 #7
Hej igen

Jeg ved ikke noget om VBA, så jeg kan ikke hjælpe dig med den del.

Men jeg skal lige forstå det med varenumrene. I dit eksempel står der i Ark1 "Grillhandsker (varenr. 123)". Og i arket Hans, står der grillhandsker i en celle og varenummer i en anden.

1) Er det udfra varenummer og ugenummer i arket Hans, at du vil finde de tilhørende priser og datoer?
2) Kan der i samme celle i Ark1 stå Grillhandsker med flere forskellige varenumre efterfølgende? Og i så tilfælde, hvilket varenummer skal vi så søge efter?
3) Står der varenummer altid i ark1 eller kan der godt bare stå "Grillhandsker" uden efterfølgende nummer?
Nervatos Seniormester
27. juli 2018 - 19:32 #8
1) Ja

2) Varenummeret som skal søges efter, står altid under selve kunden. I mit eksempel kolonne D, det skal blot søges efter i kolonne D i Ark1 også.
Grunden til der kan stå flere varenumre, er hvis der er flere varer i samme serie. Det jeg har lavet er blot en dummy. :)

3) Der kan godt forkomme, at der mangler varenummer i Ark1. Men de bliver tilføjet så snart man finder ud af det.

Håber det giver mening.

I forhold til de matrix koder, hvad gør jeg når der kommer flere linier - skal jeg selv manuelt rette fra 12 til f.eks. 20 felter?

Tusind tak fordi du gider hjælpe mig.
anedi Ekspert
31. juli 2018 - 12:41 #9
Hej igen

Det sidste først, ja du kan selv manuelt rette dit område til eksempelvis 20 linjer.
Bare du ikke kigger i hele arket (D:D eksempelvis). Husk fortsat at holde CTRL + SHIFT nede inden du trykker ENTER.

Prøv at se dette ark med tilrettelser:
https://ufile.io/q3mhc

Ad 3) Hvis der ikke er et varenummer i ARK1, vil det ikke komme med på Hans' liste.

Vh
Anedi
Nervatos Seniormester
31. juli 2018 - 19:02 #10
Hej anedi

Det spiller jo næsten max!

Eneste problem lige nu for mig, er hvis der står uge 20-22 eller uge 20+21 - altså hvis der står flere uger, så finder den det ikke. Kan man fikse det, ligesom med det andet du har lavet ved varenr?

Ellers så godt!
anedi Ekspert
31. juli 2018 - 22:00 #11
Så skulle den være der.

https://ufile.io/gyfrk

Vh
Anedi
Nervatos Seniormester
01. august 2018 - 17:54 #12
Hej anedi

Det ser super fedt ud.

Kan man få den til at tage en celle i stedet for jeg manuelt skal rette Ark navnet til?
Så i stedet for Hans så denne: H10 - som på dit excel?
Har prøvet at rette Hans til H10, men så kommer den frem med "Opdater værdier: H10"?

Gerne hvor den kun tager det første ord før evt. mellemrum
Så ledes Hans Hansen bliver til Hans - Hans Henrik Hansen, også bliver Hans.

Tusind tusind tak for hjælpen!!
anedi Ekspert
06. august 2018 - 16:07 #13
Du kan godt udskifte arknavnet med en celle, således  for prisen i celle H2 hvor du vil referere til celle H10:
=INDEX('Ark1'!$E$2:$E$12;MATCH([b]H10[\b]&Hans!D2&Hans!C2;'Ark1'!$C$2:$C$12&IF(SEARCH(D2;'Ark1'!$D$2:$D$12;1)>0;Hans!D2;)&IF(SEARCH(C2;'Ark1'!$G$2:$G$12;1)>0;Hans!C2;)))

Og hvis der står et fuldt navn, så erstat H10 i ovenstående med
LEFT(H10;SEARCH(" ";H10;1)-1)

Ligeledes i de andre udtryk.
anedi Ekspert
06. august 2018 - 16:09 #14
Denne istedet:
=INDEX('Ark1'!$E$2:$E$12;MATCH(H10&Hans!D2&Hans!C2;'Ark1'!$C$2:$C$12&IF(SEARCH(D2;'Ark1'!$D$2:$D$12;1)>0;Hans!D2;)&IF(SEARCH(C2;'Ark1'!$G$2:$G$12;1)>0;Hans!C2;)))
Nervatos Seniormester
06. august 2018 - 17:36 #15
Du er satme en stjerne anedi. Tusind tak for hjælpen!

Bare et spørgsmål, hvad skal =CELLE("filename",$A$1) gøre godt for?
Nervatos Seniormester
06. august 2018 - 21:59 #16
=HVIS.FEJL(HVIS(D2<>"";INDEKS(Ark1!$E$2:$E$19;SAMMENLIGN(VENSTRE(H10;SØG(" ";H10)-1)&Hans!E2&Hans!E2;Ark1!$C$2:$C$19&HVIS(SØG(E2;Ark1!$D$2:$D$19;1)>0;Hans!D2;)&HVIS(SØG(D2;Ark1!$G$2:$G$19;1)>0;Hans!D2;)));"");"")

Jeg forstår det ikke rigtigt, nogle steder skriver den data ud andre steder gør den ikke. Hvis jeg fjerner Hvis.Fejl, så skriver den: #I/T

Men det hele står på samme måde - altså både med uge, varenr mv.
Ved du hvad årsagen kan være til det?

Jeg har rykket felterne én gang hen. Men den skrev stadig det samme ved dem alle sammen.
Nervatos Seniormester
06. august 2018 - 22:34 #17
Har endda også forsøgt at formatere cellerne både som standard og tekst.  Intet virker, kun noget af det.
Og $E$2:$E$19 passer også med feltet, sammen med C og G kolonnen.

Virker meget mærkeligt.
Nervatos Seniormester
07. august 2018 - 14:56 #18
Hej igen anedi

Tror måske jeg har fundet ud af fejlen. Det er hvis flere har købt den samme vare, altså handsker (123) uge 3
Hvis der så står handsker (123) uge 5, så skriver den ved uge 5 og ikke ved uge 3 i matrix formlen.

Det selvom, det er to forskellige kunder. Så den tjekker ikke umiddelbart om det er Hans eller Jørgen.

https://ufile.io/ebucx

Hvis du retter ugerne, så kan du se 'problemet' :)
anedi Ekspert
10. august 2018 - 14:24 #19
Vender tilbage
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

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





Premium
Bestikkelsessagen kostede Atea store millionbeløb og kunder i 2018 - men 2019 skal være comeback-året: "Nu har vi afsonet vores straf"
Interview: "Nu har vi afsonet vores straf. Hvis man bliver ved med at forfølge dem, der har afsonet deres straf, så er det, det samme som at sige, at man skal lukke Atea." I et stort interview med Computerworld fortæller Ateas danske topchef, Morten Felding, hvorfor det nu er på tide at komme videre efter den store bestikkelsessag ramte virksomheden.
Computerworld
Google slipper første version af Android 10 løs: Her er de vigtigste nyheder
Tiende version af styresystemet Android er ude i sin første betaversion: Her er de nye funktioner, som systemsoftwaren vil byde på.
CIO
Tech fra Toppen: Det har CIO Mads Madsbjerg Hansen fra FLSmidth lært af flere års global it-konsolidering
Tech fra Toppen: Flere års arbejde har betydet en reduktion i antallet af it-systemer hos FLSmidth. Men processen har ikke været uden overraskelser. Hør hvad CIO Mads Madsbjerg Hansen har lært af den omfattende og globale proces.
Job & Karriere
Efter blodrødt regnskab: Nu fyrer Atea 20 medarbejdere i Danmark
Atea fyrer nu 20 medarbejdere. Det sker som en direkte konsekvens af, at den danske forretning er under pres, oplyser selskabets direktør.
White paper
Vil du snydes når du skal vælge printløsning?
Svaret er forhåbentlig/naturligvis nej, men sandheden er at det er et reelt problem for mange virksomheder. I langt de fleste tilfælde skrives der under på kontrakter, der binder virksomheder til unødigt kostbare og langvarige leasing og lejeforløb, og underskriften er desværre bindende. Derfor – der er mange penge at spare ved at få den rigtige rådgivning og sætte sig ind i aftalerne, og vi har samlet 5 gode råd i dette whitepaper.