Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Conditioneel tellen in een gefilterde bereik

1,295 views
Skip to first unread message

Pieter Kuyck

unread,
Dec 1, 2002, 8:57:10 AM12/1/02
to
NG,

Volgend probleem.
Ik heb een tabel met diverse kolommen, waarbij het aantal zichtbare regels
geteld moet worden, na het toepassen van een filter. Tot zover geen
probleem, het tellen kan met de functie SUBTOTAAL(3,bereik) dit geeft het
aantal zichtbare regels.
Nu komt het probleem;
ik moet conditioneel de zichtbare regels tellen, dus afhankelijk van de
waarde van de zichtbare cellen in een kolom moeten deze geteld worden.

Simpel voorbeeld
Kolom A Kolom B
a z
a z
a z
b z
a v
a v
b v

Als er gefilterd wordt op kolom B met als voorwaarde =z, dan zijn er vier
rijen (plus de kopregel) zichtbaar, nu wil ik weten hoeveel cellen in kolom
A een 'a' bevatten en hoeveel er een 'b' (in voorbeeld a=3 en b=1).
Dit heb ik opgelost via een VBA routine, kan dit via een werkbladfunctie en
zo ja hoe?

Pieter


Ingrid

unread,
Dec 1, 2002, 9:10:18 AM12/1/02
to
In plaats van te filteren en SUBTOTAAL denk ik dat je beter gebruik maakt
van:

=SOMPRODUCT((voorwaarde kolomA)*(voorwaarde kolom B))

Een woordje uitleg over deze functie kan je vinden bij de vorige vraag in
deze ng "som(als formule".

Ingrid

Pieter Kuyck schreef in news:ey1M9FUmCHA.1740@tkmsftngp07

Pieter Kuyck

unread,
Dec 1, 2002, 9:23:33 AM12/1/02
to
Ingrid,

Het filteren heb ik niet in de hand, dit wordt door de gebruiker gedaan.
Oftewel ik weet niet de voorwaarde van kolom B.
Toch zal het aantal zichtbare rijen geteld moeten worden waarbij in een
bepaalde kolom een bepaalde waarde staat. Hoe kan ik dit met een matrix
formule oplossen, voor zover ik het begrijp werken deze op alle regels in
een bereik en niet alleen op de zichtbare rijen.
Is er een oplossing door de voorwaarde van het filter uit te lezen en deze
te gebruiken (in een werkbladfunctie)?

Pieter

"Ingrid" <ingrid_bap...@hotmail.com> wrote in message
news:uFQ5iMUmCHA.2592@tkmsftngp02...

john philippen

unread,
Dec 2, 2002, 11:03:16 AM12/2/02
to
Kijk eens of je iets kan doen met de volgende functie

aantal.als(bereik;criteria)

Een andere optie is het werken met een draaitabel en het
veld waarop je de aantal wilt in het gegevensgebied
slepen. Door dit veld als aantal in te stellen krijg je
echt alles wat je hart(je) maar kan wensen en dus ook je
gebruikers

mail me anders maar een deel van het werkblad of indien
het niet groot is het werkblad dan stuur ik je een
voorbeeld ervan terug

suc 6

John Philippen

>.
>

Pieter Kuyck

unread,
Dec 2, 2002, 11:27:22 AM12/2/02
to
John,

Aantal.Als(bereik;Criteria) zal niet werken aangezien deze de gehele tabel
gebruikt en niet alleen de zichtbare regels (na het instellen van een
filter)

Begrijp ik het goed, een draaitabel wordt automatisch geupdated zodra de
gefilterde tabel - waarop de draaitabel is gebaseerd - wordt gewijzigd?

Ik heb namelijk geen controle over het instellen van een filter, dit wordt
door de gebruikers gedaan. Ook de optie van zelf de draaitabel inlaten
stellen niet wenselijk aangezien op basis van het resultaat er grafieken
getoond worden.
Nu wordt het via een VBA routine opgelost, en dit werkt goed en zonder
problemen. Alleen zodra de gebruiker de tabel gaat filteren moet de VBA
routine opnieuw gestart worden en juist deze handeling wil ik eruit halen ->
dus automatisch het resultaat opnieuw berekenen zodra de gebruiker de tabel
gaat filteren of het filter gaat wijzigen.
In eerste instantie wil ik dit via standaard werkblad functies oplossen, als
dit niet mogelijk blijkt dan is het op te lossen via VBA en het afvangen van
een SelectionChange event. Met standaard werkblad functie bedoeld dus niet
door de gebruiker het instellen van een draaitabel. Nog andere kanttekening,
momenteel wordt deze routine door een kleine 50 mensen gebruikt, vele van
hun hebben minimale excel kennis.

Dus ik zoek een uitsluitend naar een oplossing via standaard
werkbladfuncties zonder dat de gebruiker iets moet doen.

Pieter


"john philippen" <snoz...@hotmail.com> wrote in message
news:01a001c29a1c$52e7cd00$89f82ecf@TK2MSFTNGXA01...

Ingrid

unread,
Dec 2, 2002, 11:44:57 AM12/2/02
to
Het enige alternatief is volgens mij om een User Defined Fuction te maken.

Met werkbladfuncties kan dit denk ik enkel via een uitgebreid filter, en dan
kan je gebruik maken van dat criteria om met database-functies te werken.
Maar ik denk niet dat dit aangewezen is voor de meeste gebruikers.

Ingrid

Pieter Kuyck schreef in news:#biAQ9hmCHA.2224@tkmsftngp02

Pieter Kuyck

unread,
Dec 2, 2002, 1:04:53 PM12/2/02
to
Ingrid,

Daar was ik al bang voor, dus toch via VBA oplossen..

Pieter

"Ingrid" <ingrid_bap...@hotmail.com> wrote in message

news:asg2ln$plue5$1...@ID-164731.news.dfncis.de...

Ingrid

unread,
Dec 2, 2002, 1:08:29 PM12/2/02
to
Of een cursus Uitgebreid filter voor de gebruikers :-)

Ingrid

Pieter Kuyck schreef in news:esYrO1imCHA.2708@tkmsftngp04

Pieter Kuyck

unread,
Dec 2, 2002, 1:12:24 PM12/2/02
to
pfffffff

dan maar VBA

Pieter


"Ingrid" <ingrid_bap...@hotmail.com> wrote in message

news:asg7id$r6bl0$1...@ID-164731.news.dfncis.de...

0 new messages