Avatar billede simon_s Nybegynder
16. oktober 2014 - 15:51 Der er 10 kommentarer

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.

Hilsen Simon
Avatar billede Docthomassen Juniormester
04. november 2014 - 05:13 #1
Kære Simon

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);"")
Avatar billede Docthomassen Juniormester
04. november 2014 - 05:16 #2
- I nederste linie skal der selvfølgelig stå:
=HVIS.FEJL(HVIS(SAMMENLIGN(J1;'Ark2'!R1:Z1;0)>0;'Ark2'!B1;0);"")
Avatar billede simon_s Nybegynder
04. november 2014 - 10:18 #3
Hej Anders,

Tusind tak for din tid, fedt du gider :)

Den virker på række niveau, men skal søge i hele kolonnernes længde.

Har fundet ud af der nok skal noget makro til, så det ikke bliver for tungt.

Skal faktisk mødes med en i aften, som muligvis kan hjælpe.

Men tusind tak fordi du gad bruge tid på det :)
Avatar billede Docthomassen Juniormester
04. november 2014 - 11:34 #4
Hej Simon

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));",");"")

Anders
Avatar billede simon_s Nybegynder
06. november 2014 - 09:50 #5
Hej Anders,

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...

Fedt du er så ihærdig...
Avatar billede simon_s Nybegynder
06. november 2014 - 09:54 #6
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.

Hilsen Simon
Avatar billede simon_s Nybegynder
06. november 2014 - 10:08 #7
Koden jeg kan få til at virke ser således ud:

=HVIS(HVIS.FEJL(HVIS(SAMMENLIGN(J1;ARK2!$Q$2:$Y$2;0)>0;ARK2!B1;0);0)>0;SAMMENKÆDNING((HVIS.FEJL(HVIS(SAMMENLIGN(J1;ARK2!$Q$2:$Y$2;0)>0;ARK2!B1;0);0));",");"")

Koden skal så fortsætte med at søge næste række, og tilføje B2 til J1 og så videre:

Det virker Hvis koden ser sådan ud:

=HVIS(HVIS.FEJL(HVIS(SAMMENLIGN(J1;ARK2!$Q$2:$Y$2;0)>0;ARK2!B1;0);0)>0;SAMMENKÆDNING((HVIS.FEJL(HVIS(SAMMENLIGN(J1;ARK2!$Q$2:$Y$2;0)>0;ARK2!B1;0);0));",");"")

og tilføjer denne bagefter:

&HVIS(HVIS.FEJL(HVIS(SAMMENLIGN(J1;ARK2!$Q$3:$Y$3;0)>0;ARK2!B2;0);0)>0;SAMMENKÆDNING((HVIS.FEJL(HVIS(SAMMENLIGN(J1;ARK2!$Q$3:$Y$3;0)>0;ARK2!B2;0);0));",");"")

Men den bliver alt for lang Anders.
Avatar billede Docthomassen Juniormester
06. november 2014 - 15:20 #8
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.
Avatar billede Docthomassen Juniormester
06. november 2014 - 15:22 #9
Læg gerne en demoversion af dit excelark ud, så bliver det noget lettere at gå til for den næste...
Avatar billede simon_s Nybegynder
06. november 2014 - 16:18 #10
Tusind tak for hjælpen Anders :)
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