Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Someprod avec recherchev inside ?

16 réponses
Avatar
Poulpor
Bonjour,

J'ai un problème précis mais assez difficile à énoncer. J'ai donc posté un
fichier sur : http://cjoint.com/?expmJslBuC

Imaginons une balance comptable, avec des comptes, des mois, et des montants.
J'ai également une autre table qui comporte une correspondance entre mes 500
comptes comptables et 20 codes budgets internes.
Je veux trouver la formule qui somme les montants dans la balance, suivant
un mois et selon un code budget (attention : j'ai bien écrit un code budget !)

Ben je peux vous dire que faire la formule directement sans passer par un
recherchev intermédiaire, ce n'est pas de la tarte ! Alors bon, ce n'est pas
capital dans la mesure où je m'en sors de manière peu élégante, mais j'ai
l'impression que c'est jouable ...

Alors, je remercie les pros de la matricielle de mettre en évidence mon
incompétence en la matière.

Philippe

10 réponses

1 2
Avatar
dre
Bonjour,

Il me semble que sans un exemple concret en pièce jointe ce sera bien
difficile de te venir en aide de façon efficace.




Bonjour,

J'ai un problème précis mais assez difficile à énoncer. J'ai donc posté un
fichier sur : http://cjoint.com/?expmJslBuC

Imaginons une balance comptable, avec des comptes, des mois, et des montants.
J'ai également une autre table qui comporte une correspondance entre mes 500
comptes comptables et 20 codes budgets internes.
Je veux trouver la formule qui somme les montants dans la balance, suivant
un mois et selon un code budget (attention : j'ai bien écrit un code budget !)

Ben je peux vous dire que faire la formule directement sans passer par un
recherchev intermédiaire, ce n'est pas de la tarte ! Alors bon, ce n'est pas
capital dans la mesure où je m'en sors de manière peu élégante, mais j'ai
l'impression que c'est jouable ...

Alors, je remercie les pros de la matricielle de mettre en évidence mon
incompétence en la matière.

Philippe


Avatar
isabelle
il te faut un autre café dre, http://cjoint.com/?expmJslBuC
;-)

isabelle


Bonjour,

Il me semble que sans un exemple concret en pièce jointe ce sera bien
difficile de te venir en aide de façon efficace.





Bonjour,

J'ai un problème précis mais assez difficile à énoncer. J'ai donc posté un
fichier sur : http://cjoint.com/?expmJslBuC

Imaginons une balance comptable, avec des comptes, des mois, et des montants.
J'ai également une autre table qui comporte une correspondance entre mes 500
comptes comptables et 20 codes budgets internes.
Je veux trouver la formule qui somme les montants dans la balance, suivant
un mois et selon un code budget (attention : j'ai bien écrit un code budget !)

Ben je peux vous dire que faire la formule directement sans passer par un
recherchev intermédiaire, ce n'est pas de la tarte ! Alors bon, ce n'est pas
capital dans la mesure où je m'en sors de manière peu élégante, mais j'ai
l'impression que c'est jouable ...

Alors, je remercie les pros de la matricielle de mettre en évidence mon
incompétence en la matière.

Philippe




Avatar
AV
=SOMMEPROD(((B5:B9="hotel")+(B5:B9="restaurant"))*C5:C9)

AV
Avatar
Poulpor
On est d'accord. Mais le but est d'avoir la même formule quelque soit le code
budget choisi. Ce qu'il faut imaginer, c'est une feuille séparée avec en
colonne les mois et en ligne les codes budgets.

Moi qui pensais épater ma femme en ne passant pas par un recherchev
intermédaire (créant une colonne supplémentaire dans la balance où on met le
code budgétaire), c'est pas encore ce soir que je bénéficierai du massage
intersidéral.

poulpor


=SOMMEPROD(((B5:B9="hotel")+(B5:B9="restaurant"))*C5:C9)

AV





Avatar
isabelle
bonjour Philippe,

une fonction perso ferait t'elle l'affaire ?

=MaSommeMois(A5:A9;1;"RESTAURATION")

Function MaSommeMois(plageMois As Range, mois As Integer, Correspondance As String)
For i = 1 To plageMois.Count
On Error Resume Next
tt = Application.Index(Range("TABLE2"), Application.Match(plageMois(i, 2), Range("TABLE1"), 0))
If IsError(tt) Then
Err.Clear
Else
If plageMois(i, 1) = mois And tt = Correspondance Then MaSommeMois = MaSommeMois + plageMois(i, 3)
End If
Next
End Function


isabelle

On est d'accord. Mais le but est d'avoir la même formule quelque soit le code
budget choisi. Ce qu'il faut imaginer, c'est une feuille séparée avec en
colonne les mois et en ligne les codes budgets.

Moi qui pensais épater ma femme en ne passant pas par un recherchev
intermédaire (créant une colonne supplémentaire dans la balance où on met le
code budgétaire), c'est pas encore ce soir que je bénéficierai du massage
intersidéral.

poulpor



=SOMMEPROD(((B5:B9="hotel")+(B5:B9="restaurant"))*C5:C9)

AV







Avatar
isabelle
voici ton fichier avec la fonction http://cjoint.com/?exs1QUpvbE

isabelle




bonjour Philippe,

une fonction perso ferait t'elle l'affaire ?

=MaSommeMois(A5:A9;1;"RESTAURATION")

Function MaSommeMois(plageMois As Range, mois As Integer, Correspondance
As String)
For i = 1 To plageMois.Count
On Error Resume Next
tt = Application.Index(Range("TABLE2"), Application.Match(plageMois(i,
2), Range("TABLE1"), 0))
If IsError(tt) Then
Err.Clear
Else
If plageMois(i, 1) = mois And tt = Correspondance Then MaSommeMois =
MaSommeMois + plageMois(i, 3)
End If
Next
End Function


isabelle


On est d'accord. Mais le but est d'avoir la même formule quelque soit
le code budget choisi. Ce qu'il faut imaginer, c'est une feuille
séparée avec en colonne les mois et en ligne les codes budgets.

Moi qui pensais épater ma femme en ne passant pas par un recherchev
intermédaire (créant une colonne supplémentaire dans la balance où on
met le code budgétaire), c'est pas encore ce soir que je bénéficierai
du massage intersidéral.

poulpor



=SOMMEPROD(((B5:B9="hotel")+(B5:B9="restaurant"))*C5:C9)

AV








Avatar
AV
Je vois pas le problème par rapport à la question...
Si tu veux les dépenses de restau. pour le mois 1 il te suffit d'ajouter un test
logique dans le SP :

=SOMMEPROD((A5:A9=1)*((B5:B9="hotel")+(B5:B9="restaurant"))*C5:C9)

Quid d'un rechercheTruc là-dedans ???

AV
Avatar
hasco
bonjour

Une solution avec formules matricielles qui a l'air de fonctionner:
http://cjoint.com/?extLjBseTD

qui donnera se genre de formules:
={SOMME(SI(LISTE!$B$5:$B$9=RESTAURATION;LISTE!C5:C9;0))}

RESTAURATION étant une matrice définie dans le menu Insertion/Noms/Définir

Bonsoir à toutes et tous


Je vois pas le problème par rapport à la question...
Si tu veux les dépenses de restau. pour le mois 1 il te suffit d'ajouter un test
logique dans le SP :

=SOMMEPROD((A5:A9=1)*((B5:B9="hotel")+(B5:B9="restaurant"))*C5:C9)

Quid d'un rechercheTruc là-dedans ???

AV





Avatar
Poulpor
Merci à tous. Je verai cela au boulot demain : j'ai installé 2007 pour tester
chez moi et je n'arrive plus à m'y retrouver. Retrouver la boite de dialogue
des noms me prendraient environ 1 heure.


Dommage, j'aurais bien creuser la denière piste vés cette nuit.


bonjour

Une solution avec formules matricielles qui a l'air de fonctionner:
http://cjoint.com/?extLjBseTD

qui donnera se genre de formules:
={SOMME(SI(LISTE!$B$5:$B$9=RESTAURATION;LISTE!C5:C9;0))}

RESTAURATION étant une matrice définie dans le menu Insertion/Noms/Définir

Bonsoir à toutes et tous


Je vois pas le problème par rapport à la question...
Si tu veux les dépenses de restau. pour le mois 1 il te suffit d'ajouter un test
logique dans le SP :

=SOMMEPROD((A5:A9=1)*((B5:B9="hotel")+(B5:B9="restaurant"))*C5:C9)

Quid d'un rechercheTruc là-dedans ???

AV







Avatar
AV
Une solution avec formules matricielles qui a l'air de fonctionner:


Heu....
Il ne t'a pas échappé que SP induit un calcul matriciel et en plus, tu donc tu
pourras faire l'économie de la validation matricielle
Ceci dit, dans ta proposition, il manque un test logique (prise en compte du
mois de référence)...

AV

1 2