Simplication de formule

Bonjour,

j'ai trois tables:

Entrée: A avec 72 colonnes de -24 à +48 dont les 24 de B à partir de colonne O

Entrée: B avec 24 colonnes de 1 à 24 à partir de colonne AM

Sortie: C avec 72 colonnes -24 à +48 dont les 24 de B à partir de colonne O

Je cherche dans C à effectuer une opération de B par rapport à A avec recopie à droite et à gauche des 24 colonnes de B dans C

La formule me donne l'expression suivante par rapport à la première colonne de B en AM:

=+B!BK2*(1+A!$J2)*A!$O2+B!BJ2*(1+A!$J2)*A!$P2+B!BI2*(1+A!$J2)*A!$Q2+B!BH2*(1+A!$J2)*A!$R2+B!BG2*(1+A!$J2)*A!$S2+B!BF2*(1+A!$J2)*A!$T2+B!BE2*(1+A!$J2)*A!$U2+B!BD2*(1+A!$J2)*A!$V2+B!BC2*(1+A!$J2)*A!$W2+B!BB2*(1+A!$J2)*A!$X2+B!BA2*(1+A!$J2)*A!$Y2+B!AZ2*(1+A!$J2)*A!$Z2+B!AY2*(1+A!$J2)*A!$AA2+B!AX2*(1+A!$J2)*A!$AB2+B!AW2*(1+A!$J2)*A!$AC2+B!AV2*(1+A!$J2)*A!$AD2+B!AU2*(1+A!$J2)*A!$AE2+B!AT2*(1+A!$J2)*A!$AF2+B!AS2*(1+A!$J2)*A!$AG2+B!AR2*(1+A!$J2)*A!$AH2+B!AQ2*(1+A!$J2)*A!$AI2+B!AP2*(1+A!$J2)*A!$AJ2+B!AO2*(1+A!$J2)*A!$AK2+B!AN2*(1+A!$J2)*A!$AL2+B!AM2*(1+A!$J2)*A!$AM2+B!AL2*(1+A!$J2)*A!$AN2+B!AK2*(1+A!$J2)*A!$AO2+B!AJ2*(1+A!$J2)*A!$AP2+B!AI2*(1+A!$J2)*A!$AQ2+B!AH2*(1+A!$J2)*A!$AR2+B!AG2*(1+A!$J2)*A!$AS2+B!AF2*(1+A!$J2)*A!$AT2+B!AE2*(1+A!$J2)*A!$AU2+B!AD2*(1+A!$J2)*A!$AV2+B!AC2*(1+A!$J2)*A!$AW2+B!AB2*(1+A!$J2)*A!$AX2+B!AA2*(1+A!$J2)*A!$AY2+B!Z2*(1+A!$J2)*A!$AZ2+B!Y2*(1+A!$J2)*A!$BA2+B!X2*(1+A!$J2)*A!$BB2+B!W2*(1+A!$J2)*A!$BC2+B!V2*(1+A!$J2)*A!$BD2+B!U2*(1+A!$J2)*A!$BE2+B!T2*(1+A!$J2)*A!$BF2+B!S2*(1+A!$J2)*A!$BG2+B!R2*(1+A!$J2)*A!$BH2+B!Q2*(1+A!$J2)*A!$BI2+B!P2*(1+A!$J2)*A!$BJ2+B!O2*(1+A!$J2)*A!$BK2

en AN:

=+B!BL2*(1+A!$J2)*A!$O2+B!BK2*(1+A!$J2)*A!$P2+B!BJ2*(1+A!$J2)*A!$Q2+B!BI2*(1+A!$J2)*A!$R2+B!BH2*(1+A!$J2)*A!$S2+B!BG2*(1+A!$J2)*A!$T2+B!BF2*(1+A!$J2)*A!$U2+B!BE2*(1+A!$J2)*A!$V2+B!BD2*(1+A!$J2)*A!$W2+B!BC2*(1+A!$J2)*A!$X2+B!BB2*(1+A!$J2)*A!$Y2+B!BA2*(1+A!$J2)*A!$Z2+B!AZ2*(1+A!$J2)*A!$AA2+B!AY2*(1+A!$J2)*A!$AB2+B!AX2*(1+A!$J2)*A!$AC2+B!AW2*(1+A!$J2)*A!$AD2+B!AV2*(1+A!$J2)*A!$AE2+B!AU2*(1+A!$J2)*A!$AF2+B!AT2*(1+A!$J2)*A!$AG2+B!AS2*(1+A!$J2)*A!$AH2+B!AR2*(1+A!$J2)*A!$AI2+B!AQ2*(1+A!$J2)*A!$AJ2+B!AP2*(1+A!$J2)*A!$AK2+B!AO2*(1+A!$J2)*A!$AL2+B!AN2*(1+A!$J2)*A!$AM2+B!AM2*(1+A!$J2)*A!$AN2+B!AL2*(1+A!$J2)*A!$AO2+B!AK2*(1+A!$J2)*A!$AP2+B!AJ2*(1+A!$J2)*A!$AQ2+B!AI2*(1+A!$J2)*A!$AR2+B!AH2*(1+A!$J2)*A!$AS2+B!AG2*(1+A!$J2)*A!$AT2+B!AF2*(1+A!$J2)*A!$AU2+B!AE2*(1+A!$J2)*A!$AV2+B!AD2*(1+A!$J2)*A!$AW2+B!AC2*(1+A!$J2)*A!$AX2+B!AB2*(1+A!$J2)*A!$AY2+B!AA2*(1+A!$J2)*A!$AZ2+B!Z2*(1+A!$J2)*A!$BA2+B!Y2*(1+A!$J2)*A!$BB2+B!X2*(1+A!$J2)*A!$BC2+B!W2*(1+A!$J2)*A!$BD2+B!V2*(1+A!$J2)*A!$BE2+B!U2*(1+A!$J2)*A!$BF2+B!T2*(1+A!$J2)*A!$BG2+B!S2*(1+A!$J2)*A!$BH2+B!R2*(1+A!$J2)*A!$BI2+B!Q2*(1+A!$J2)*A!$BJ2+B!P2*(1+A!$J2)*A!$BK2

en AL:

=+B!BJ2*(1+A!$J2)*A!$O2+B!BI2*(1+A!$J2)*A!$P2+B!BH2*(1+A!$J2)*A!$Q2+B!BG2*(1+A!$J2)*A!$R2+B!BF2*(1+A!$J2)*A!$S2+B!BE2*(1+A!$J2)*A!$T2+B!BD2*(1+A!$J2)*A!$U2+B!BC2*(1+A!$J2)*A!$V2+B!BB2*(1+A!$J2)*A!$W2+B!BA2*(1+A!$J2)*A!$X2+B!AZ2*(1+A!$J2)*A!$Y2+B!AY2*(1+A!$J2)*A!$Z2+B!AX2*(1+A!$J2)*A!$AA2+B!AW2*(1+A!$J2)*A!$AB2+B!AV2*(1+A!$J2)*A!$AC2+B!AU2*(1+A!$J2)*A!$AD2+B!AT2*(1+A!$J2)*A!$AE2+B!AS2*(1+A!$J2)*A!$AF2+B!AR2*(1+A!$J2)*A!$AG2+B!AQ2*(1+A!$J2)*A!$AH2+B!AP2*(1+A!$J2)*A!$AI2+B!AO2*(1+A!$J2)*A!$AJ2+B!AN2*(1+A!$J2)*A!$AK2+B!AM2*(1+A!$J2)*A!$AL2+B!AL2*(1+A!$J2)*A!$AM2+B!AK2*(1+A!$J2)*A!$AN2+B!AJ2*(1+A!$J2)*A!$AO2+B!AI2*(1+A!$J2)*A!$AP2+B!AH2*(1+A!$J2)*A!$AQ2+B!AG2*(1+A!$J2)*A!$AR2+B!AF2*(1+A!$J2)*A!$AS2+B!AE2*(1+A!$J2)*A!$AT2+B!AD2*(1+A!$J2)*A!$AU2+B!AC2*(1+A!$J2)*A!$AV2+B!AB2*(1+A!$J2)*A!$AW2+B!AA2*(1+A!$J2)*A!$AX2+B!Z2*(1+A!$J2)*A!$AY2+B!Y2*(1+A!$J2)*A!$AZ2+B!X2*(1+A!$J2)*A!$BA2+B!W2*(1+A!$J2)*A!$BB2+B!V2*(1+A!$J2)*A!$BC2+B!U2*(1+A!$J2)*A!$BD2+B!T2*(1+A!$J2)*A!$BE2+B!S2*(1+A!$J2)*A!$BF2+B!R2*(1+A!$J2)*A!$BG2+B!Q2*(1+A!$J2)*A!$BH2+B!P2*(1+A!$J2)*A!$BI2+B!O2*(1+A!$J2)*A!$BJ2

Peut-on simplifier cette formule?

A vous lire

Bonjour

Sincèrement, tu penses qu'on a envie de décortiquer des formules de cette longueur sans même avoir un fichier ?

Amicalement

Nad

bonjour,

il me semble que l'on doit pouvoir s'en sortir avec un sommeprod à vérifier

pour ta 1ere formule.

=SOMMEPROD(B!BK2:O2*(1+A!$J2)*A!$O2:$BK2)

Ci-joint fichier

Nad a écrit :

Bonjour

Sincèrement, tu penses qu'on a envie de décortiquer des formules de cette longueur sans même avoir un fichier ?

Amicalement

Nad

h2so4 a écrit :

bonjour,

il me semble que l'on doit pouvoir s'en sortir avec un sommeprod à vérifier

pour ta 1ere formule.

=SOMMEPROD(B!BK2:O2*(1+A!$J2)*A!$O2:$BK2)

ben cela ne fonctionne pas ! je vois que BK2:O2 est transformée en O2:BK2 après validation de la formule.

Bonjour,

tu peux simplifier ta formule si tu t'arranges pour faire en sorte que les données de B!BK2:O2 soient inversées càd que O2 contienne BK2, M2 contienne BJ2, etc ...

ou via l'utilisation d'un fonction personnalisée qui prend la plage en sens inverse

=SOMMEPROD(InverseRange(B!O2:BK2)*(1+A!$J2)*A!$O2:$BK2)

voici le code de la Fonction pesonnalisée

Function InverseRange(r As Range) As Variant
' inverse la selection de la plage exemple  si A1:A6 retourne les valeurs de A6 à A1
Dim rbis As Variant
ReDim rbis(1 To r.Count)
i = UBound(rbis, 1)
For Each c In r
rbis(i) = c.Value
i = i - 1
Next
InverseRange = rbis
End Function

Merci pour les informations mais je comprends pas comment faire

Faut-il créer une macro?

A vous lire

Bonjour,

j'ai fait 2 propositions pour simplifier la formule.

la première est de disposer les données autrement,

la deuxième est d'utiliser une fonction personnalisée (VBA) qui s'accommode de ta disposition des données. c'est ce que j'ai ms dans le fichier joint.

Rechercher des sujets similaires à "simplication formule"