Toon posts:

[EXCEL 2007] Probleem met simpele formules

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

Verwijderd

Topicstarter
Ik ben nog niet zo bekend met gebruik van formules en heb langere tijd een beetje geprobeerd aan te kloten, maar nu gaat het me echt te lang duren dat het niet lukt. Wellicht kan iemand anders hier simpel uitkomst in bieden.

Het probleem is dat ik een cel uit een rij terughaal met de maximum waarde (=MAX(13:13)). In het voorbeeld wordt dus gekeken voor rij 13. Nou horen bij deze maximum waarde ook nog de cel links en rechts erbij en die wil ik nu dus ook in een andere rij terughalen. Zo wil ik dus van elke rij met invoer dus alleen die gegevens terughalen van de beste prestaties. Het dient als een soort samenvatting. Nou heb ik alleen geen idee hoe ik dan in de cellen naast de cel met formule =MAX(13:13) deze informatie kan terughalen. Ik heb al geprobeerd met functie CEL(infotype;verw). het infotype zou dan zijn 'inhoud'. Heb deze op vele manieren geprobeerd maar ik weet eigenlijk al niet eens hoe ik bij een formule die cel kan pakken die links of rechts van de uitgerekende cel krijg. Kan iemand mij helpen? Alvast bedankt!

  • DappereDodo
  • Registratie: Juni 2001
  • Laatst online: 07-01 06:26
in B1:

=als(en(a1>max(13:13);a1>c1);a1;als(en(c1>max(13:13);a1<c1);c1;max(13:13)))

Dus als a1 groter is dan het maximum van rij 13, en groter is dan c1, dan geeft hij A1. Zoniet, als C1 groter is dan het maximum van rij 13 en groter is dan A1, geeft dan C1. Zoniet, geef dan het maximum van rij 13.
Is dat wat je bedoeld?

Verwijderd

Topicstarter
Nee niet echt. Sorry voor de onduidelijke omschrijving, wat wellicht voor de verwarring zorgde. Ik probeer het hieronder wat duidelijker omschrijven:

Ik heb een excelsheet gemaakt om de prestaties van mijn jeugdteam bij hattrick(online voetbal managerspel) te monitoren. Ik voeg zelf per week 3 kolommen toe (vorm, prestatie, positie). Dus nu ik een aantal weken ingevuld heb zijn er meerdere kolommen waarvan er 1 (of meerdere, maar laat ik me daar nu niet druk over maken) de hoogste waarde herbergt. Nou wil ik dus dat gedeelte eruit halen (vorm, prestatie, positie) waarin de beste prestatie staat. Voor de verwijzing van de hoogste prestatie gebruik ik dus ' =MAX(R:R)' maar nu moet ik dus in 2 andere cellen die ik daarbij zet de verwijzing naar de cel links van ' =MAX(R:R)' en de cel rechts van '=MAX(R:R)'. Als dat dus in zn geheel klopt heb je dus als het ware een highlight gemaakt van de beste prestatie ergens in de sheet.

Ik hoop dat het nu wat duidelijker voor eenieder is. Iedere inbreng is welkom ;)

  • brekki
  • Registratie: Januari 2006
  • Laatst online: 31-03 14:54
Gebruik de VLOOKUP functie, daarmee kun je zoeken binnen een kolom, en dan een waarde uit een andere kolom laten zien.

Verwijderd

Ja, inderdaad, zoiets als:

=VLOOKUP(MAX(R:R);R:T;2;FALSE)
=VLOOKUP(MAX(R:R);R:T;3;FALSE)

In dit geval wordt moet je dus de kolom die normaal gesproken links staat van de score, naar rechts verplaatsen. Je kunt naar mijn idee nl. niet met VLOOKUP een kolom naar links gaan.

en dan een concatenate van die 2 in de cel ernaast.

vergeet niet de data eerst te sorteren.

Verwijderd

Wat niet duidelijk was is dat je het in je eerste post over rijeen hebt en daarna over kolommen.

Maar goed, het antwoord is zeer eenvoudig. In kolom R had je je criterium staan, dus als je het getal uit kolom Q wil hebben schrijf je:

{=sum(if(R1:R1000=max(R1:R1000),Q1:Q1000))}

met 1..1000 de nummers van de gevulde rijen.

[ Voor 10% gewijzigd door Verwijderd op 15-05-2007 14:03 ]


Verwijderd

Topicstarter
Geloof nog niet dat het helemaal duidelijk is wat ik bedoel:P maar in ieder geval alvast bedankt voor de moeite. Hieronder nog eens een uitleg met plaatjes.

Afbeeldingslocatie: http://members.lycos.nl/vinniedj/excel_screenshot.JPG
Hier zie je dus een deel van de tabel. In een van deze kolommen zijn dus de hoogste prestaties behaald. Voorbeeld: Op rij 9 (Koen van de Kerkhof) is de hoogste prestatie 2.5 (tegen 0.5). Nou weet ik dus dat ik zoals in het onderste plaatje te zien is, de formule om de beste prestatie in dit geval over rij 9 te vinden is met =MAX(9:9) (weliswaar wordt met 9:9 hele rij bekeken, dus ook leeftijd, welke altijd hoger is dan prestatie dus die formule moet heel licht aangepast worden naar een na hoogste cijfer waarvan ik de notatie even kwijt ben maar dat doet er nu even niet toe).
Afbeeldingslocatie: http://members.lycos.nl/vinniedj/excel_screenshot2.JPG
NU wil ik dus in een tabel daaronder uit die 'brongegevens' naast prestaties de bijbehorende vorm en positie in die wedstrijd ophalen. De positie is dus altijd te vinden in kolom links van beste prestatie en de vorm is te vinden in de kolom rechts van de beste prestatie. Daar gaat mijn vraag dus over. Hoe kan ik deze van beste prestatie afhankelijke cellen daar in die tabel krijgen? Wellicht is het nu ook nog niet helemaal duidelijk, vraag gerust.

Verwijderd

Nee, om heel eerlijk te zijn is het bij mij juist door jouw laatste voorbeeld minder duidelijk geworden. Waarom ga je niet gewoon in op het principe? Dus bijvoorbeeld: ik wil van het maximum uit A1:A10 de bijbehorende cel uit kolom B?

En het is ook handig als je in de plaatjes de kolomnummers kan zien.

Verwijderd

Topicstarter
Ik denk dat mijn eerdere posts niet helemaal duidelijk zijn geweest. Het gaat er kort gezegd om dat ik geen directe verwijzingen voor Vorm en Pos(positie) heb. Deze zijn namelijk indirect en zijn respectievelijk -1/+1 kolom van =MAX(r:r). Hoe moet ik deze 2 waarden dus tevoorschijn halen? Ik denk zelf dat deze informatie vrij simpel op te halen is, maar heb zelf dus absoluut geen idee meer hoe. Wellicht dus niet zo simpel dus maar goed ik denk dat de omschrijving nu wel duidelijk is toch?

Verwijderd

Maar dan werkt mijn eerder genoemde oplossing toch gewoon?

Afbeeldingslocatie: http://tweakers.net/ext/f/dd1c0fd628124c87064ce077f388e14d/full.png

Verwijderd

Topicstarter
Damn, zoals ik het hier zie...Briljant! ik zal hem morgen nog ff uitproberen, nu echt ff geen zin meer. Maar alvast heel erg bedankt grizzly!!!

  • DappereDodo
  • Registratie: Juni 2001
  • Laatst online: 07-01 06:26
@Grizzly: nee, dat werkt niet omdat de hoogste prestatie de ene keer in kolom D staat, en je dus de waarden in C en E moet hebben, en de andere keer in kolom Y, en dan moet je kolom X en Z hebben. Je moet in een bepaalde rij zoeken, en vervolgens moet je weer andere waarden in diezelfde rij hebben.

Eigenlijk druist het tegen al mijn principes in om ook maar enigzins iets te doen wat het beoefenen of bekijken van voetbal bevordert, maar ja, als je A hebt gezegd...

Volgens mij heb je de VERGELIJKEN functie nodig (weet niet hoe dat in het Engels heet). De syntax is VERGELIJKEN(Zoekwaarde, het gevonden maximum dus; Zoekbereik, de hele rij dus; benaderen/niet benaderen, ONWAAR in dit geval lijkt me).
Als resultaat krijg je dan het nummer van de kolom waarin de zoekwaarde staat (als je zoekbereik van kolom C t/m Z loopt, is een 1 dus kolom C).

Vervolgens kun je met de INDEX formule vanaf een bepaald punt een op te geven aantal kolommen naar rechts springen. In dit geval dus INDEX(R:R; 1; VERGELIJKEN(MAX(R:R); R:R; ONWAAR) - 1), voor de kolom links van de kolom waar het maximum in staat.

Simpel is het niet, maar het zou moeten werken.

Verwijderd

FantaRulez schreef op dinsdag 15 mei 2007 @ 22:27:
@Grizzly: nee, dat werkt niet omdat de hoogste prestatie de ene keer in kolom D staat, en je dus de waarden in C en E moet hebben, en de andere keer in kolom Y, en dan moet je kolom X en Z hebben.
Ik geef alleen de oplossing zoals gevraagd in de laatste post van de TS.

Maar door jouw opmerking snap ik nu ook de plaatjes van de TS. Het is natuurlijk een kwestie van rangschikken, maar als het zo is als jij bedoeld wordt het i.d.d. moeilijk. Twee redenen dat het moeilijk is:

* positie, vorm en prestaties (per speler!) staan in zelfde "array";

* TS is niet op zoek naar een getal, dus normale operatoren werken niet.

Maar als TS data dus (i) anders rangschikt en (ii) getallen toekent aan positie en vorm dan gaat het alemaal gewoon werken.

Verwijderd

Om hier nog even op terug te komen.

Als de TS een andere structuur aanhoudt wordt e.e.a. veel simpeler:

naam datum vorm prestatie positie

En dit gewoon elke keer naar onderen aanvullen.

Om de analyse te doen zeg je:

{=sum(if(A="naam",if(...................)))}

en je kan elke doorsnee bepalen (let op: sum() zegt hier niets, je moet alleen een functie gebruiken. sum(getal) = getal natuurlijk).

M.a.w. fout die de TS maakt is dat ie de datum niet gewoon in 1 van de kolommen opneemt. Dit komt het overzicht natuurlijk niet ten goede, maar het doel van TS is toch (blijkens dit topic) analyses uitvoeren.

[ Voor 3% gewijzigd door Verwijderd op 15-05-2007 23:27 ]


Verwijderd

Topicstarter
Ik ben nu op mijn werk, zal dus wellicht vanavond nog even ermee gaan stoeien. Maar even @grizzly:
Het gaat dus wel om een getal waarnaar ik opzoek ben (de prestatie is wel in getal uitgedrukt). Aan de hand daarvan wil ik dus zien wat de bijbehorende vorm en positie is. Wellicht kan ik beter in de kolommen de namen opnemen, maar dan heb ik dus per week 3 rijen nodig (1 vorm, 1prestatie, 1positie). Ik zal dus nog wel een terugkoppeling geven van mijn bevindingen n.a.v. jullie inbreng. Nogmaals dank voor jullie welwillendheid om mee te werken.

  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 23:17
Afbeeldingslocatie: http://farm1.static.flickr.com/226/500625429_a8fe6856b4.jpg
Ik denk dat je dit zoekt.

Verwijderd

onkl:dat is het mi inderdaad. het moet ook mogelijk zijn de resultaten voor beste pos & vorm met slechts 2 samengestelde formules te bekomen, ipv. de 3 kolommen met tussenresultaten en de 2 voor de eindresultaten. (eerste kolom met match-formule kan ook gewoon door rij(ref) vervangen worden.)

  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 23:17
Ja, het kan idd compacter, maar die excercitie had ik ter meerdere eer en glorie van de overzichtelijkheid maar even weggelaten.

[ Voor 10% gewijzigd door onkl op 16-05-2007 15:50 ]


Verwijderd

Topicstarter
Met de formule van FantaRulez heb ik de gewenste resultaten (INDEX(R:R; 1; VERGELIJKEN(MAX(R:R); R:R; ONWAAR) - 1), ). Ik zal nog eens kijken naar de manier van onkl maar ik denk nu dat ik een goeie oplossing heb, waarvoor veel dank. (Dus ik denk dat dit topic wel gesloten kan worden)

  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 23:17
Verwijderd schreef op donderdag 17 mei 2007 @ 12:36:
Met de formule van FantaRulez heb ik de gewenste resultaten (INDEX(R:R; 1; VERGELIJKEN(MAX(R:R); R:R; ONWAAR) - 1), ). Ik zal nog eens kijken naar de manier van onkl maar ik denk nu dat ik een goeie oplossing heb, waarvoor veel dank. (Dus ik denk dat dit topic wel gesloten kan worden)
Mijn manier is vergelijkbaar, dus zou ik er niet veel verder naar kijken.
Pagina: 1