Calcul matricielle avec transpose et condition de date

Scoty

XLDnaute Occasionnel
Bonjour le forum,

Soit un calcul matricielle qui me permet de calculer le cout d'une personne en fonction de sa catégorie et de son nombre d'heures par mois.

Le calcul s'effectue sur toute l'année.

Comment modifier ma formule pour y integrer une condition qui arrete le calcul en fonction d'une date?

Exemple:
Actuellement, on est fin mars, qui est ma condition, et le calcul s'effectue du coup que sur les 3 premiers mois de l'année.

D1 est ma condition de date que je peux modifier en fonction de l'avancement du temps.
L6 et 10 ne sont là que pour le calcul intermédiaire, pour contrôler ma formule matricielle (je les ai caché).

En vous remerciant.

Dans l'attente de vous lire.

@+
Scoty
 

Pièces jointes

  • Calcul matricielle avec transpose et condition date.xlsx
    14 KB · Affichages: 50
G

Guest

Guest
Re : Calcul matricielle avec transpose et condition de date

Bonjour,

Transpose n'est pas utile ici. voir dans fichier joint solution avec SommeProd.
Par contre ta condition date est le 1/03/2014 et pourtant tu dis: Actuellement, on est fin mars, qui est ma condition?!

Donc à adapter à ton besoin réel!

A+
 

Scoty

XLDnaute Occasionnel
Re : Calcul matricielle avec transpose et condition de date

Bonjour Hasco et merci beaucoup.

En effet le sommeprod fonctionnait ici sans pb....

En fait ma problématique est légèrement plus compliqué. je souhaite en effet calculer le coût d'une personne, en fonction de sa
- catégorie (CC+cat)
- nombre d'heure/mois
- date
- Couleurs des cellules

J'ai une macro qui me permet de calculer le nombre d'heure en fonction de la couleur et de la date. Mais je n'arrive pas a compiler le somme prod et cette fonction total.

Y aurait-il une solution?

@+
Scoty
 

Pièces jointes

  • Calcul matricielle avec transpose et condition date et couleur.xlsm
    20.4 KB · Affichages: 48

Scoty

XLDnaute Occasionnel
Re : Calcul matricielle avec transpose et condition de date

Ok Hasco, ce n'etait pas une demande direct mais aussi au forum. Merci pour la premiere partie. J'aurai du en effet exposer toute ma problématique d'un coup.

@+
Scoty
 

job75

XLDnaute Barbatruc
Re : Calcul matricielle avec transpose et condition de date

Bonsoir Scoty, salut Hasco,

Voyez le fichier joint.

J'ai remplacé la fonction scalaire TOTAL par la fonction matricielle MATCOUL :

Code:
Function MATCOUL(Pcoul, celcoul)
'Pcoul doit être un vecteur ligne ou colonne
Dim mat#(), coul, n&
ReDim mat(1 To Pcoul.Count)
coul = celcoul.Interior.Color
For Each Pcoul In Pcoul
  n = n + 1
  If Pcoul.Interior.Color = coul Then mat(n) = Pcoul
Next
MATCOUL = mat 'vecteur ligne
End Function
Somme des heures en R16 :

Code:
=SOMMEPROD(MATCOUL($E$7:$P$7;$P16)*($E$4:$P$4<=$D$1))
Calcul du coût en S16 :

Code:
=SOMMEPROD(MATCOUL($E$7:$P$7;$P16)*($E$4:$P$4<=$D$1);N(DECALER($G$10;EQUIV($E$5:$P$5;$F$11:$F$14;0);)))
Nota : votre fichier était en calcul manuel, je l'ai remis en automatique !!

A+
 

Pièces jointes

  • Matrice des couleurs(1).xls
    56 KB · Affichages: 40
Dernière édition:

job75

XLDnaute Barbatruc
Re : Calcul matricielle avec transpose et condition de date

Re,

Dans la mesure où toutes les cellules en ligne 5 contiennent le même texte, on peut simplifier en S16 :

Code:
=SOMMEPROD(MATCOUL($E$7:$P$7;$P16)*($E$4:$P$4<=$D$1))*RECHERCHEV(A$5&" "&B$5;F$11:G$14;2;0)
Fichier (2).

A+
 

Pièces jointes

  • Matrice des couleurs(2).xls
    56 KB · Affichages: 37
Dernière édition:

job75

XLDnaute Barbatruc
Re : Calcul matricielle avec transpose et condition de date

Re,

Avec cette fonction MATCOUL on peut avoir des valeurs non numériques en ligne 7 :

Code:
Function MATCOUL(Pcoul, Optional celcoul)
'Pcoul doit être un vecteur ligne ou colonne
Dim mat#(), coul As Variant, n&
ReDim mat(1 To Pcoul.Count)
On Error Resume Next
coul = celcoul.Interior.Color
For Each Pcoul In Pcoul
  n = n + 1
  If Pcoul.Interior.Color = coul Or IsEmpty(coul) Then mat(n) = Pcoul
Next
MATCOUL = mat 'vecteur ligne de nombres
End Function
Je l'utilise aussi en R12 et R14 (sans le 2ème argument).

Edit : avec On Error Resume Next c'est plus simple.

Fichier (3).

A+
 

Pièces jointes

  • Matrice des couleurs(3).xls
    56.5 KB · Affichages: 37
Dernière édition:

job75

XLDnaute Barbatruc
Re : Calcul matricielle avec transpose et condition de date

Re,

Encore une explication sur ma formule avec DECALER/EQUIV.

En R12 et R14, (E5:p5=F11:F14)*G11:G14 créait des matrices de dimension 12 x 4.

Code:
N(DECALER($G$10;EQUIV($E$5:$P$5;$F$11:$F$14;0);))
crée des vecteurs 12 x 1.

Le calcul est plus rapide, c'est mieux sur de grands tableaux.

Seul inconvénient : DECALER est volatile...

Fichier (4).

A+
 

Pièces jointes

  • Matrice des couleurs(4).xls
    56.5 KB · Affichages: 39

Scoty

XLDnaute Occasionnel
Re : Calcul matricielle avec transpose et condition de date

Re Bonjour Job,

Vos fichiers sont tout simplement de l'or car ils prennent en compte tous les paramètres de calculs de ma problématique.

Je prendrai le dernier à l'utilisation. De plus, je garde la première méthode de calcul du cout car en ligne 5, il est possible que la personne change de département (centre de coûts), ou bien qu'elle ait une promotion (cat 1 à 2). Je pensais donc qu'au cours du réalisé, je mette la cellule en dur pour le calcul.
 

Discussions similaires

Réponses
16
Affichages
687
Réponses
3
Affichages
349

Statistiques des forums

Discussions
312 220
Messages
2 086 381
Membres
103 199
dernier inscrit
ATS1