J'utilise la formule pour ~ 300 cellules qui prend l'adresse dynamicment en utilisant la fonction INDIRECT, mais ralentit le time de calcul.
suggérez-moi une méthode alternative pour rendre le calcul plus rapide.
J'ai fait des bases puisqu'il a une macro avec la mise à jour de l'écran = faux et calcul = xlmanual.
=SUMIFS(Sheet1!$L:$L,Sheet1!$I:$I,Bookings_QTD!$F51,Sheet1!$B:$B,Bookings_QTD!I$2,INDIRECT($I$8),$K$8,Sheet1!$C:$C,$M$8)/1000000
ici cellule $ I $ 8 est dynamic où les valeurs varieront selon: -Sheet5! $ A: $ A, Sheet5! $ B: $ B …
$I$8=Sheet5!$E:$E
Je dois l'utiliser pour de nombreuses cellules ~ 400 + avec d'autres critères à l'avenir.
veuillez m'expliquer une meilleure formule ou méthode qui réduira le time de calcul.
Merci d'avance
INDIRECT()
sera lent pour de nombreuses feuilles car il s'agit d'une fonction volatile. c'est-à-dire chaque fois qu'il y a un changement dans n'importe quelle cellule du classur, il sera déclenché.
Si les valeurs de votre cellule sont relativement statiques. c'est-à-dire si vous faites reference indirectement à la cellule "B6" et vous vous attendez à ce que le contenu de B6
rest le même et ne vous attendez à ce que l'input de votre fonction change, disons de "B6" à "Z8", vous pouvez utiliser le code suivant:
Function MyIndirect(RangeStr as Ssortingng) as Variant MyIndirect = ActiveSheet.Range("RangeStr").Value End Function
Cela devrait fonctionner. Et si vous deviez "rafraîchir" cette valeur, exécutez simplement une Application.Calculation
(c. Ctrl-Alt-F9
d. Appuyez sur Ctrl-Alt-F9
)