|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre habitué
![]() Inscription : juin 2007 Messages : 173 ![]() |
Bonjour ,
Le sujet n'est pas simple a expliquer et la solution est complexe Je dispose de 3 colonnes de valeurs dans mon exemple, on va dire que: La colonne 1 correspond à l'age d'une personne La colonne 2, au nombre de cheveux qu'elle a sur la tete La colonne 3, au nombre de lignes qu'elle peut taper sur ordinateur / minute. Je veux créer une matrice qui contient en ordonnée, l'age de la personne, en abscisse le nombre de cheveux sur la tete, avec des classes assez fines, soit 400 cellules de matrice (20*20) Dans cette matrice, je veux obtenir le nombre de ligne totale que peuvent écrire les personnes correspondantes à chaque classe de chaque axe. C'est à dire que, par exemple, je veux additionner les lignes que peuvent écrire les gens entre 45 et 50 ans qui ont entre 15000 et 15500 cheveux sur la tête. (*400 cas) Il est facile de le faire en code VBA mais si ma liste contient 7000 lignes, j'ai peur que la boucle de travail qui va étudier 400 cases * 7000 lignes soit un poil longue (pour une histoire de cheveux... Je pense qu'il peut etre possible de le faire en formule matricielle mais je viens de perdre mon Week end dessus. ![]() Merci d'avance à ceux qui pourront répondre. |
|
|
00
|
|
|
#2 |
|
Membre actif
![]() Bert TranzInscription : juillet 2008 Messages : 149 ![]() |
Bonjour,
Tu dois pouvoir faire quelquechose avec la formule sommeprod, je t'ai joint un exemple pour que tu puisses l'adapter à ton cas. N'hésites pas si tu as besoin. Cdlt |
|
|
10
|
|
|
#3 | ||
|
Membre Expert
![]() Inscription : novembre 2006 Messages : 1 464 ![]() |
avec rechercheV aussi
la séquence est assez simple, bien vérifier la premiere et la derniere colonne pour les éccarts. Code :
|
||
|
|
00
|
|
|
#4 |
|
Membre habitué
![]() Inscription : juin 2007 Messages : 173 ![]() |
merci à vous deux.
Effectivement le somme prod est le mieux approprié. Maintenant, je dois appliquer ce sommeprod dans une boucle qui récupère des listes de tailles variables. Je récupère une liste, je mets la matrice à jour puis je récupère une autre liste.... Le somme prod ne marche plus car il ne fonctionne que si les plages de données contiennent des cases non vides. J'avais vu une solution avec des étiquettes qui savent se redimensionner grace à une formule mais là Un truc accessible via la commande Affichage -> nom Si quelqu'un a un tutoriel sur le sujet, merci de faire passer
|
|
|
00
|
|
|
#5 | |
|
Membre Expert
![]() Inscription : novembre 2006 Messages : 1 464 ![]() |
Citation:
pour ce qui est de creer des plages dynamiques, il te faut utiliser les fonctions decaler et nbval s'il y a des cellules vides, je te conseile de l'utiliser en prenant toujour la meme colonne pour le nombre de cellule. personnelement, s'il y a un colonne date, c'est celle que j'utilise |
|
|
|
00
|
|
|
#6 |
|
Membre habitué
![]() Inscription : juin 2007 Messages : 173 ![]() |
C'est exact Alsimbad
Effectivement j'avais à gérer des longueur de listes variables et c'est ce qui me gênait. Pour les personnes intéressées par cette fonction, je la spécifie car elle n'est pas intuitive: -Votre champs de liste est parfaitement défini et stable dans ses dimensions Vous pouvez le sélectionner puis noter simplement son nom dans le champs à gauche juste au dessus du tableur, là où est écrit le nom de la case sélectionnée. -Votre champs est de longueur variable, Sélectionner la première case du champs puis Insertion - Nom - Définir Vous pouvez alors donner le nom du champs puis, comme l'a indiqué Alsimba, dans la case "Fait référence à" , la formule Avec A1 = case de début et NBVAL(A:A) qui donne le nombre de valeurs présentes. Mais on peut tres bien noter NBVAL(B:B) ce qui permettra d'avoir un champs correspondant au nombre de valeurs de la colonne B. C'est notamment pratique quand la colonne B contient une liste de valeurs et la colonne A des formules de calculs. Ainsi, on peut tirer les formules sur 300 lignes en colonne A si on est sur que la colonne B n'aura jamais plus de 300 valeurs. CA permettra à la fonction SOMMEPROD d'utiliser des champs de longueur variable qui sont toujours renseignés |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com