Tableau résumé: (sommes.si.ens VS Index Equiv)

Bonjour,

J'essaie depuis trop longtemps d'effectuer un résumé d'un formulaire hebdomadaire de travail.

J'ai un problème avec somme.si.ens. j’obtiens à tout coups #VALEUR. Il faut savoir que ce sont des donnés que je rapatrie de d'autres onglets avec Copier/Coller liaison seulement. J'ai des critère TEXTE, STANDARD, NOMBRE.

J'ai réussi à plus petite échelle avec INDEX EQUIV, mais je ne suis pas capable d'additionner les résultats pour en faire un résumé.

j'obtien #N/A

Merci de vouloir m'aider.

Note: Je suis débutant VBA, donc je peux recevoir votre proposition VBA & fonction.

Bonsoir,

Une petite contribution, mais je n'aurai sans doute pas le temps d'y revenir.

Ta syntaxe de SOMME.SI.ENS n'est pas bonne. la plage sommée et les plages tests doivent toutes être de longueur égale sur une ligne ou une colonne. En mettant un tableau, elle ne peut fonctionner.

Avec INDEX et EQUIV, tu vas avoir un problème de calcul des index ligne et colonne. Sur ta ligne TS TD, EQUIV ne pourra que te renvoyer 1 ou 2 et sur la ligne au-dessus il ne renverra que des valeurs impaires. Il te faut donc jouer sur les deux pour obtenir un index colonne utilisable. Pour l'index ligne c'est plus facile, sur la colonne Noms.

Je te propose quelque chose d'équivalent avec DECALER. Tu peux utiliser un procédé comparable avec INDEX et EQUIV. Je n'ai pas assez approfondi pour pouvoir dire si tu peux adapter à l'ensemble du tableau. Je ne sais pas non plus si on peut bâtir une seule formule recopiable sur la totalité du tableau, mais si c'est possible la formule deviendrait assez longue. De toutes façons, tu n'as visiblement pas construit ce tableau avec l'idée de n'utiliser qu'une seule formule...

=DECALER(tstd_d;EQUIV(AI$3;nom_D;0);EQUIV($AH5;code_d;0)-(AI$4="T.S.");;1)

J'utilise tstd_d située immédiatement au-dessus du tableau de recherche pour la décaler en ligne selon le nom, la décaler en colonne selon la position du code (dans une cellule fusionnée) corrigée par (AI$4="T.S.") qui renvoie 1 pour TS et 0 pour TD. EQUIV renvoyant 1 lorsque le décalage doit être 0 (pour le code) fournit le bon décalage pour la colonne TD et si TS on le corrige en le diminuant de 1. On réduit la plage décalée à une colonne, donc une cellule dont la valeur est renvoyée par la formule.

Cordialement.

NB- Pour une utilisation avec INDEX, l'index ligne est identique au décalage ligne de la formule, par contre pour l'index colonne la correction à apporter à la valeur renvoyée par EQUIV est inverse, c'est +1 si TD : +(AI$4="T.D.")

Bonjour,

@MFerrand, J'ai finalement réorganisé mes tableaux sources afin d'éliminer le critères T.S. & T.D. et j'ai ensuite réussi avec INDEX, EQUIV.

Je tien à vous remercier pour m'avoir fait découvrir DÉCALER et ainsi me m'avoir ouvert les yeux sur la solution.

bien à vous,

Bonne continutation.

Rechercher des sujets similaires à "tableau resume sommes ens index equiv"