SommeSi combiner avec fonction index

Bonjour à vous,

après des heures de recherches et de tentatives infructueuses je poste ce message dans l'espoir que quelqu'un puisse me débloquer, je vous remercie par avance pour votre aide.

Vous trouverez ci-joint un fichier Excel sur lequel ce trouve 3 tableaux dans 3 onglets différents (je précise que j'ai modifiés les valeurs).

Dans le premier intitulé Suivi heures, j'ai un suivi jour par jour des heures que j'ai pas

11classeur1.xlsx (69.72 Ko)

sée sur différents projets (En lignes les journées, en colonne les projets)

Dans le deuxième onglet intitulé Devis, j'ai les différents projets, le temps que j'ai estimé pour chacun d'eux et son cout.

Enfin, dans le troisième et dernier onglets, je souhaite combiner les deux premiers. Mon but est de réaliser la somme du temps passé par mois pour chaque projets.

Je veux que ce temps passé dans le mois soit divisé par le temps total estimé dans l'onglet devis et multiplié par le prix facturé par ce dernier. Par exemple dans l'onglet numéro 3 (Temps passé par mois) en cellule B2, je voudrais que le calcule réalisé soit 42 (nb heures travaillées sur ce projet dans le mois de janvier 2019) / 52 (temps estimé sur ce projet) * 1040 (prix estimé de ce projet).

Je vous remercie encore une fois pour votre aide car je ne parviens vraiment pas à m'en sortir seul.

Bien cordialement,

Bonjour,

Un exemple joint.

J'ai du renommé les tables avec des mots de 3 lettres afin d'alléger la lecture et de renommer les en têtes de colonnes afin d'avoir des valeurs numériques utilisables dans les formules

=SOMMEPROD(INDIRECT("BDD["&$A2&"]")*(MOIS(BDD[[Date/Projets]:[Date/Projets]])=MOIS(B$1))*(ANNEE(BDD[[Date/Projets]:[Date/Projets]])=ANNEE(B$1)))/RECHERCHEV($A2;DEV;2;FAUX)*RECHERCHEV($A2;DEV;3;FAUX)

Cdlt,

Bonjour à toi Ergotamine,

Je te remercie beaucoup pour ta réponse je devrais pouvoir facilement m'en sortir dans mon classeur à présent.

JE clôture le sujet des que je suis parvenu à le reproduire dans mon classeur.

Bien cordialement,

Désolé de rouvrir le sujet mais sur mon premier tableau ta formule marchait parfaitement. Cependant, sur mon deuxième qui est identique au premier, Excel me renvoi l'erreur suivante #EPARS! Je ne parviens pas a régler ce problème. D'autant plus que je ne comprend pas ce qui cloche.

PS : je ne maitrise pas la fonction indirect et j'ai donc du mal à comprendre cette partie de ta formule " INDIRECT("BDD["&$A2&"]") " peux tu m'expliquer comment Excel interprète cette écriture.

Par avance merci et encore désolé de rouvrir ce topic.

Bonjour,

INDIRECT te permets de renvoyer une référence de cellule à partir de valeurs textuelles.

Ici A2 est le texte 19.01. INDIRECT("BDD["&$A2&"]") te renvoie donc la plage(3) de la table structurée BDD(1) contenant l'en tête 19.01(2). C'est un mix entre la fonction INDIRECTE et les tables structurées que je trouve très utile car la formule devient dynamique, quelque soit le nombre de lignes dans ton tableau BDD.

Je te joins une image liée aux nombres entre parenthèse ci-dessus qui te permettra de peut être mieux appréhender son fonctionnement et l'appliquer à ton fichier.

Cdlt,

2021 04 03 11 18 05 copie de classeur1 xlsx lecture seule excel

Merci pour ta réactivité et ton explication très claire. La syntaxe de ta formule est maintenant plus facile à appréhender. Cependant mon problème ne viens pas de cette partie de la formule mais plutôt de la seconde partie " *(MOIS(BDD[[Date]:[Date]])=MOIS(B$1)) " En effet faire le total fonctionne parfaitement, sur tous mes fichiers. Cependant quand je veux compilé avec le total par mois comme toi Excel me renvoi #EPARS! soit si j'ai bien compris Excel veut m'afficher un nombre de valeur plus important que ma plage de donné comme si il s'agissait d'une fonction matricielle. Je ne comprend pas pourquoi cette erreur interviens alors que la même formule fonctionne très bien sur un autre classeur. A tu une autre solution pour réaliser la somme mensuel. Perso j'avais tenté avec des SommeSi ou avec des Si ET mais je ne crois pas que ce soit la bonne solution non plus.

D'avance merci.

Bonjour,

Cette erreur est spécifique a Excel 365 que je ne possède malheureusement pas.
Est-il possible de joindre ton fichier (également possible par MP) afin que j'y jette un coup d'oeil ? Peut être verrais-je une incohérence (format des en tête, ou autre). Car une somme n'est censée renvoyée qu'une seule valeur donc je m'étonne de cette erreur #EPARS!.

Je vais tenter une solution POWER QUERY sans être sûr du résultat.

Cldt,,

Bonjour,

Comme convenu, une alternative par POWER QUERY qui conviendrait également.

Cdlt,

6pq-test.xlsx (78.91 Ko)

Effectivement cela fonctionne mais j'aimerais parvenir à avoir quelque chose de dynamique. Par avance merci.

Bonjour,

POWER QUERY est dynamique. Il s'actualise comme un TCD -> Cliquez droit sur une cellule du tableau -> Actualiser.

J'ai renvoyé le fichier corrigé par MP suite aux données confidentielles. Deux erreurs :
- Pour ce qui est des conditions de dates il y avait du texte en A717 et A718. Il ne faut pas faire ça dans une base de donnée sinon vous provoquez des erreurs, privilégiez les commentaires lorsqu'il s'agit d'annoter, ou éventuellement une zone textuelle, mais pas dans une cellule.
- Ensuite en ligne 2 et 3, en dessous de chaque projet, vous avez des valeurs qui ne sont pas numériques (nom du projet et statut projet), comment faire la somme de ces valeurs ? Là encore vous mixer des données de différents types (integer, string ..) ce qui provoque de multiples erreurs.

En l'état, sauf si vous trouvez un moyen de supprimer les lignes 2 et 3, j'ai donc modifié la formule en vérifiant auparavant que la cellule est bien numérique avant de l'inclure dans la somme ce qui donne en B2 :

=SOMME(SI(ESTNUM(INDIRECT("BDD["&$A2&"]"));INDIRECT("BDD["&$A2&"]")*(MOIS(BDD[[Date]:[Date]])=MOIS(B$1))*(ANNEE(BDD[[Date]:[Date]])=ANNEE(B$1))))

Qui nécessite donc une validation matricielle cette fois ci via CTRL + SHIFT + ENTER.

Cdlt,

Merci pour la réponse qui est encore une fois très claire. J'ai appris beaucoup grâce à ce topic. Je me sent un peu bête de pas avoir pensé au valeur textuelles, elles m'avaient déjà posées problèmes. Malheureusement le propriétaire de ce fichier refuse que je réalise des modifications sur la structure de la base de donnée. Je clôture définitivement ce topic.

Rechercher des sujets similaires à "sommesi combiner fonction index"