Avatar billede idani Praktikant
07. januar 2014 - 12:50 Der er 2 kommentarer og
1 løsning

Har behov for en makro eller lign - fordi ellers skla jeg lave 97!!! manuelle formler i samme celle

Hej

Jeg har følgende formel

=IF((OR(0,1<(VLOOKUP(A2;Compare!A:CS;2;0));-0,1>(VLOOKUP(A2;Compare!A:CS;2;0))));Compare!$B$1&", ";"")&
Planen er så at den skal gentage sig ialt 97 gange - men bare hvor den næste kommer til at at ud som følger

IF((OR(0,1<(VLOOKUP(A2;Compare!A:CS;3;0));-0,1>(VLOOKUP(A2;Compare!A:CS;3;0))));Compare!$C$1&", ";"")&

Sådan at når de 2 er koblet sammen så ser det ud som følger

=IF((OR(0,1<(VLOOKUP(A2;Compare!A:CS;2;0));-0,1>(VLOOKUP(A2;Compare!A:CS;2;0))));Compare!$B$1&", ";"")&IF((OR(0,1<(VLOOKUP(A2;Compare!A:CS;3;0));-0,1>(VLOOKUP(A2;Compare!A:CS;3;0))));Compare!$C$1&", ";"")

Alt ialt så skal der gennemses 97 kolonner for op til 6000 medarbejdere.........


Det skal bruges til at vise hvilke lønarter (i dette tilfælde) som der bør kigges på i forbindelse med lønudbetalingen.

Er der ikke en eller anden haj som lige kan redde mig her med enten en super fed formel - eller en makro - det sidste vil nok være at fortrække af hensyn til fil størrelsen.

Venlig hilsen
Ida
Avatar billede acore Ekspert
07. januar 2014 - 15:47 #1
Jeg tror jeg ville dele opgaven lidt op, og bruge nogle hjælpeceller:

Først skal du finde den rigtige række - det er dine VLOOKUP's, som jeg ville erstatte med MATCH og lægge i en hjælpecelle, fx A3:

=MATCH(A2;Compare!A2:Axxxx;0)

hvor Axxxx er den sidste række, du vil lede i.

Så ville jeg trække de 97 værdier frem i hver sin celle - her har jeg lagt dem fra B3 og de efterfølgende kolonner:

=OFFSET(Compare!A2;A3-1;COLUMNS($B$2:B2))

Dernæst ville jeg lave en række, hvor jeg checker de 97 værdier - har har jeg lagt dem fra B4 og de efterfølgende kolonner:

=IF(OR(B3<-0,1;B3>0,1);Compare!B1;"")

Den formel skulle også kunne kopieres

Endelig har du brug for at "lægge alle værdierne sammen" med komma imellem.

Her ville jeg jeg lægge VBA-koden fra http://www.cpearson.com/Excel/stringconcatenation.aspx ind som en makro, og så få resultatet med:

=StringConcat(",";B4:xx4)

hvor xx er din sidste kolonne.

Det er egentlig næsten det samme, som du gør, her bare opdelt med et antal hjælpeceller.

Giver det mening?
Avatar billede idani Praktikant
16. januar 2014 - 15:28 #2
Hej Acore

Tak for svar jeg har nu kigget lidt på det -  og er selv endt med en simple lookup / If formel - i tre hjælpe kolonner.

Men tak for svaret - det ville desværre blot give nogle flere beregninger - som vil gøre arket endnu tungere ;)

Når vores kunde har godkendt setup'et - så skal det ligges ind i SAP som en fast rapport - denne her er "blot" en prototype ;)
Avatar billede acore Ekspert
16. januar 2014 - 15:57 #3
Tak for tilbagemeldingen og godt at du fandt en løsning, som du synes om.

Jeg er så ikke enig i, at min løsning ville være tungere end dit udgangspunkt - tværtimod. Men skidt med det - bare du er tilfreds med din løsning.
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