Avatar billede kenp Novice
28. januar 2018 - 21:04 Der er 15 kommentarer og
1 løsning

hjælp til excelformel, finde og beregne nogle talud fra nogle regler..

jeg har et lille ark med kun 400 linier i og ca. 60 kolloner..

Jeg har en total kolonne som skal beregnes ud af 5 højeste tal tal som er i rækken.

der til ved jeg at jeg kan bruge "størst".

Men hvis vi sætter det således op vi har kolonner fra

a til by (som eksempel)

Der må højst være (største) 2 tal som er i rækken som kommer fra a til y. Men alle 5 (største) må godt være i z til by.

Hvordan laver man den formel? (rækken er så opdelt, da der er lavet nogle forskellige totaler)
Avatar billede jens48 Ekspert
29. januar 2018 - 00:16 #1
Jeg kan ikke overskue det med en formel, men prøv om denne makro ikke opfylder det du ønsker:

Sub største()
Dim S, Z, X, L As Long
Dim R As Range
Z = 0
S = 0
For X = 1 To 5
If Z >= 2 Then
Set R = Range("Z1:BY1")
Else
Set R = Range("A1:BY1")
End If
L = Application.Large(R, X)
If Application.Match(L, Range("A1:BY1"), 0) < 25 Then
Z = Z + 1
End If
S = S + L
Next
MsgBox ("Sum is " & S)
End Sub
Avatar billede finb Ekspert
29. januar 2018 - 09:40 #2
Noget a la:
=hvis(tæl.hvis(største(a:y)<3;.....

""Der må højst være (største) 2 tal som er i rækken som kommer fra a til y. Men alle 5 (største) må godt være i z til by.""
Avatar billede kenp Novice
29. januar 2018 - 09:59 #3
Må lige prøve igen når jeg kommer hjem. takker for forslag, må se hvad jeg kan få den til.

makro er jeg nemlig ikke haj til.
Avatar billede kenp Novice
29. januar 2018 - 17:13 #4
har siddet og tilpasset den lidt til hvor jeg har data i arket, så koden ser sådan ud:

Sub største()
Dim S, Z, X, L As Long
Dim R As Range
Z = 0
S = 0
For X = 1 To 5
If Z >= 2 Then
Set R = Range("P5:AB5:AL5:AN5:BE5")
Else
Set R = Range("I1:N5:P5:AB5:AL5:AN5:BE5")
End If
L = Application.Large(R, X)
If Application.Match(L, Range("I1:N5:P5:AB5:AL5:AN5:BE5"), 0) < 25 Then
Z = Z + 1
End If
S = S + L
Next
MsgBox ("Sum is " & S)
End Sub

Den fejler på denne "If Application.Match(L, Range("I1:N5:P5:AB5:AL5:AN5:BE5"), 0) < 25 Then"
Avatar billede kenp Novice
29. januar 2018 - 17:18 #5
hade glemt at indfører det som par, er rettet, men fejler stadigvæk på den linie (som dog lige mangler en ":AA5" lige efter "P5"

(nu kører jeg den kun på linie 5, skal også ahve den til at køre på alle andre ca. 400 linier...)
Avatar billede jens48 Ekspert
30. januar 2018 - 18:58 #6
Jeg er ikke helt sikker på at jeg forstår de Ranges du har valgt, Men jeg har gættet og lavet denne makro, der skriver summen for de 5 største tal i hver række ind i kolonne BF.

Sub største()
Application.Calculation = xlCalculationManual
Dim S, Z, X, L, Rk As Long
Dim R As Range
LastRow = Range("I65536").End(xlUp).Row
Z = 0
For Rk = 5 To LastRow ' RK = række der undersøges
S = 0 'S=sum
For X = 1 To 5
If Z >= 2 Then
Set R = Range("P" & Rk & ":BE" & Rk)
Else
Set R = Range("I" & Rk & ":BE" & Rk)
End If
L = Application.Large(R, X)
If Application.Match(L, Range("I" & Rk & ":BE" & Rk), 0) < 25 Then
Z = Z + 1
End If
S = S + L
Next
Cells(Rk, 58) = S
Next
Application.Calculation = xlCalculationAutomatic
End Sub
Avatar billede Mads32 Ekspert
01. februar 2018 - 11:26 #7
Hej KenP
Jeg vedlægger en løsning med formler.

Jeg har kun lavet en enkelt række, og skjult nogle kolonner. der er kun indtastes data i de celler du kan se. Formlerne skulle være lige til at kopiere.

Jeg hører gerne dine kommentarer.

https://www.dropbox.com/s/yg7jztu37m6andj/kenP%20hj%C3%A6lp%20til%20exelformel.xlsx?dl=0
Avatar billede kenp Novice
01. februar 2018 - 16:38 #8
Hej Mads

jeg prøver (jeg har dog ikek fået prøvet formel i makro lige over )

ser på det forhåbentlig virker det :-)
Avatar billede kenp Novice
01. februar 2018 - 16:47 #9
Hej igen

Lige afprøvet den i dit ark.. ja men lille hage ved den, da jeg har haft brugt den kode..

Hvis der ikke er 5 tal.. nogle på denne liste kunne kun have 1 eller 4 (eller 55) så laver den fejl.

Så for at modvirker denne da dit ark skriver #NUM hvis der ikke har jeg brugt denne kode:

=HVIS.FEJL(STØRSTE(AN201:AW201:AY201:BP201;3);0)

Så den bare skulle returnere 0 i resulatet så.. men det gør den ikke..

Den returnere tallet af = antal af resultater som de kan tælle...

så hvis den kan finde 199 og 200 så svare den tilbage på sum af de 5 bedste tal = 401 det er ikke sandt :-/
Avatar billede Mads32 Ekspert
01. februar 2018 - 21:33 #10
Hej kenp

Jeg har tilrettet formlerne, så den tager hensyn, når der ikke er nok data i de 2 områder.

Jeg forstår ikke: (eller 55) i din sætning Hvis der ikke er 5 tal.. nogle på denne liste kunne kun have 1 eller 4 (eller 55) så laver den fejl. Er de to områder ikke som du har nævnt? Område A:Z og område Y:BH, i alt 60 kolonner?????

https://www.dropbox.com/s/ro8kyk9t4bos01t/kenP%20hj%C3%A6lp%20til%20exelformel_2.xlsx?dl=0
Avatar billede kenp Novice
01. februar 2018 - 21:52 #11
Nej men det er en masse resultater, og jeg kan ikke bestemme hvor meget deltagerne laver, så nogle har deltaget så de har 1 resultat (andre kommer til at sprænge rammen for det nuværende ark, og har laver 55 resultater).
Avatar billede kenp Novice
01. februar 2018 - 22:33 #12
Hummm den kode har jeg prøvet, den returnere sjovt nos mig... jeg har lige lavet arket anonymt..

er det så en indstilling jeg har skæv i arket? se specielt de felter hvor der er optælling i..

https://www.dropbox.com/s/wzyqglzagr6pjns/test%20ark.xlsx?dl=0
Avatar billede Mads32 Ekspert
02. februar 2018 - 09:48 #13
Hej

Jeg kan umiddelbart ikke gennemkue alle dine formler, hvis du ved at der er problemer med nogle formler så fortæl venligst i hvilke kolonner der er problemer så ser jeg gerne på det.

Med hensyn til problematikken med de store varians i antal resultater, kan du lave skemaet så stort at den kan indeholde det maksimale antal resultater, og derefter skjule et antal kolonner, så der kun er det antal kolonner fremme, som giver en god oversigt og som har plads til de mest forekomne resultater.

Jeg vil rykke skemaet lidt ned på arket for at få et nogle rækker fri i toppen, hvor du eventuelt kunne lave et par makroknapper, som åbner og lukker for de skjulte kolonner.

Hvorfor har du et skema, der er oprettet med datafiltrering?.
Avatar billede kenp Novice
02. februar 2018 - 10:38 #14
Tror jeg har fundet ud af hvad det er den ikke kan lide.

=HVIS.FEJL(STØRSTE(AN201:AW201:AY201:BP201;3);0)

Den fejler da den ikke kan lide grupper

Kører uden fejl hvis jeg vælger

=HVIS.FEJL(STØRSTE(AN201:BP201;3);0)

Den kan altså ikke lide "flere grupper" når man bruger største.
Avatar billede jens48 Ekspert
03. februar 2018 - 00:03 #15
Nu har jeg kigget på dit regneark, og med nedenstående makro mener jeg det er lykkedes at skabe det du ønsker.
Jeg har lavet makroen sådan at den skriver resultatet ind i kolonne D, for ikke at overskrive det resultat du selv har sat ind. Hvis betingelsen for udregningen ikke er til stede, forbliver cellen tom. Hvis du vil have resultatet i kolonne E i stedet, skal 4. sidste linje ændres til:

Cells(Rk, 5) = S

Makroen:

Sub største()
Dim LastRow, Rk, S, Z, X, L As Long
Dim R As Range
LastRow = ActiveSheet.UsedRange.Rows.Count
For Rk = 3 To LastRow
Z = 2
S = 0
If Cells(Rk, 15) < 8 Then GoTo A:

On Error GoTo A:
For X = 1 To 2
If Application.Count(Range("P" & Rk & ":U" & Rk & ":W" & Rk & ":AH" & Rk)) < X Then GoTo A:
Set R = Range("P" & Rk & ":U" & Rk & ":W" & Rk & ":AH" & Rk)
L = Application.Large(R, X)
S = S + L
Z = Z - 1
Next
A:
For X = 1 To 3 + Z
If Application.Count(Range("AJ" & Rk & ":AS" & Rk & ":AU" & Rk & ":BL" & Rk)) < X + Z Then GoTo B:
Set R = Range("AJ" & Rk & ":AS" & Rk & ":AU" & Rk & ":BL" & Rk)
L = Application.Large(R, X)
S = S + L
Next
Cells(Rk, 4) = S
B:
Next
End Sub
Avatar billede kenp Novice
13. februar 2018 - 22:21 #16
Må indrømme jeg brugte løsningen med størst. Det var den jeg først brugte, og virkede også da jeg fjernede mellem totaler, som jeg egentlig havde.

Jeg ville aldrig kunne lavet absolut ark med alle stævner som det er, da jeg aldrig kan vide hvor mange som der bliver deltaget i.

Men skal have prøvet den med makro. Må øve mit lidt nå sæson er slut.
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