Hjælp til - Match mellem to celler, skal udløse kopiering fra flere celler til en celle ?
Hej med jer,
Har virkelig fået mange guldkorn her inde, og det skal i have tusind tak for.
Jeg har en udfordring omkring det at kunne hente indhold fra flere celler i (Ark2), til samme celle i kolonne Y (Ark1).
Eksempel:
Hver gang en celle i kolonnerne R:Z (Ark2) matcher en eller flere celler i kolonne J (Ark1),
skal indholdet i samme række fra kolonne B (Ark2) hentes til kolonne Y (Ark1). Cellen i Kolonne Y skal være samme række som den celle der sammenlignes med i kolonne J (Ark1).
Hver gang der tilføjes Indhold fra kolonne B (Ark2) til kolonne Y (Ark1), skal der komma efter hver værdi den indsætter.
Rækker og kolonner i (Ark1): Kolonne J (Bruges til at sammenligne med cellerne i kolonnerne R:Z (Ark2) Kolonne Y (Skal indeholde alle cellerne fra kolonne B (Ark2) hvor der er et match mellem cellerne fra kolonnerne R:Z (Ark2) og cellerne i kolonne J (Ark1)
Rækker og kolonner i (Ark2): Kolonnerne R:Z (Bruges til at sammenligne med cellerne i kolonne J (Ark1) Kolonne B (Indholdet skal flyttes til alle cellerne i kolonne Y (Ark1), hvor der er et match mellem cellerne i kolonnerne R:Z (Ark2) og cellerne i kolonnen J (Ark1)
Jeg synes at have prøvet alt, men kan overhovedet ikke knække koden
Håber virkelig der er nogen som kan og vil hjælpe, og vil meget gerne prøve og uddybbe, hvis nødvendigt.
Bedre sent end aldrig. Det er ikke den mest elegante kode, men den gør, hvad den skal! Indsæt denne kode i kolonne Y i ark1: =HVIS(HVIS.FEJL(HVIS(SAMMENLIGN(J1;'Ark2'!R1:Z1;0)>0;'Ark2'!B1;0);0)>0;SAMMENKÆDNING((HVIS.FEJL(HVIS(SAMMENLIGN(J1;'Ark2'!R1:Z1;0)>0;'Ark2'!B1;0);0));",");"")
Forklaring: Basiskoden er SAMMENLIGN(J1;'Ark2'!R1:Z1;0). Desværre må jeg lave nogle workarounds for at undgå fejlmeddelsen #I/T, når funktionen SAMMENLIGN anvendes (dertil er brugt funktionen HVIS.FEJL)
Bemærk: Jeg sætter komma bag tallet (som du ønsker) i kolonne Y, ark1 vha. funktionen SAMMENKÆDNING. Brugen af denne funktion gør, at excel betragter cellens indhold som tekst og ikke som tal. Hvis du ønsker et tal i stedet, kan du formatere kolonnen Y, ark1 til at indeholde 1 decimal (så sættes ",0" bagefter tallet). I så fald kan du reducere koden i kolonne Y en del: =HVIS.FEJL(HVIS(SAMMENLIGN(J2;'Ark2'!R2:Z2;0)>0;'Ark2'!B2;0);"")
En mulighed er jo bare at ændre basiskoden til at søge i en matrix: SAMMENLIGN(J1;'Ark2'!R$1:Z$500;0), hvor række 500 er indsat som sidste række i din matrix. Den samlede kode ser derfor således ud, når du indsætter i kolonne Y i ark1: =HVIS(HVIS.FEJL(HVIS(SAMMENLIGN(J1;'Ark2'!R$1:Z$500;0)>0;'Ark2'!B1;0);0)>0;SAMMENKÆDNING((HVIS.FEJL(HVIS(SAMMENLIGN(J1;'Ark2'!R$1:Z$500;0)>0;'Ark2'!B1;0);0));",");"")
Kan godt se ideen... og kan godt få den til at tilføje B1 en gang, Men hvis så der er flere rækker i ark2, hvor der også forekommer et eksakt match til J1, tilføjer den ikke resten...
Den skal egentlig gentage den proces du har lavet række for række i ark2. Men skal jeg kopier den tusind gange i J1 bliver den alt, alt for lang og uoverskuelig.
Aha. Kan nu se din pointe. VBA må være svaret. Jeg er desværre ikke skrap til VBA. Foreslår at du lukker dette spørgsmål og opretter et nyt med samme indhold men blot skriver noget med VBA i overskriften. Måske er der nogen der kan hjælpe dig.
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.