Recherche orientation vers formule de calcul à plusieurs critère

Résolu/Fermé
Signaler
Messages postés
82
Date d'inscription
samedi 13 août 2011
Statut
Membre
Dernière intervention
28 novembre 2019
-
Messages postés
82
Date d'inscription
samedi 13 août 2011
Statut
Membre
Dernière intervention
28 novembre 2019
-
Bonjour,

Pour mon exemple, je dresserais un tableau sur deux colonnes et 4 lignes.
De sorte à ce que "A1" contienne le texte "titre", "A2" contient un autre titre, ainsi desuite.
Mais le problème est qu'il peut arriver que ma colonne "A" contienne "titre + titre" ou encore "titre + titre + titre".
B1 contient une info, par exemple "Répertoire V", ainsi de suite. Il se peut que la colonne "B" contienne un autre nom de répertoire (Répertoire H par exemple).

je recherche donc une formule pour me calculer le nombre (texte) de "+" dans la colonne A, par rapport au critère du nom de répertoire choisit de la colonne B.
J'ai regardé sur google et trouvé quelques fonctions, formules, mais je n'arrive pas à ce que je veut.
J'ai essayé entre autre SOMMEPROD, SOMME.ENS.SI, NB.SI, NB.ENS.SI
des mélanges avec NBCAR et même des mélanges avec les autres...

Voici ma formule qui me calcule tout mes "+" (et qui fonctionne (pour calculer le nombre total de+ (mais pas le nombre total de "titre"):
NB.SI(A1:A4;"*+*")+NB.SI(A1:A4;"*+*"&"*+*")

Biensur les appellations "titres" sont destiné à l'exemple, en réalité ils sont différents et donc il n'y en a aucun pareil.

Voici la condition que j'aimerai y ajouter :
NB.SI(B1:B4;"Répertoire V")


Alors j'ai essayé par exemple ceci:
=NB.SI.ENS((NB.SI(A1:A4;"*+*")+NB.SI(A1:A4;"*+*"&"*+*"));B1:B4;"Répertoire V")
Cette formule n'est pas bonne visiblement...
NB.SI.ENS(A1:A4;"*+*"&"*+*";B1:B4;"Répertoire V")
Cette formule ne me donne pas le résultat attendu.

et beaucoup d'autres essais... sans résultat, soit je suis bloqué par une formule invalide, soit par un résultat incorrect.

______

Pour situer mon tableau, voici sont architecture pour l'exemple :
remplissage des cellules :
A1 : titre
A2 : titre + titre
A3 : titre + titre + titre
A4 : titre + titre

B1 : Répertoire V
B2 : Répertoire H
B3 : Répertoire V
B4 : Répertoire V

Je voudrais donc calculer le nombre totale de "+" (4 dans l'exemple) et pas seulement le nombre de lignes qui contiennent un "+" par ligne (3 dans l'exemple).
Mais comme vous l'aurez compris, il faut aussi que le calcul se fasse par rapport à la colonne B.
De ce fait, ma liste de résultat doit être comme suivant:

2 "titre" en "Répertoire H" (la formule trouve 1 "+")
6 "titres" en "Répertoire V" (la formule trouve 3 "+")


En espérant avoir était assez clair, je vous remercie par avance pour votre aide.






4 réponses

Messages postés
13332
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
17 janvier 2022
2 323
Bonsoir RomantikA,

Une possibilité en rajoutant une colonne de comptage en C :
Formule en C1 à étirer vers le bas : =NBCAR(A1)-NBCAR(SUBSTITUE(A1;"+";""))+1

Ensuite dans la cellule de ton choix la formule
=SOMMEPROD((B1:B4="Répertoire V")*(C1:C4)) donnera bien 6
et la formule =SOMMEPROD((B1:B4="Répertoire H")*(C1:C4)) donnera 2


Autre possibilité sans colonne de comptage :
=SOMMEPROD((NBCAR(A1:A4)-NBCAR(SUBSTITUE(A1:A4;"+";"")))*(B1:B4="Répertoire V"))+NB.SI(B1:B4;"Répertoire V") donnera 6

Cdlmnt
Via
"L'imagination est plus importante que le savoir."    A. Einstein
1
Messages postés
13332
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
17 janvier 2022
2 323
Bonjour,

Tu présumes bien, alors essaie :
+NB.SI.ENS(B1:B5;"Répertoire V";A1:A5;;"<>"&"")

Cdlmnt
Via
1
Messages postés
82
Date d'inscription
samedi 13 août 2011
Statut
Membre
Dernière intervention
28 novembre 2019
8
Pfiou! parfait!

du coup pour mon cas, même si dans la forme il y avait un petit bug, dans la logique c'était correct.
(car si j'efface un titre, logiquement le nom de répertoire doit être supprimé, donc au final c'était quand même très logique, ça ne dérangeait pas.)

Mais pour le coup, avec cette modification, c'est parfait à "tous" les niveaux.
ça me met même un "0" lorsque j'ai plus de titre... (même si pour le coup ça ne sert à rien, car finalement, comme je disait, si le titre est effacé, dans la logique le nom répertoire l'est aussi.... mais on va dire que dans le doute ça ira bien ^^)
je vais quand même faire les modifs. :) que vous ne vous soyez pas embêté pour rien ^^).
et puis vaux mieux être trop prévoyant que pas assez à ce qu'on dit^^

Donc c'est une bien belle formule.
donc pour la forme, la formule correcte est la suivante (pour ceux que ça intéresse) :

=SOMMEPROD((NBCAR(A3:A10)-NBCAR(SUBSTITUE(A3:A10;"+";"")))*(B3:B10="Répertoire H"))+NB.SI.ENS(B3:B10;"Répertoire H";A3:A10;"<>"&"")

Merci beaucoup :)
0
Messages postés
327
Date d'inscription
mercredi 31 mars 2010
Statut
Membre
Dernière intervention
18 janvier 2021
5
pourriez vous nous mettre un petit fichier pour que ca soit plus clair ? merci bonne soiree
0
Messages postés
82
Date d'inscription
samedi 13 août 2011
Statut
Membre
Dernière intervention
28 novembre 2019
8
Heu... merci. :)

par contre j'ai un pitit problème… c'est que si j'efface les deux titres de A2, le résultat général pour le répertoire en question (en D7) me donne 1 au lieu de 0
mais je présume que ce n'est pas tout à fait un problème, parceque si on part du principe que si il n'y a pas de titre (en A2), alors il ne devrait pas y avoir l'identifiant
du répertoire (en B2). Donc forcément il doit au moins y avoir 1 titre pour être comptabilisé (donc obligatoirement un nom de répertoire…) Donc au pire ça ne devrait pas trop me déranger... je verrais bien à l'utilisation.

De même, si j'efface le titre en A1, le résultat général du répertoire V (en D6) me compte pour le coup 1 de plus (comme si A1 était toujours présent)
Alors je présume que lorsque A est vide, la formule me compte 1 en plus à cause de la condition "+NB.SI(B1:B5;"Répertoire V")"


du coup j'ai pensé à un petit "Si" avec cette formule: SI(A1<=0; "0";"1") , mais je ne vois pas comment l'ajouter. J'ai aussi essayé avec un Si(ou) : SI(OU(A1="titre 1";B1="Répertoire V");"Répertoire V";"VIDE")
mais ça reviens au même.

ralala, que c'est pénible quand on est pas assez calé pour faire ce qu'on aimerai pouvoir faire... :/
Enfin au pire c'est juste pour que le calcul soit logique, Parceque pour mon cas c'est inutile. Si cellule de A est vide (donc le titre n'est pas noté, forcément la cellule correspondante en B sera vide.
Donc le résultat sera correct.


Merci beaucoup pour votre aide via55.
J'ai choisi pour ce cas-ci la deuxième méthode (sans colonne supplémentaire)
mais je retiens la première méthode. D'ailleurs je crois que j'avais déjà utilisé une parti de ce système pour un autre calcul plus complexe. Merci de vous être donné la peine de me présenter ces différentes solution. C'est très appréciable.

Merci aussi à Guerando. J'espère que ce fichier exemple vous en dira plus: :)

Le lien sera valable 15 jours : https://www.transfernow.net/?utm_source=partagefichierscom&utm_medium=download
Utilisateur : 2i3hxdhx
Mot de passe : btr5l9hm

0