Avatar billede fhansen82 Mester
17. juni 2017 - 22:00 Der er 6 kommentarer og
1 løsning

Automatisk udfyldelse af unikke værdier i et område

I mit ark, har jeg et område, som består af flettede celler på tværs og x antal rækker som ikke er flettede. I dette område indtastes værdier som kan være ens.
Et andet sted i ark har jeg et område, som består af flettede celler på tværs og x antal rækker som ikke er flettede, hvor unikke forekomster af disse automatisk skal indsættes.

Kan dette lade sig gøre uden brug af VBA?

Mvh

Frank
Avatar billede jkrons Professor
17. juni 2017 - 23:34 #1
Hvordan definerer du en unik værdi? Hvis du fx har tallene 1, 2, 3, 1 er det så kan kun 2og 3, der skal overføres, eller skal 1 med en enkelt gang, selv om tallet ikke er unikt?
Avatar billede fhansen82 Mester
18. juni 2017 - 19:56 #2
Der har jeg ikke været skarp nok. Hvis der f.eks. fremgår 1,2,3,1,4,4, så skal der i listen fremgå 1,2,3,4.

Mvh

Frank
Avatar billede jkrons Professor
18. juni 2017 - 23:19 #3
Hvis du har dine data i de uflettede rækker i A-kolonnen og det nye område i c-kolonnen, så indsæt formler af typen =A2, =A3 og så fremdeles i C-kolonnen. Så fpr du to ideintiske kolonner. Makrer så C-kolonnen og brug funktionen Fjern dubletter under Dataværktøjer.

Hvis det skal ske helt automatisk hver gang du taster noget nyt, er der nok ingen vej uden om VBA.
Avatar billede jkrons Professor
18. juni 2017 - 23:43 #4
Det kan faktisk godt lade sig gøre at lave noget, der ligner, selv om det ikke er elegant.

Antag, at du har dine data i A2:A20, og vil have listen til at stå i B2:B20.

Indsæt denne formel som en matrixformel i B2

=INDEKS($A$2:$A$20; SAMMENLIGN(0; TÆL.HVIS($B$1:B1;$A$2:$A$20); 0))

Husk at matrixformler oprettes ved at afslutte mede Ctrl+Shift+Enter.

Kopier nedad. Ret selv områderne til de relevante. Hvis du endnu ikke har tal ikke alle cellerne i A-kolonnen, vil B-kolonnen give I/T ud for de udbrugte rækker.

Dette kan løses ved at ændre formlen til

=HVIS(ER.IKKE.TILGÆNGELIG(INDEKS($A$2:$A$20; SAMMENLIGN(0; TÆL.HVIS($B$1:B1;$A$2:$A$20); 0)));"";INDEKS($A$2:$A$20; SAMMENLIGN(0; TÆL.HVIS($B$1:B1;$A$2:$A$20); 0)))

Den sidste celle i B-kolonnen vil være et 0 indtil alle rækker i A-kolonnen er udfyldt.
Avatar billede fhansen82 Mester
19. juni 2017 - 22:27 #5
Hey

Excel siger at matrix formler ikke fungerer over flettede celler :( Det er selvom jeg kun har angivet den første celle i den flettede mængde, som indeholder data.

Mvh

Frank
Avatar billede jkrons Professor
20. juni 2017 - 23:18 #6
Det er korrekt. Det vil ikke virke
, hvis der også skal skrives i de flettede celler. Hvis det er tilfældet kommer du ikke uden om VBA.

I så fald er det vigtigt at huske at VBA opfatter de flettede celler som et område, bestående af de oprindelige. Har du fx flettet A1, B1 og C1, skal de i VBA refererss som Range("A1:C1")
Avatar billede fhansen82 Mester
22. juni 2017 - 21:19 #7
Tak for svaret. Så må jeg i gang med at flette noget sammen :)

Mvh

Frank
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