[Excel]Dubbel verticaal zoeken

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

  • 456
  • Registratie: April 2000
  • Niet online

456

Onze excuses voor het ongemak

Topicstarter
Ik heb een tabel waarin aan 2 voorwaarden moet worden voldaan voordat er iets gezocht kan worden:

Dit is de tabel:
Route - Eindbestemming - Kilometers
1 - Utrecht - 5
Amsterdam - 40

2 - Utrecht - 5
Amersfoort - 30

Stel, ik wil van route 1, de eindbestemming Utrecht hebben, het aantal kilometers.
Nu kan ik eerst verticaal op route 1 zoeken, maar nu moet ik nog utrecht uit die tabel zien te searchen.
Kan dit met simpel verticaal zoeken? Moet ik een andere functie gebruiken? Of moet dit (liever niet) VBA worden (case functie).

Een dag geen vertraging, is een dag niet gereisd


  • 456
  • Registratie: April 2000
  • Niet online

456

Onze excuses voor het ongemak

Topicstarter
Eigenlijk in de lijn van deze vraag, wil ik nu een andere stellen, want bovenstaand probleem is ondervangen (op andere manier dan een formule):

Ik wil het aantal keren dat een bepaalde combinatie in een sheet voorkomt tellen:
Afbeeldingslocatie: http://stuwww.kub.nl/~s990868/xcl.jpg

Nu wil ik het aantal keren tellen dat de combinatie 1 EN TREIN gemaakt kan worden.
Nu is het aantal keren dat ik trein tel:
code:
1
=AANTAL.ALS(E:E;"TREIN")

Maar hoe kan ik nu het aantel TREIN tellen wanneer enkel in routenr een '1' staat?

tnx. in advance

Een dag geen vertraging, is een dag niet gereisd


  • Skinny
  • Registratie: Januari 2000
  • Laatst online: 13-09 23:09

Skinny

DIRECT!

Het enige wat ik zo snel kan bedenken is de volgende :


Afbeeldingslocatie: http://www.endoria.net/upload/?bekijk=1010504188

Dus een extra kolom met een EN funktie en daar een AANTAL.ALS op loslaten.

SIZE does matter.
"You're go at throttle up!"


Verwijderd

Waarom ga je niet met een DBMS werken? Wordt alles een stuk simpeler / overzichtelijker van lijkt me... :-/

  • 456
  • Registratie: April 2000
  • Niet online

456

Onze excuses voor het ongemak

Topicstarter
moet ik daar nu nog veel voor veranderen? Ik bedoel, het bestandje is 'af'. Dat wil zeggen, de invoer en de gegevens waar me invoer een berekening moet uitvoeren.
Enkel de uitvoer moet nu gedaan worden (bestand is een oud Lotus programma, en is nu 'vertaald' naar excel)

Kan ik die database gewoon declareren in het invoer veld?

Een dag geen vertraging, is een dag niet gereisd


  • 456
  • Registratie: April 2000
  • Niet online

456

Onze excuses voor het ongemak

Topicstarter
Kan ik trouwens dan wel SQL commandos invoeren? Ik kan dit momenteel niet uitvoeren/uitproberen want ik moet het op mijn werk doen, en momenteel ligt mijn office cd daar.

Maar het sql commando lijkt me wel te doen nl.

Een dag geen vertraging, is een dag niet gereisd


Verwijderd

Op dinsdag 08 januari 2002 22:35 schreef 456 het volgende:
Kan ik trouwens dan wel SQL commandos invoeren? Ik kan dit momenteel niet uitvoeren/uitproberen want ik moet het op mijn werk doen, en momenteel ligt mijn office cd daar.

Maar het sql commando lijkt me wel te doen nl.
Ik ben echt een n00b in excell, maar je kunt in access wel SQL query's maken..
Access en Excell zijn toch heel makkelijk te koppelen zo !?
Anders moet je eens kijken op oracle.com ;)

  • RRX
  • Registratie: Mei 2000
  • Laatst online: 25-08 23:43

RRX

@life-

Even mijn excel skilzz weer opgehaald :)
code:
1
=ALS(AANTAL.ALS(E:E;"TREIN");AANTAL.ALS(A:A;2);)

mijn T.net systeemspecspagina


  • 456
  • Registratie: April 2000
  • Niet online

456

Onze excuses voor het ongemak

Topicstarter
Op dinsdag 08 januari 2002 23:33 schreef RRX het volgende:
Even mijn excel skilzz weer opgehaald :)
code:
1
=ALS(AANTAL.ALS(E:E;"TREIN");AANTAL.ALS(A:A;2);)
Nope.
Want nu doet hij ALLE 1tjes tellen... (Of zoals in je gegeven code alle 2tjes, maar die staan niet in mijn vb ;) )
Als je de formule omdraait (dus eerst de aantal.als functie toepassen op de kolom a) dan komt de waarde van alle treinen eruit rollen.
Ofwel, hij past alleen de aantal.als functie toe op de eerste conditie.
Maar ik heb deze formule al eens eerder gehad, en voel dat ik warm zit.. Maar ik zie het gewoon niet.

Een dag geen vertraging, is een dag niet gereisd


  • RRX
  • Registratie: Mei 2000
  • Laatst online: 25-08 23:43

RRX

@life-

Op dinsdag 08 januari 2002 23:49 schreef 456 het volgende:

[..]

Nope.
Want nu doet hij ALLE 1tjes tellen... (Of zoals in je gegeven code alle 2tjes, maar die staan niet in mijn vb ;) )
Als je de formule omdraait (dus eerst de aantal.als functie toepassen op de kolom a) dan komt de waarde van alle treinen eruit rollen.
Ofwel, hij past alleen de aantal.als functie toe op de eerste conditie.
Maar ik heb deze formule al eens eerder gehad, en voel dat ik warm zit.. Maar ik zie het gewoon niet.
Vreemd, bij mij werkt dat gewoon?

ik ga nog een keer proberen...

[edit]_______________________________

Onee, werkt idd niet |:(

mijn T.net systeemspecspagina


  • RRX
  • Registratie: Mei 2000
  • Laatst online: 25-08 23:43

RRX

@life-

Weet iemand of er een while-funtie in excel zit? en hoe die in het nederlands heet (niet terwijl)

mijn T.net systeemspecspagina


  • 456
  • Registratie: April 2000
  • Niet online

456

Onze excuses voor het ongemak

Topicstarter
Iedereen zat er goed naast ;)

Je moet de rijen/kolommen als array zien. In excel kun je dat doen door de functie met ctrl+shift+enter in te voeren. Dus ipv enteren.
Je krijgt dan accolades om de formule heen, wat voor Excel inhoudt dat hij de kolommen als arrays moet zien, in plaats van kolommen met platte inhoud.


De formule wordt nu:
{=SOM((D5:D35=0)*(A5:A35=1);1;0)-1}

De 1 en de 0 moet er staan voor toewijzing van TRUE or FALSE.
Dus er een juiste combinatie wordt gevonden (TRUE) dan is dat waarde 1. Aan het einde van de rit, bij het doorlopen van de hele array, moet hij alle eentjes optellen. De 0 is natuurlijk FALSE.
De -1 is omdat hij vanaf het begin af aan al een 1 staat. Ook al staat er NIETS in de cellen. Ondervangen op deze manier :D
Voor meer informatie:
http://www.cpearson.com/excel/array.htm

Een dag geen vertraging, is een dag niet gereisd


  • RRX
  • Registratie: Mei 2000
  • Laatst online: 25-08 23:43

RRX

@life-

Op woensdag 09 januari 2002 18:31 schreef 456 het volgende:
Iedereen zat er goed naast ;)

Je moet de rijen/kolommen als array zien. In excel kun je dat doen door de functie met ctrl+shift+enter in te voeren. Dus ipv enteren.
Je krijgt dan accolades om de formule heen, wat voor Excel inhoudt dat hij de kolommen als arrays moet zien, in plaats van kolommen met platte inhoud.


De formule wordt nu:
{=SOM((D5:D35=0)*(A5:A35=1);1;0)-1}

De 1 en de 0 moet er staan voor toewijzing van TRUE or FALSE.
Dus er een juiste combinatie wordt gevonden (TRUE) dan is dat waarde 1. Aan het einde van de rit, bij het doorlopen van de hele array, moet hij alle eentjes optellen. De 0 is natuurlijk FALSE.
De -1 is omdat hij vanaf het begin af aan al een 1 staat. Ook al staat er NIETS in de cellen. Ondervangen op deze manier :D
Voor meer informatie:
http://www.cpearson.com/excel/array.htm
cool :) dat had ik zelf niet bedacht :)

mijn T.net systeemspecspagina

Pagina: 1