Produit cartésien complexe?
Bonjour,
Je cherche à faire une somme de valeurs conditionnées par plusieurs paramètres (une sorte de SOMMEPROD).
La complexité est multiple :
- je ne veux sommer que certaines cases (les cases "grisées" qui contiennent également un "1" pour les sélectionner plus facilement)
- pour une même colonne "total", je veux sommer des valeurs différentes. Une somme de valeur par ligne même sur la même colonne.
Comme un exemple est plus parlant que tout un discours, je met en pj le fichier concerné par le problème. Les lignes où écrire la formule sont dans la feuille "Planning", et sont colorées en "vert".
J'ai ajouté quelques exemples de résultat que j'aimerai obtenir, et un max d'infos pour mieux détailler le problème dans le fichier.
En espérant que vous trouverez la formule miracle
Merci d'avance
PS : le fichier contient 2 feuilles. Le "planning" sur laquelle écrire la formule, et l'autre, qui contient les valeurs à sommer dont la référence est dans "planning"
Clément
bonjour
tu n'as pas de réponse, essaye de simplifier ta demande (mettre des noms de champ plus lisibles comme TOTO et PIERRE au lieu de vCPU)
Défusionne les cellules fusionnées, ça gène pour les formules (et pour toute autre fonctionnalité)
Bonjour,
J'avoue que je suis toujours intrigué par la structure conceptuelle conduisant à des constructions ésotériques nécessitant divers mouvements acrobatiques pour en tirer les fruits escomptés...
Certes, un peu de gymnastique mentale ne nuit pas ! Et je ne déteste pas ce genre d'exercices (que je ne trouverais jamais dans mes travaux perso.), mais pas à doses intensives toutefois...
Là je dois être un peu fatigué car, ayant mis d'emblée à l'écart une solution formulée classique, même en VBA je n'arrive pas à garder en mémoire tous les sous-tiroirs dans lesquels sont disséminés les indices ce jeu de piste pour atteindre la cible...
Je crois quand même, comme jmd, qu'une autre organisation pourrait grandement simplifier les choses ! Et si je pense qu'on peut venir à bout de la structure actuelle (mais pour moi, ce n'est pas le bon jour !!), je plains celui qui travaillera avec de façon régulière...
Cordialement.
Bonjour à tous
Il est vrai qu'avec des données présentées autrement, le problème serait plus facile à traiter.
Je tente malgré tout un essai : j'ai parfois un coté maso qui ressort !
Bye !
Bonsoir,
Effectivement, j'avais zappé un colonne fusionnée
Je me doutais qu'une formule ne suffirait pas et qu'il faudrait en découdre avec du VBA, merci gmb d'avoir fait le job!
Le bouton semble répondre à ce que je voulais
Je ne l'ai pas sous la main, je ferai ça lundi, et je vous tiendrai informé.
En fait si la logique semble complexe, c'est que l'extrait transmis n'est que le fruit d'autres calculs précédents. La feuille originale contient plus de feuilles, et plus de calculs encore. Je ne suis pas un grand habitué des feuilles excel, donc j'ai surement des logiques par forcément dès plus simples pour du excel!
Merci en tout cas pour votre participation active et la probable résolution de mon soucis
Clément
Bonjour à tous,
gmb, on l'est tous un peu... tant que ce n'est pas permanent...
Pour le fun, une fonction personnalisée : je n'ai fait qu'une très légère modif à ton tableau de résultats.
Remarque : quand on spécialise ainsi les différences de casse, on s'attendrait à ce que cela soit respecté sur tous les tableaux !
Function TOTALSPEC(svx As Range, PP As Range, Tval As Range)
Dim pp0(), pp1(), sv0$, sv1$, n%, i%, k%, T
Application.Volatile
With PP
k = .Column
For i = 1 To .Rows.Count
If .Cells(i, 1) = 1 Then
ReDim Preserve pp0(n): ReDim Preserve pp1(n)
pp0(n) = .Cells(i, 2 - k): pp1(n) = .Cells(i, 3 - k)
n = n + 1
End If
Next i
End With
With svx
sv0 = .Cells(1, 1): sv1 = .Cells(1, 2)
End With
With Tval
For i = 3 To .Columns.Count
If .Cells(1, i) = sv0 And .Cells(2, i) = sv1 Then
k = i: Exit For
End If
Next i
For i = 3 To .Rows.Count
For n = 0 To UBound(pp0)
If .Cells(i, 1) = pp0(n) And .Cells(i, 2) = pp1(n) Then
T = T + .Cells(i, k): Exit For
End If
Next n
Next i
End With
TOTALSPEC = T
End Function
Merci gmb et MrFerrand, après quelques adaptations pour correspondre au fichier excel complet (pour attaquer les bonnes colonnes), ça fonctionne à merveille
Par simplicité pour l'utilisation, j'ai opté pour la fonction plutôt que le bouton