[Alg Excel]Excel formule bedenken

Pagina: 1
Acties:
  • 104 views sinds 30-01-2008
  • Reageer

  • kippy
  • Registratie: September 2004
  • Nu online
Ik zit met het volgende probleem:

Ik heb een Excel sheet met de volgende layout:
code:
1
2
C     D     E     F     G     H     I     J     K     L     M              O          P
0     1     2     3     4     5     6     7     8     9     10            Max        Getal

Onder 1 t/m 10 komen getallen te staan, het hoogste getal daarvan komt onder max te staan. Dit is nog geen probeem want dat kan je met "Max(A2:L2)".

Ik wil nu het volgende berijken, ik kan het niet echt uitleggen dus doe ik het aan de hand van een voorbeeld.
code:
1
2
3
C     D     E     F     G     H     I     J     K     L     M              O          P
0     1     2     3     4     5     6     7     8     9     10            Max        Getal
2     8     4     6     9     1     0     5     2     10     3             10          9

Het hoogste getal staat hier in cel "K2" hierbij hoort het getal dat daar boven staat. Het getal "9" dus. Ik kan met een if voorwarde dit berijken (in een formule in Excel).
code:
1
=IF(C4=D4,C1)+IF(D4=O4,D1)+IF(E4=O4,E1)+IF(F4=O4,F1)+IF(G4=O4,G1)+IF(H4=O4,H1)+IF(I4=O4,I1)+IF(J4=O4,J1)+IF(K4=O4,K1)+IF(L4=O4,L1)+IF(M4=O4,M1)


Alleen wanneer er 2 "max getallen" gelijk zijn, er staat bijvoobeeld pop "I2" ook het getal "10" dan telt hij de getallen bij elkaar op je kijgt dan bij getal "14" (5+9). Dat is niet de bedoeling. Het lieft heb ik dat er dan "9" blijft staan.

Ik heb geen idee hoe ik dit op kan lossen. Kan iemand mij op weg helpen, alvast bedankt.

[ Voor 15% gewijzigd door kippy op 25-04-2005 16:05 . Reden: layout fout ]


Verwijderd

Je gaat in je If formule de getallen optellen, waarom maak je niet een nieuwe if formule als de eerdere if formule onwaar is.
code:
1
ALS(X=Y;waar;onwaar)


eh.. zoiets dus. De vergelijking gaat tot cell E dus is nog niet volledig. (ik heb nederlandse excel, maar principe blijft zelfde)
code:
1
=ALS(A3=M3;A2;ALS(B3=M3;B2;ALS(C3=M3;C2;ALS(D3=M3;D2;ALS(E3=M3;E2)))))

Nu pakt hij het eerst voorkomde hoogste getal.

Ik ben niet zo'n excel expert, maar heb toch het idee dat je zoiets anders kunt oplossen. Deze oplossing werkt echter wel...

  • kippy
  • Registratie: September 2004
  • Nu online
Verwijderd schreef op maandag 25 april 2005 @ 15:09:
Je gaat in je If formule de getallen optellen, waarom maak je niet een nieuwe if formule als de eerdere if formule onwaar is.
code:
1
ALS(X=Y;waar;onwaar)


eh.. zoiets dus. De vergelijking gaat tot cell E dus is nog niet volledig. (ik heb nederlandse excel, maar principe blijft zelfde)
code:
1
=ALS(A3=M3;A2;ALS(B3=M3;B2;ALS(C3=M3;C2;ALS(D3=M3;D2;ALS(E3=M3;E2)))))

Nu pakt hij het eerst voorkomde hoogste getal.

Ik ben niet zo'n excel expert, maar heb toch het idee dat je zoiets anders kunt oplossen. Deze oplossing werkt echter wel...
Zucht, zo lang zitten denken en kloten....... Het werkt ik ben U/je "eeuwig" dankbaar _/-\o_

  • kippy
  • Registratie: September 2004
  • Nu online
Ok volgende probleem. de mannier van oploossen door if's in if's te grebruiken werkt en is goed. Maar je kan er maar max 9 inelkaar gebruiken :S. Iemand hier een idee voor hoe ik dat kan oplossen.

  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 21-08 12:39

pjvandesande

GC.Collect(head);

kippy schreef op maandag 25 april 2005 @ 15:31:
Ok volgende probleem. de mannier van oploossen door if's in if's te grebruiken werkt en is goed. Maar je kan er maar max 9 inelkaar gebruiken :S. Iemand hier een idee voor hoe ik dat kan oplossen.
Dat kun je het toch in een macro gooien en er met een lusje doorheen wandelen?

  • kippy
  • Registratie: September 2004
  • Nu online
questa schreef op maandag 25 april 2005 @ 15:32:
[...]


Dat kun je het toch in een macro gooien en er met een lusje doorheen wandelen?
Ja dat was mijn eerste idee ook, maar dat wilde de mensen liever niet hebben, maar ik heb het al opgelost. Ik vind het zoizo niet echt nuttig, maar wie ben ik.

voor de mensen die dit toch echt eens nodig hebben, ik ken ze niet. hier nog ff de formule die ik nu gebruik.
code:
1
=IF(D3=O3,D1,IF(E3=O3,E1,IF(F3=O3,F1,IF(G3=O3,G1,IF(H3=O3,H1,IF(I3=O3,I1,IF(J3=O3,J1,IF(K3=O3,K1)))))))+IF(C3=O3,C1,IF(L3=O3,L1,IF(M3=O3,M1))))


Naja hij is nog niet helemaal goed..........

[ Voor 6% gewijzigd door kippy op 25-04-2005 15:46 . Reden: foutje ]


  • WFvN
  • Registratie: Oktober 2000
  • Laatst online: 16-08 17:44

WFvN

Gosens Koeling en Warmte

Je voorbeelden kloppen van geen kant voor zover ik zie. Je hebt 2x een 5 gebruikt in de bovenste regel, je hebt het over K2 wat M2 moet zijn...... Beetje vaag wat het allemaal niet makkelijker maakt bij het helpen!

Maar goed

Ik hoopte je te kunnen helpen maar Excel doet hier nogal raar.

Je kan het sowiezo een stuk eenvoudiger aanpakken met de functie ZOEKEN.

Kijk hier eens naar:
=ZOEKEN(M2;A2:K2;A1:K1)

Met M2 is de cel met de max-waarde.

Dan heb je het probleem nog niet opgelost met die 2x hoogste waarde. Alleen doet Excel momenteel vreemde dingen die hij niet zou moeten doen.

[ Voor 15% gewijzigd door WFvN op 25-04-2005 15:48 ]


  • kippy
  • Registratie: September 2004
  • Nu online
WFvN schreef op maandag 25 april 2005 @ 15:47:
Je voorbeelden kloppen van geen kant voor zover ik zie. Je hebt 2x een 5 gebruikt in de bovenste regel, je hebt het over K2 wat M2 moet zijn...... Beetje vaag wat het allemaal niet makkelijker maakt bij het helpen!

Maar goed

Ik hoopte je te kunnen helpen maar Excel doet hier nogal raar.

Je kan het sowiezo een stuk eenvoudiger aanpakken met de functie ZOEKEN.

Kijk hier eens naar:
=ZOEKEN(M2;A2:K2;A1:K1)

Met M2 is de cel met de max-waarde.

Dan heb je het probleem nog niet opgelost met die 2x hoogste waarde. Alleen doet Excel momenteel vreemde dingen die hij niet zou moeten doen.
Ja ben een beetje aan het prutsen idd, ik weet niet wat ik vandaag heb. Maar de layout code klopt nu als het goed is, maar met de functie "zoeken/search" wil niet echt.......

Het is idd de juiste oplossing maar ook dat pakt tie niet :S
code:
1
=SEARCH(O3,C3:M3,C1:M1)

O3 = max
C3:M3 = waardes die je in vult
C1:M1 = waarde die hij moet weergeven

  • WFvN
  • Registratie: Oktober 2000
  • Laatst online: 16-08 17:44

WFvN

Gosens Koeling en Warmte

Okee, ik ben eruit.

In rij 1, (Cel A1 t/m K1) dus de nummervolgorde (0 t/m 10)
In rij 2 (cel A2 t/m K2) dus de getallen waar het je om draait. ('willekeurige' getallen)

In cel L2 heb ik nu het maximum =MAX(A2:K2)
In cel L3 heb ik nu: =ZOEKEN(MAX(A3:K3);A3:K3;A1:K1)
In rij 3 heb ik in elke cel (cel A3 t/m K3) staan: =ALS(A2=$L$2;A1;"") waarbij A2 en A1 dus worden aangepast.

Dit werkt. Ik heb dus wél rij 3 extra toegevoegd en ook cel L3

[ Voor 29% gewijzigd door WFvN op 25-04-2005 17:08 ]


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Wat doen jullie moeilijk zeg. :+

Zoeken werkt niet, want dat vereist dat de waarden waarin je zoekt gesorteerd staan. Vergelijken moet je hebben. In het voorbeeld van TS, waarin de 1e rij keurig op volgorde staat:
Visual Basic:
1
=VERGELIJKEN(MAX(A2:I2);A2:I2;0))

levert de kolom op waarin het grootste getal van de reeks A2:I2 staat. 1 eraf trekken en je bent er.

Mocht je perse de waarde in bv rij 1 willen hebben dan doet deze het ook:
Visual Basic:
1
=INDEX(1:1;1;VERGELIJKEN(MAX(A2:I2);A2:I2;0))

En niks geen extra rijen of cellen. O-)

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • WFvN
  • Registratie: Oktober 2000
  • Laatst online: 16-08 17:44

WFvN

Gosens Koeling en Warmte

Niet slaan :'(

:*

Maareh.... Bij jouw tweede functie werkt het op zich wel tótdat er dus 2x een hoogste getal in voorkomt! Dan geeft hij dus níet het getal weer wat de TS wil.

Juist vanwege dát probleem heb ik die extra rij ingevoerd.

[ Voor 56% gewijzigd door WFvN op 25-04-2005 18:18 ]


  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 21:24
Uit de Excel help:
If match_type is 0, MATCH finds the first value that is exactly equal to lookup_value. Lookup_array can be in any order.
Matchtype is het laatste argument van de vergelijken functie.
De Index functie krijgt dus gewoon de locatie van de eerste match mee.
Zou gewoon goed moeten gaan.

  • kippy
  • Registratie: September 2004
  • Nu online
ik ga het morgen op werk allebij proberen, hoop dat het werkt. iniedergeval bedankt voor de moeite.

  • kippy
  • Registratie: September 2004
  • Nu online
De "match" werkt perfect mijn dank is groot. Doe nu dus:
code:
1
=MATCH(O3,C3:M3,0)-1

waarbij:
- O3 de max waarde is van de rij
- C3:M3 de rij is waar is zoek
- 0 de macht type is
- -1 om de juiste waarde te berijken

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Omgaan met MS Excel heeft weinig met programmeren te maken. Voor de volledigheid een schop richting Software Algemeen

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1