La fonction SCAN renvoie une référence circulaire

Bonjour à tous,

Je bute sur un problème de mise en œuvre de la prometteuse fonction SCAN, et apprécierais votre aide :
Dans mon classeur Excel j'ai les plages de formules suivantes

Etat_Charge (S24:S17780)

Consigne (O24:O17780)

Couleur (M24:M17780)

TotalPV_Avail (R24 :R17780)

HC__HP (N24:N17780)

Clipped_Grid2ESS_HC (T24:T17780)

Clipped_PV2ESS (U24:U17780)

Clipped_ESS_Out (V24:V17780)

IncDec (AQ24 :AQ17780)

Voici les équations des plages impliquées dans mon calcul final Etat_Charge:

Clipped_Grid2ESS_HC (T24:T17780)

=SI(NON($N24);0; SI(($S24+ChargeMaxHC_DH-$V24)<$O24;ChargeMaxHC_DH; MAX(0;$O24-$S24+$V24)))

Clipped_PV2ESS (U24:U17780)

=SI(($S24+$R24-$V24)<=Capacité_BS;$R24; Capacité_BS-($S24-$V24))

Clipped_ESS_Out (V24:V17780)

=SI(ET(N24;NON(M24="BU"));0;MIN(Simu_DH[@[GetRecord.Valeur (Wh)]];S24;DéchargeMaxHP))

IncDec (AQ24 :AQ17780)

=SOMMEPROD($T$22:$V$22;$T23:$V23) (avec $T$22:$V$22 = {1 ;1 ;-1})

Ainsi les 3 plages Clipped_Grid2ESS_HC, Clipped_PV2ESS, Clipped_ESS_Out dépendent de Etat_Charge sur la même ligne

mais la plage de somme/Soustraction IncDec dépendent de Etat_Charge de la ligne précédente

Nota : les autres plages de cellules ne dépendent PAS de Etat_Charge

Consigne (O24:O17780)

Couleur (M24:M17780)

TotalPV_Avail (R24 :R17780)

HC__HP (N24:N17780)

Quand j’écris l’équation de la plage Etat_Charge ainsi : SOMMEPROD(S$22:V$22;S23:V23) avec S$22:V$22 = {1 ;1 ;1 ;-1}, le calcul de Etat_Charge se déroule normalement sans référence circulaire et réalise bien l'équation suivante : Etat_Charge(n)=Etat_Charge(n-1)+IncDec(n-1) .
Par contre je trouve qu'Excel est très lent à recalculer la feuille de calcul !

C'est pourquoi je cherche à remplacer la formule de la plage Etat_Charge SOMMEPROD(S$22:V$22;S23:V23) par :
=SCAN(0; IncDec; LAMBDA(prevAcc; currentOrg;

LET(

accNMoins1; prevAcc;

inN; currentOrg ;

accN; accNMoins1 + inN;

accN

)

))

MAIS CECI entraîne une référence circulaire !
Avez-vous des suggestions ?

Merci

bonjour morphil,

une toute petite suggestion, c'est le fichier avec ces données ...

Bonsoir Bart. En voici une version allégée.

Cordialement

Bonjour,

A mon avis ce n’est pas cette formule qui ralentit votre classeur, un SOMMEPROD sur 6 cellules Excel le gère très bien.

Ensuite votre SCAN n’a rien à voir avec le calcul du SOMMEPROD donc là je ne vous suis pas. Pour info SCAN renvoie une plage aussi large que la plage d’entrée. Ce n’est certainement pas ce que vous cherchez. Enfin la référence circulaire doit venir du fait que vous mettez la fonction scan dans la plage nommée « IncDec » ?

Selon moi votre feuille est un peu lente car il y a beaucoup de données, tout simplement.

Bonjour à tous !

Le classeur joint présente 23.538 formules.....

Vous devriez, me semble-t-il, éviter les très nombreuses variabilisations inutiles .

Exemple en W24 :

=LET(tab; MAP(TotalPV_Avail;Clipped_PV2ESS;
    LAMBDA(cTotalPV_Avail;cPV2ESS;
      LET(
        New_wESSInjPV2Grid; cTotalPV_Avail-cPV2ESS;
        New_wESSInjPV2Grid
         )));
     tab)

peut être remplacé par

=TotalPV_Avail-Clipped_PV2ESS
Rechercher des sujets similaires à "fonction scan renvoie reference circulaire"