formule pourdéterminer le nombre de cellules différentes

L

Lobry

Guest
Hello à tous
1ère requête
je suis à la recherche d'une formule qui me permettera de déterminer dans une colonne de 3500 lignes combien de cellules sont différentes.
Exemple du résultat souhaité en ligne 11:
A1:N° du site B1:Réf produit C1:Quantité
A2:35200 B2:X C2:10
A3:32000 B3:X C3:15
A4:32000 B4:Y C4:8
A5:31000 B5:X C5:12
A6:31000 B6:X C6:12
A7:31000 B7:Y C7: 5
A8:31200 B8:Y C8:25
A9:31300 B9:X C9:15
A10:31300 B10:X C10:12

A11:5 B11:2 C11:6

2ème requête
de plus j'ai besoins d'additionner plusieurs cellules entres elles en fonction de plusieurs critères situés dans des colonnes différentes.
Voici mes impératifs: inscrire en A15 la somme des quantités du produit X du site 31000.(Normalement on devrait trouver 24)

Voilà, j'espère avoir de l'aide très vite, merci d'avance à tous.
 
G

Gérard DEZAMIS

Guest
Bonjour Lobry

Pour la deuxième partie :

=SOMMEPROD((B2:B10="X")*(A2:A10=31000)*(C2:C10))
A toi de remplacer les B2:B10 A2:A10 C2:C10 par les plages correspondantes (plus pratique de les nommer)

Pour l'instant et pour le début .... je flotte ... je nage !
@+
GD
 
M

Monique

Guest
Bonjour,

Première partie de ta question : nb de valeurs uniques dans une plage.

S'il n'y a pas de cellules vides :
=SOMMEPROD(1/NB.SI(A2:A3500;A2:A3500))

S'il y a des cellules vides :
=SOMME(SI(ESTVIDE(A2:A3500);"";1/NB.SI(A2:A3500;A2:A3500)))
=SOMME(SI(A2:A3500<>"";1/NB.SI(A2:A3500;A2:A3500)))
Les 2 dernières sont à valider en appuyant simultanément sur ctrl, maj et entrée.

Tu en as d'autres (ne prendre en compte que les valeurs remplissant certaines conditions)
dans la feuille "Valeurs Uniques" du classeur "SommeProd_SumProduct II" en téléchargement ici :
<http://www.excel-downloads.com/html/French/fichiers/programmation-date_maj-1.htm>
 
L

Laurent Cheval

Guest
trop fort.

est ce que tu peux m'expliquer comment marche la première formule sans cellule vide avec sommeprod et nb.si


Aussi, j'aurais une autre demande : voilà, j'ai une liste de commande de différents clients.

la fonction précédente me permet de savoir le nb de client.

voilà ensuite, j'aimerais avoir dans une autre feuille de calcul, une ligne pour chaque client avec le nombre de commandes par exemple. Seulement, j'aimerais que cela se fasse automatiquement, c'est à dire que je n'ai pas à écrire à la main une ligne par client. (j'utiliserais une macro)

merci d'avance
 
M

Monique

Guest
Re,

La 3ème question (je t'ai pris pour Lobry, qui a démarré le fil)
Tes nombres de commandes en feuille 1, colonne B
Total de commandes par client, en feuille "Recap", en B2 :
=SI(A2="";"";SOMMEPROD((Nom=A2)*Feuil1!B$2:B$50))

Il est préférable de donner un nom à la plage B2:B50 :
=SI(A2="";"";SOMMEPROD((Nom=A2)*Comm))

Il faut que les 2 plages soient de même longueur.

La feuille Recap se mettra à jour de façon automatique.
 
M

Monique

Guest
Re,

Message de 16:13
Un formule matricielle prend en compte une "matrice",
toute une plage et non une cellule.
Quoique Somme() prend aussi en compte tout un groupe de cellules.
Ou plutôt, elle "crée" un tableau.

Par exemple, tu tapes dans la feuille 1 :
=SOMMEPROD((A2:A7="client1")*1)
Excel fait cette opération :
=SOMMEPROD(({VRAI;VRAI;FAUX;FAUX;FAUX;VRAI})*1)
où 0 équivaut à FAUX et 1 à VRAI

Tout comme Somme(B2:B17) est traduit par :
=SOMME({5;5;3;4;4;5;4;4;4;4;4;3;5;5;3;4})

Mais SommeProd n'est pas à valider de façon matricielle.
=SOMME((A2:A7="client1")*1)
renvoie le même résultat mais est à valider de façon matricielle.

Pour valider ce genre de formules, on n'appuie pas simplement sur "Entrée",
on appuie, simultanément, sur 3 touches :
ctrl, maj (ou shift, je crois) et "Entrée"
Un fois la validation faite, dans la barre de formule on voit 2 accolades { et } entourant la formule.
Il ne faut pas saisir ces accolades, Excel les met de façon automatique.

Tu devrais faire une recherche sur le forum avec ce mot "matriciel"

Message de 16:19
Merci

Message de 16:29
Tu te positionnes en A2 :
barre de menu - Fenêtre - Figer les volets

Si tu te positionnes en B2, ça fige la colonne A et la ligne 1
Tu te mets dessous et à droite de la ligne et de la colonne que tu veux figer.

Message de 16:30
"Col" part de A1 tandis que "Nom" part de A2
La plage "Col" sert à avoir de n° de la ligne de la feuille.
Il y a un décalage de 1 ligne entre les lignes de la feuille et les lignes de la plage "Nom"
 
M

Monique

Guest
Re,

Au choix, (mais ce sont les 3 mêmes) :
=MAX(SI(A1:A1000<>"";LIGNE(A1:A1000)))
=MAX(SI(A2:A50<>"";LIGNE(A2:A50)))
=MAX(SI(Nom<>"";LIGNE(Nom)))
C'est encore du matriciel, donc à valider par ctrl, maj et entrée.
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 215
Messages
2 086 330
Membres
103 186
dernier inscrit
Eliyass