Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Nb de lignes répondant à un critère...

6 réponses
Avatar
Yvan
Bonjour,

J'ai un tableau avec 4 colonnes, et je veux savoir combien de lignes
répondent aux critères Colonne1="Truc1" et Colonne2="Truc2" et
Colonne3="Truc3".

Dois-je utiliser une boucle ou y-a-t-il une méthode plus simple ???
--
Merci pour vos réponses.

6 réponses

Avatar
JB
Bonjour

=SOMMEPROD((A2:A10="truc1")*(B2:B10="truc2")*(C2:C10="truc3"))


JB

On 18 mai, 16:26, Yvan wrote:
Bonjour,

J'ai un tableau avec 4 colonnes, et je veux savoir combien de lignes
répondent aux critères Colonne1="Truc1" et Colonne2="Truc2" et
Colonne3="Truc3".

Dois-je utiliser une boucle ou y-a-t-il une méthode plus simple ???
--
Merci pour vos réponses.


Avatar
FFO
Salut Yvan
Solution macro :
For Each c In Worksheets("Feuil1").Range([A1], [C65535].End(xlUp))
If c = "Truc1" Or c = "Truc2" Or c = "Truc3" Then
n = n + 1
End If
Next
MsgBox (n)

Une autre solution peut être


Bonjour,

J'ai un tableau avec 4 colonnes, et je veux savoir combien de lignes
répondent aux critères Colonne1="Truc1" et Colonne2="Truc2" et
Colonne3="Truc3".

Dois-je utiliser une boucle ou y-a-t-il une méthode plus simple ???
--
Merci pour vos réponses.


Avatar
titou
Bonjour,

Une petite question moi j'utilise le SOMMEPROD que j'utilise avec
l'enregistrement.

Ma question est :
Laquel des deux solutions proposées est la plus rapide en tps de calcul ?


Merci

Thierry



Salut Yvan
Solution macro :
For Each c In Worksheets("Feuil1").Range([A1], [C65535].End(xlUp))
If c = "Truc1" Or c = "Truc2" Or c = "Truc3" Then
n = n + 1
End If
Next
MsgBox (n)

Une autre solution peut être


Bonjour,

J'ai un tableau avec 4 colonnes, et je veux savoir combien de lignes
répondent aux critères Colonne1="Truc1" et Colonne2="Truc2" et
Colonne3="Truc3".

Dois-je utiliser une boucle ou y-a-t-il une méthode plus simple ???
--
Merci pour vos réponses.




Avatar
FFO
Bonjour Titou
Je pense que la vitesse d'execution doit être sensiblement similaire
Ce qui diffère c'est que pour l'une "SOMMEPROD" étant une formule dans une
cellule le résultat s'obtient sans intervention et de manière systématique
quant aux modifications des cellules auxquelles il fait appel
Et que pour l'autre "macro" son execution est necessaire pour l'obtenir et
ce pour toute modification qui peut en changer le résultat
Donc nécessité d'intervention

Malgré tout j'utilise peu les formules et les fonctions car elles
alourdissent concidérablement la feuille et rendent pas trés facile son
utilisation à d'autre fin

Je préfère souvent la solution macro qui au bout du compte laisse une
feuille propre avec ces seules valeurs

Il en reste pas moins que les formules et fonctions ont l'énorme avantage de
faire suivre automatiquement tout changement et c'est un point non négligeable

A chacun d'y trouver son compte en fonction de ses contraintes

Espérant avoir répondu à ton attente





Bonjour,

Une petite question moi j'utilise le SOMMEPROD que j'utilise avec
l'enregistrement.

Ma question est :
Laquel des deux solutions proposées est la plus rapide en tps de calcul ?


Merci

Thierry



Salut Yvan
Solution macro :
For Each c In Worksheets("Feuil1").Range([A1], [C65535].End(xlUp))
If c = "Truc1" Or c = "Truc2" Or c = "Truc3" Then
n = n + 1
End If
Next
MsgBox (n)

Une autre solution peut être


Bonjour,

J'ai un tableau avec 4 colonnes, et je veux savoir combien de lignes
répondent aux critères Colonne1="Truc1" et Colonne2="Truc2" et
Colonne3="Truc3".

Dois-je utiliser une boucle ou y-a-t-il une méthode plus simple ???
--
Merci pour vos réponses.






Avatar
AV
Si je puis me permettre et juste pour faire avancer le smilblick ...

La macro que tu proposes ne répond pas à la question qui est de décompter sous
réserve que les 3 tests soient SIMULTANEMENT vérifiés (test logique ET)

Je pense que la vitesse d'execution doit être sensiblement similaire


Pas vraiment car une boucle sur chacune des cellules est considérablement plus
longue à éxécuter qu'une solution faisant appel à une fonction native d'Excel

Malgré tout j'utilise peu les formules et les fonctions car elles
alourdissent concidérablement la feuille


Le moins qu'on puisse dire est que cette affirmation est totatement erronée...

Je préfère souvent la solution macro qui au bout du compte laisse une
feuille propre avec ces seules valeurs


La notion de "propre" n'est en rien une garantie d'éfficacité...

L'apprentissage d'XL passe d'abord par l'apprentissage des formules utilisant
les fonctions natives et des fonctionnalités résidentes (tris, filtres, tcd...)
bien avant de mettre le nez dans le vba.

Voili, voilà, c'était ma contribution dominicale à 3 sous

AV

Avatar
FFO
Salut AV
Nous serons donc 2 interlocuteurs en parfait desaccord
L'une pour la qualité du résultat de mon code :
Il répond exactement à la demande telle qu'elle est formulée
"Les lignes qui répondent aux critères Colonne1="Truc1" et Colonne2="Truc2"
et
Colonne3="Truc3". "
Si "et" il y a pour moi c'est pour cumuler les colonnes à prendre en
considération
Les lignes donc qui colonne A répondent à la valeur "Truc1" et Colonne B
celles qui répondent à la valeur "Truc2" et Colonne C celles qui répondent à
la valeur "Truc3"
En aucun cas les 3 critères sont à prendre en considération pour chaque ligne
En bon français celui de Molière une telle demande devrait être :
Chaque ligne a colonne A Critère1, colonne B Critére2, colonne C critère3
Et de calculer leur nombre

Et les autres pour :
Je maintiens que dans le cas d'espèce et c'est le cas de "titou" le temps
d'execution est sensiblement identique à la seconde prés entre un code et des
formules
Voir quelques secondes si le nombre de lignes à traiter est important

Je maintiens aussi que si les formules présentent beaucoup d'avantage c'est
indéniable ont l'énorme inconvénient d'alourdir la feuille contrairement à
une Macro

En conclusion les 2 solutions ont des avantages et des inconvénients
A chacun d'opter pour l'une ou l'autre en fonction de ses contraintes


A bientôt à tous pour ce débat d'idée et ces divergences d'opinion
Tous les avis ont droit de cité



Si je puis me permettre et juste pour faire avancer le smilblick ...

La macro que tu proposes ne répond pas à la question qui est de décompter sous
réserve que les 3 tests soient SIMULTANEMENT vérifiés (test logique ET)

Je pense que la vitesse d'execution doit être sensiblement similaire


Pas vraiment car une boucle sur chacune des cellules est considérablement plus
longue à éxécuter qu'une solution faisant appel à une fonction native d'Excel

Malgré tout j'utilise peu les formules et les fonctions car elles
alourdissent concidérablement la feuille


Le moins qu'on puisse dire est que cette affirmation est totatement erronée...

Je préfère souvent la solution macro qui au bout du compte laisse une
feuille propre avec ces seules valeurs


La notion de "propre" n'est en rien une garantie d'éfficacité...

L'apprentissage d'XL passe d'abord par l'apprentissage des formules utilisant
les fonctions natives et des fonctionnalités résidentes (tris, filtres, tcd...)
bien avant de mettre le nez dans le vba.

Voili, voilà, c'était ma contribution dominicale à 3 sous

AV