[Excel 2007] [Calcul matriciel]

[Résolu/Fermé]
Signaler
-
 Philippe_N -
Bonjour,

Voilà plusieurs heures que je parcours le forum, mais je n'arrive pas à trouver de réponse à mon problème.

J'ai à ma disposition un tableau avec une colonne A remplie de références, par exemple : ABC123, ABC 456, etc.

Chaque référence correpond à une usine.

Pour chaque usine, je peux avoir plusieurs numéro de séries de machines en colonne B, par exemple 110526, 114243, etc.

Enfin, pour chaque machine j'ai un coût d'acquisition propre par exemple 10 423 euros.

Mon tableau ressemble donc à :


Référence Numéro de série Coût d'acquisition
ABC123 110526 10423
ABC123 114243 14526
ABC123 163256 13256
ABC456 145326 12895
ABC457 156986 13547
ABC458 135246 14236

Ainsi, j'ai plusieurs milliers de lignes.

Ce que je souhaiterais faire c'est récupérer sous forme de matrice, l'ensemble des numéro de série correspondants à une référence donnée.

D'autre part, je souhaiterais sommer les coûts pour une référence donnée.

Les fonctions recherche(v ou h) et index(equiv) ne renvoit (à ma connaissance) qu'une valeur et non pas une matrice.

Je suppose donc qu'il faut utiliser le calcul matriciel, mais je n'arrive pas à trouver la fonction qui répond à mon besoin, sans passer par une macro.

Pour illustrer ma demande, ici je voudrais qu'en rentrant dans mes formules la cellule A2, soit la valeur "ABC123", j'obtienne les résultats : {110526;114243;163256} dans une cellule et 38205 euros dans une autre cellule.

J'espère avoir été suffisamment clair et avoir respecté les règles de ce forum.

Merci de votre aide.

7 réponses

Messages postés
10160
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
22 octobre 2021
2 232
bonjour
le fichier étant trié selon la colonne Référence, une proposition moyennant VBA (code à adapter)
https://www.cjoint.com/?0HyqQFFlKm4
sur plusieurs milliers de lignes, ça risque de prendre du temps à l'exécution

bonne suite
Messages postés
54877
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
23 octobre 2021
16 775
Bonjour Philippe.

Je n'ai pas l'exacte réponse à ta question, mais une proposition qui s'en rapproche : Utiliser l'assistant SOUS-TOTAL de l'onglet DONNÉES.

https://www.cjoint.com/?AHyrpRgitMt

Cordialement.
Messages postés
24201
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
22 octobre 2021
6 936
Bonjour,

Je suppose donc qu'il faut utiliser le calcul matriciel, mais je n'arrive pas à trouver la fonction qui répond à mon besoin, sans passer par une macro.
La matrice tu peux l'avoir, le pb c'est qu'excel ne t'affichera que le 1er élément :
Par exemple sur le fichier de ccm81 :
=DECALER(B1;EQUIV(E3;A:A;0)-1;;NB.SI(A:A;E3);1)
mais le seul moyen de la visualiser est de sélectionner la formule dans la barre d'édition et de faire F9 (même s'il y une valeur d'erreur dans la cellule).
Et la concaténation ne marche pas en matriciel non plus.
Pas très confortable...

Donc soit vba (voir proposition de ccm81. Et si une seule ref t'interesse à la fois, il peut modifier la réponse sera presque instantanée),
ou alors accepter d'avoir 1 cellule par n°

eric
Messages postés
8539
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
20 juillet 2021
1 704
Bonjour,

Regarde cet exemple :
https://www.cjoint.com/?AHywLSbhM7m
Bonjour,

Tout d'abord, un grand merci, car via vos contributions j'ai pu apprendre de nouveaux types de raisonnement sous excel.

Suite à la réponse d'Eriiic :
Et si une seule ref t'interesse à la fois, il peut modifier la réponse sera presque instantanée

Effectivement, l'idéal pour moi serait d'appeler une ou plusieurs références parmi des milliers.

Par exemple, j'ai une liste de 50 références pour lesquelles, je souhaiterais facilement sortir sous forme de matrice les numéros d'équipements, et la somme des coûts correpondants sur chaque ligne.

Ici, cela donnerait, en colonne A d'une feuille, j'inscris ABC123, ABC456, ABC457 les uns en dessous des autres, et ma formule (ou application VBA) indique en colonne B la matrice des numéros de série correspondants et en colonne C la somme des coûts.

Encore merci. Je vais essayer d'utiliser la fonction decalage et les listes pour voir ce que cela donne.
Messages postés
24201
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
22 octobre 2021
6 936
Bonjour,

Sur une saisie en E ou un collage d'une liste les colonne F et G se mettent à jour.
Il faut accepter les macros.
http://www.cijoint.fr/cjlink.php?file=cj201108/cijn3b8HGu.xls
Ca devrait être assez rapide même sur les grands fichiers.
Teste et dis...

eric
Merci beaucoup, c'est exactement ce qu'il me fallait.

Le code me fait en plus une initiation à la macro excel.