Calcul matriciel avec recherche

claude.dasilva

XLDnaute Junior
Bonjour,

Je cherche un moyen de calculer la somme d'une colonne en comparant 2 colonnes de 2 fichiers existants.
Pour faire clair :
- J'ai un intitulé de série "AZERTY" qui se répétent dans la colonne A ligne 1 et un numéro d'identification "000000" jamais identique dans la colonne B ligne x,y,z,... dans le fichier "AA"
- J'ai plusieurs numéros d'identification "000000" qui se répétent dans la colonne A ligne x,y,z,... avec un nombre d'heures en colonne B ligne x,y,z,... dans le fichier "BB"

Je souhaite connaitre la somme des heures pour le numéro d'identification "AZERTY"

J'ai tenté l'expérience avec SOMMEPROD, RECHERCHEV,... mais je bloque, je n'obtiens que du #VALEUR

Pouvez-vous m'aider.
J'ai joint un fichier qui montre un exemple de ce que j'ai et que je voudrais obtenir.
Le fichier AA est en onglet 1 et le fichier BB en onglet 2.
Et l'onglet 3, la recherche pour chaque SERIE avec la somme des heures associées.

Merci.
 

Pièces jointes

  • Classeur.xls
    19 KB · Affichages: 60
  • Classeur.xls
    19 KB · Affichages: 63
  • Classeur.xls
    19 KB · Affichages: 66

Misange

XLDnaute Barbatruc
Re : Calcul matriciel avec recherche

Bonjour

tu peux soit procéder en deux temps : tu commences par rappatrier dans ton tableau final le N° d'identification puis à partir de celui là tu récupères le nombre d'heures.
Tu peux aussi le faire directement. LE plus simple pour établir ta formule c'est d'abord de procéder en deux temps puis de récupérer le bout de formule qui te manque et de faire la substitution. JE sais dit comme cela c'est clair comme un tas de mazout mais ce sera plus limpide dans le classeur :)
 

Pièces jointes

  • Copie de Classeur.xls
    27.5 KB · Affichages: 50
  • Copie de Classeur.xls
    27.5 KB · Affichages: 53
  • Copie de Classeur.xls
    27.5 KB · Affichages: 45

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Calcul matriciel avec recherche

Bonsoir,

=SOMME.SI(ident2;INDEX(ident;EQUIV(C6;serie;0));heures)

heures ='onglet 2'!$E$5:$E$34
ident ='onglet 1'!$E$5:$E$14
ident2 ='onglet 2'!$D$5:$D$34
serie ='onglet 1'!$D$5:$D$14


JB
 

Pièces jointes

  • Copie de Classeur.xls
    26 KB · Affichages: 66
  • Copie de Classeur.xls
    26 KB · Affichages: 58
  • Copie de Classeur.xls
    26 KB · Affichages: 57

claude.dasilva

XLDnaute Junior
Re : Calcul matriciel avec recherche

Bonsoir,
Merci à misange et boisgontier. La solution de boisgontier est celle qu'il me fallait, merci à toi.
Celle de misange ne prenait en compte qu'un seul numéro d'identification pas série alors que je peux avoir plusieurs numéros différents par série.
En relisant mes explications, je ne pense pas avoir été très clair. Mea-culpa...
Merci en tout cas à tous les deux pour votre rapidité. Je n'ai jamais été déçu par ce forum.
Cordialement.
 

claude.dasilva

XLDnaute Junior
Re : Calcul matriciel avec recherche

Bonjour,
Après vérification, il y a un problème.
Le fichier associe la série AZERTY au numéro 123456 dans le mode de calcul.
Alors que ce que je cherche à calculer, c'est la somme des heures pour la série AZERTY pour tous les numéros d'identification quelqu'ils soient...
J'ai joint le fichier avec un filtre qui montre que le total de AZERTY devrait être de 2243 en onglet 2.
Pouvez-vous m'aider ?
Merci.
 

Pièces jointes

  • Copie de Copie de Classeur.xlsx
    11.6 KB · Affichages: 49

Jocelyn

XLDnaute Barbatruc
Re : Calcul matriciel avec recherche

Bonjour le Forum,
Bonjour claude.dasilva, Misange, BOISGONTIER,

Une autre solution en créant des liste qui reprenne tous les identifiant par série

Cordialement
 

Pièces jointes

  • Claude.dasilva.xls
    27 KB · Affichages: 43

claude.dasilva

XLDnaute Junior
Re : Calcul matriciel avec recherche

Bonjour Jocelyn,
Cette solution fonctionne mais présente le défaut de devoir créer un onglet supplémentaire ("liste"), où tu as récupéré manuellement tous les numéros d'identification par série manuellement.
Pour le fichier exemple, ça ne pose pas de soucis mais pour le fichier sur lequel je travaille, celà représente 15000 lignes, heures réparties sur près de 900 numéros d'identification différents...
Je cherchais une solution me permettant de faire un calcul rapide sans manipulation fastidieuse.
La solution de boisgontier était proche mais elle s'arrête au premier numéro d'identification de la série...
Cordialement.
 

claude.dasilva

XLDnaute Junior
Re : Calcul matriciel avec recherche

Merci boisgontier,
cette fonction perso fonctionne parfaitement.
J'ai réussi à l'adapter à mon fichier.
J'ai néanmoins une dernière question, j'ai plusieurs colonnes d'heures à récupérer.
Chaque colonne correspond à une équipe de production.
J'ai donc adapté la formule (en pièce jointe) mais le temps de traitement est assez long.
Est-il possible de l'épurer ?
Cordialement.
 

Pièces jointes

  • essai.txt
    3.2 KB · Affichages: 53
  • essai.txt
    3.2 KB · Affichages: 54
  • essai.txt
    3.2 KB · Affichages: 51

claude.dasilva

XLDnaute Junior
Re : Calcul matriciel avec recherche

Bonsoir,
Voilà un échantillon du fichier en question.
Chaque onglet représente un fichier différent sur lesquels je ne peux pas travailler sur la mise en page sauf feuil1 (le résultat que je veux obtenir des calculs des autres onglets)
Les chiffres de la feuil1 sont une copie brute des résultats obtenus avec le code donné dans le fichier précédent.
J'espère que les explications dans le 1er onglet seront suffisament claires.
Le fichier représenté par feuil2 ne représente pas plus de 15 colonnes sur 300 lignes
Le fichier représenté par feuil3 par contre représente plus de 70 colonnes et jusqu'à 15000 lignes
Merci pour votre aide.
Cordialement.
 

Pièces jointes

  • Classeur1.xls
    944.5 KB · Affichages: 59
  • Classeur1.xls
    944.5 KB · Affichages: 52
  • Classeur1.xls
    944.5 KB · Affichages: 57

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Calcul matriciel avec recherche

Bonjour,

Je n'ai pas compris où étaient les formules.
Voici la version d'origine avec une fonction perso matricielle.

Si la taille de la table de correspondance (onglet1) est importante et si le nombre de lignes de l'onglet 3 est important, la fonction devrait être plus rapide.

JB
 

Pièces jointes

  • CalculTotalHeuresMat.xls
    39.5 KB · Affichages: 41

claude.dasilva

XLDnaute Junior
Re : Calcul matriciel avec recherche

Bonjour Boisgontier,
Merci pour ta réponse. J'ai essayé toute l'après-midi d'adapter ta solution à mon fichier.
Je t'ai joint le fichier source épuré avec l'application de ta fonction perso.
Et je bloque... encore...
2 problèmes :
- la somme des heures est la même quelque soit le type de travaux fait
- seule la colonne C de la feuil2 est prise en compte (dans la version précédent, j'avais fait un copier/coller du code en décalant de +1 la colonne de la variable d1(a(i,3)), d2(a(i,4)),... ainsi de suite...
Par contre, même avec une seule colonne prise en compte, le calcul me semble plus rapide.
Je veux bien encore un coup de main...
Merci.
Claude.
 

Pièces jointes

  • Classeur1.xls
    675 KB · Affichages: 50
  • Classeur1.xls
    675 KB · Affichages: 51
  • Classeur1.xls
    675 KB · Affichages: 46

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 370
Messages
2 087 693
Membres
103 641
dernier inscrit
anouarkecita2