Formule Si + Recherche + SOMMEPROD

Bonjour le Forum,

En Feuille2 B9 je cherche une formule qui me permet suivant l'intervalle de Date d'intervention E4 et G4 mais également suivant l'exploitation C2 puis l'intitulés en A9 faire une SOMMEPROD de la Durée (H) Feuille1.

Est-ce que ceci est possible ?

Bonjour,

pas besoin de RECHERCHEV ou de SI, le SOMMEPROD est suffisant.

=SOMMEPROD( condition1 * condition2 * condition3 * valeurs )

Le SOMMEPROD est un produit de matrices :

  • matrice de valeurs
  • ou matrice de 0 et 1 fonction du résultat de la condition

Mets tes données sous forme de tableau en Feuil1

=SOMMEPROD((Tableau1[Exploitation]=$C$2)*(Tableau1[Tracteur]=$A9)*(Tableau1[Date]>=$E$4)*(Tableau1[Date]<=$G$4)*Tableau1[Durée (H)])

Attention, les dates lignes 8 et 9 ne sont pas des dates mais du texte !

Salut,

Essaie ça en B9 :

=SOMME.SI.ENS(Feuil1!H:H;Feuil1!A:A;">="&$E$4;Feuil1!A:A;"<="&$G$4;Feuil1!F:F;Feuil2!A9)

Pour Moi c'est ce qu'il te faut,

Edit : Pour reprendre la remarque de Steelson, j'ai modifié le format car tes dates en ligne 8 et 9 n'étaient pas au bon format, J'ai descendu le format jusqu'en ligne 15000 comme ton tableau semblait aller jusque là.

Girodo

Bonjour,

Comme te le conseille Steelson , utilises un tableau sinon, en utilisant des plages nommées :

=SOMMEPROD((Dates>=E4)*(Dates<=G4)*(Tracteur=A9)*(Exploitation=C2);Durée)

ton classeur avec une petite vision graphique du résultat en feuille 1 :

Mets tes données sous forme de tableau en Feuil1

=SOMMEPROD((Tableau1[Exploitation]=$C$2)*(Tableau1[Tracteur]=$A9)*(Tableau1[Date]>=$E$4)*(Tableau1[Date]<=$G$4)*Tableau1[Durée (H)])

Attention, les dates lignes 8 et 9 ne sont pas des dates mais du texte !

okey j'apprend des choses ! ^^ Merci Beaucoup !!

Merci a vous j'ai testé les trois versions elles fonctionnent toutes.

Je préfère partir avec la Formule SOMMEPROD

Merci à vous pour votre temps !!

okey j'apprend des choses !

Un tableau évite de prévoir les calculs sur des colonnes entières ou à défaut sur 15000 lignes, ce qui peut demander beaucoup de ressources.

Une autre façon non évoquée ici était de faire un TCD.

Bonjour,

J'ai un petit soucis mon tableau dans Feuille Saisie ne s'agrandit pas au fur et à mesure que j'écris des lignes..

Du coup la Formule avec Tableau ne fonctionne plus

Comment sont introduites les valeurs ?

La première cellule de la ligne est introduite à la main ou est-ce une formule ?

Éventuellement tu peux utiliser la méthode Theze si les noms sont définis en dynamique, néanmoins je ne comprends pas car le tableau devrait s'agrandir tout seul.

La ligne est ajouté via un UserForm.. Mais ceci dit j'ai testé en remplissant la première cellule donc DATE à la main ça n'augmente pas mon tableau ..

Alors j'ai redimensionné mon tableau pour le faire aller jusqu'à la ligne 5000

Et là c'est a rien y comprendre ma formule qui marchait très bien me met #VALEUR!

Me Voilà avec un gros Problème, je n'arrive plus à supprimer le tableau créé.....

EDIT: C'est Bon j'ai réussi il fallait savoir qu'il fallait le convertir en plage pour que ça supprime la mise en forme

EDIT2 : Du coup je suis partie sur la Formule Theze tout fonctionne sans soucis

La ligne est ajouté via un UserForm..

donc pas étonnant que tes dates soient du texte ! il faut les transformer avant de les enregistrer

Mais ceci dit j'ai testé en remplissant la première cellule donc DATE à la main ça n'augmente pas mon tableau ..

Ce que je viens de faire est mon tableau est bien augmenté d'une ligne ... vérifie que la définition du tableau intègre bien la dernière ligne renseignée. Sinon par macro il faut demander à ajouter une ligne.

capture d ecran 595

Et là c'est a rien y comprendre ma formule qui marchait très bien me met #VALEUR!

parce qu'il y a du texte à la place des valeurs ? donne le fichier si besoin.

J'aurai bien voulu mais il est beaucoup trop gros..

Effectivement dès que j'ajoute des lignes peut importe la Formule elle ne sont pas prises en compte.

Et dans ma feuille saisie la cellule à un pti icone qui dit que ça ne va pas xD

Sais-tu comment je peux faire ?

PS: Si tu as un mail je peux t'envoyer le Excel étant donné qu'il est trop gros pour le mettre sur le Forum..

adresse envoyée en mp

Cool merci j'envoie ça demain la je suis avec mon téléphone xD

Effectivement dès que j'ajoute des lignes peut importe la Formule elle ne sont pas prises en compte.

Dans l'onglet Saisie, j'ai défini un tableau appelé T mais qui n'englobe QUE les lignes renseignée.

Y a t'il des formules dans ce tableau ? je n'en ai pas trouvé.

capture d ecran 598

En B9 de Recap M-O, ta formule sera alors

=SOMMEPROD((T[Date]>=$E$4)*(T[Date]<=$G$4)*(T[Tracteur]=A9)*(T[Exploitation]=$C$2);T[Durée (H)])
capture d ecran 599

J'ai vérifié, si tu ajoutes une ligne au tableau, elle est bien prise en compte ...

Et n'oublie pas de changer ta macro pour que des dates soient des dates !!

Sheets(Feuil12.Name).Cells(derligne, 1) = CDate(UserForm2.TextBox1)

y compris pour les lignes déjà saisies ...

capture d ecran 604

Attention, les dates lignes 8 et 9 ne sont pas des dates mais du texte !

j'ai modifié le format car tes dates en ligne 8 et 9 n'étaient pas au bon format

La ligne est ajouté via un UserForm..

donc pas étonnant que tes dates soient du texte ! il faut les transformer avant de les enregistrer

J'ai bien modifié mon code pour le mettre en Date et également la Durée qui était en texte et qui posait problème. Au moins je le saurait ^^

Je crois que c'est bon ça fonctionne correctement.

Merci Beaucoup pour ton temps Steelson

Parfait !

J'ai bien modifié mon code pour le mettre en Date et également la Durée qui était en texte et qui posait problème. Au moins je le saurait ^^

C'est la raison pour laquelle je privilégie toujours l'emploi d'un onglet plutôt qu'un userform : plus souple de mise en oeuvre (couleurs, formats, listes déroulantes, etc.).
Rechercher des sujets similaires à "formule recherche sommeprod"