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
Langt de fleste offentlige myndigheder halter bagefter med it-sikkerheden
Langt de fleste offentlige myndigheder er stadig ikke nået i mål med it-sikkerheden, viser en ny undersøgelse fra Digitaliseringsstyrelsen.
Computerworld
Gratis wifi på vej i 15 danske byer: Disse danske byer bliver del af europæisk wifi-initiativ
Femten danske byer er blevet udvalgt til at deltage i et EU-initiativ, der betyder, at borger og turister i byerne i løbet af de kommende år vil få adgang til gratis wifi.
CIO
Tag med på Computerworlds store lederkonference og mød de danske top-CIO'er, som bygger de nye it-afdelinger
Anvendelsen af digital teknologi og organiseringen af it-afdelinger er under radikal transformation. På konferencen Digitaliseringsledelse 2.0 kan du møde de CIO'er fra Bankdata, Adform og Rockwool, som står i spidsen for teknologi-adoptionen.
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
Fire trin til øget cybersikkerhed på den digitale arbejdsplads
Organisationer af enhver størrelse er i konstant risiko for at blive udsat for cyberangreb, som potentielt kan ende med at koste millioner af kroner. I de kommende år vil reguleringer, som den nye EU-persondataforordning, kunne straffe virksomheder med gigantiske bøder, for utilstrækkelig sikring af deres systemer og data. Hvordan dette kan undgås, kan du læse mere om i dette whitepaper.