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.