XL pour MAC Référence circulaire

  • Initiateur de la discussion Initiateur de la discussion rtlv17
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

rtlv17

XLDnaute Nouveau
Bonjour, dans mon application de gestion de compte que j'ai mise au point (c'est une véritable usine à gaz !!), j'ai une formule qui contient une référence circulaire.
Cette formule m'a été proposée via ce forum ; cependant je ne la comprend pas.
Quelqu'un peut il l'expliquer pas à pas et ainsi lever cette référence circulaire ?

Merci

Voici la formule ; elle a pour objectif de rassembler, dans une colonne, une liste sans vide, des données réparties de manière éparse dans une longue colonne.
La formule fonctionne mais contient une référence circulaire.

=SI(ESTNA(EQUIV(MIN(BA$4:BA$240)+LIGNE()-LIGNE(BB$4);BA$4:BA$240;0));"";INDEX(AZ$4:AZ$240;EQUIV(MIN(BA$4:BA$240)+LIGNE()-LIGNE(BB$4);BA$4:BA$240;0)))
 
Bonjour, dans mon application de gestion de compte que j'ai mise au point (c'est une véritable usine à gaz !!), j'ai une formule qui contient une référence circulaire.
Cette formule m'a été proposée via ce forum ; cependant je ne la comprend pas.
Quelqu'un peut il l'expliquer pas à pas et ainsi lever cette référence circulaire ?

Merci

Voici la formule ; elle a pour objectif de rassembler, dans une colonne, une liste sans vide, des données réparties de manière éparse dans une longue colonne.
La formule fonctionne mais contient une référence circulaire.

=SI(ESTNA(EQUIV(MIN(BA$4:BA$240)+LIGNE()-LIGNE(BB$4);BA$4:BA$240;0));"";INDEX(AZ$4:AZ$240;EQUIV(MIN(BA$4:BA$240)+LIGNE()-LIGNE(BB$4);BA$4:BA$240;0)))
Bonjour,
a priori, cette formule ne contient aucune référence circulaire.
VB:
MIN(BA$4:BA$240)
renvoie la plus petite valeur trouvée dans le champ fixe (en hauteur) BA$4:BA$240
Code:
LIGNE(BB$4)
renvoie le numéro de la ligne BB$4 fixe (en hauteur), donc il renvoie toujours 4
Code:
LIGNE()
renvoie le numéro de la ligne qui contient la cellule dans laquelle est écrite cette formule
donc,
Code:
MIN(BA$4:BA$240)+LIGNE()-LIGNE(BB$4)
renvoie la valeur la plus petite de la colonne BA augmentée du numéro de la ligne actuelle et réduite de 4.
Si l'on convient d'appeler cette valeur "référence", alors
Code:
EQUIV(MIN(BA$4:BA$240)+LIGNE()-LIGNE(BB$4);BA$4:BA$240;0)
équivaut à
EQUIV(référence;BA$4:BA$240;0)
et renvoie la première position relative de la valeur référence (exactement celle-ci du fait du paramètre 0) dans le champ BA$4:BA$240.
Si cette valeur existe,
EQUIV(MIN(BA$4:BA$240)+LIGNE()-LIGNE(BB$4);BA$4:BA$240;0)
renvoie un numéro de position, sinon elle renvoie N/A.
Si l'on convient d'appeler "position" la valeur renvoyée par
EQUIV(MIN(BA$4:BA$240)+LIGNE()-LIGNE(BB$4);BA$4:BA$240;0)
on a alors la formule :
Code:
=SI(ESTNA(position);"";INDEX(AZ$4:AZ$240;position;0)
qui se lit :
Si la formule de calcul de position renvoie N/A, alors afficher une cellule vide sinon afficher le résultat du calcul de la formule :
Code:
INDEX(AZ$4:AZ$240;position;0)
qui elle même renvoie la valeur située dans la champ AZ$4:AZ$240 à la position "position".
Cordialement,
 
Bonjour,
a priori, cette formule ne contient aucune référence circulaire.
VB:
MIN(BA$4:BA$240)
renvoie la plus petite valeur trouvée dans le champ fixe (en hauteur) BA$4:BA$240
Code:
LIGNE(BB$4)
renvoie le numéro de la ligne BB$4 fixe (en hauteur), donc il renvoie toujours 4
Code:
LIGNE()
renvoie le numéro de la ligne qui contient la cellule dans laquelle est écrite cette formule
donc,
Code:
MIN(BA$4:BA$240)+LIGNE()-LIGNE(BB$4)
renvoie la valeur la plus petite de la colonne BA augmentée du numéro de la ligne actuelle et réduite de 4.
Si l'on convient d'appeler cette valeur "référence", alors
Code:
EQUIV(MIN(BA$4:BA$240)+LIGNE()-LIGNE(BB$4);BA$4:BA$240;0)
équivaut à

et renvoie la première position relative de la valeur référence (exactement celle-ci du fait du paramètre 0) dans le champ BA$4:BA$240.
Si cette valeur existe,

renvoie un numéro de position, sinon elle renvoie N/A.
Si l'on convient d'appeler "position" la valeur renvoyée par

on a alors la formule :
Code:
=SI(ESTNA(position);"";INDEX(AZ$4:AZ$240;position;0)
qui se lit :
Si la formule de calcul de position renvoie N/A, alors afficher une cellule vide sinon afficher le résultat du calcul de la formule :
Code:
INDEX(AZ$4:AZ$240;position;0)
qui elle même renvoie la valeur située dans la champ AZ$4:AZ$240 à la position "position".
Cordialement,
Merci beaucoup,

Cette formule me parait bien alambiquée ! et bien compliquée pour remonter et rassembler dans une autre colonne des valeurs (une dizaine) éparpillées sur 240 lignes d'une colonne.

Je vais quand même l'ausculter.
 
Bonjour,
a priori, cette formule ne contient aucune référence circulaire.
VB:
MIN(BA$4:BA$240)
renvoie la plus petite valeur trouvée dans le champ fixe (en hauteur) BA$4:BA$240
Code:
LIGNE(BB$4)
renvoie le numéro de la ligne BB$4 fixe (en hauteur), donc il renvoie toujours 4
Code:
LIGNE()
renvoie le numéro de la ligne qui contient la cellule dans laquelle est écrite cette formule
donc,
Code:
MIN(BA$4:BA$240)+LIGNE()-LIGNE(BB$4)
renvoie la valeur la plus petite de la colonne BA augmentée du numéro de la ligne actuelle et réduite de 4.
Si l'on convient d'appeler cette valeur "référence", alors
Code:
EQUIV(MIN(BA$4:BA$240)+LIGNE()-LIGNE(BB$4);BA$4:BA$240;0)
équivaut à

et renvoie la première position relative de la valeur référence (exactement celle-ci du fait du paramètre 0) dans le champ BA$4:BA$240.
Si cette valeur existe,

renvoie un numéro de position, sinon elle renvoie N/A.
Si l'on convient d'appeler "position" la valeur renvoyée par

on a alors la formule :
Code:
=SI(ESTNA(position);"";INDEX(AZ$4:AZ$240;position;0)
qui se lit :
Si la formule de calcul de position renvoie N/A, alors afficher une cellule vide sinon afficher le résultat du calcul de la formule :
Code:
INDEX(AZ$4:AZ$240;position;0)
qui elle même renvoie la valeur située dans la champ AZ$4:AZ$240 à la position "position".
Cordialement,
Bonjour,
a priori, cette formule ne contient aucune référence circulaire.
VB:
MIN(BA$4:BA$240)
renvoie la plus petite valeur trouvée dans le champ fixe (en hauteur) BA$4:BA$240
Code:
LIGNE(BB$4)
renvoie le numéro de la ligne BB$4 fixe (en hauteur), donc il renvoie toujours 4
Code:
LIGNE()
renvoie le numéro de la ligne qui contient la cellule dans laquelle est écrite cette formule
donc,
Code:
MIN(BA$4:BA$240)+LIGNE()-LIGNE(BB$4)
renvoie la valeur la plus petite de la colonne BA augmentée du numéro de la ligne actuelle et réduite de 4.
Si l'on convient d'appeler cette valeur "référence", alors
Code:
EQUIV(MIN(BA$4:BA$240)+LIGNE()-LIGNE(BB$4);BA$4:BA$240;0)
équivaut à

et renvoie la première position relative de la valeur référence (exactement celle-ci du fait du paramètre 0) dans le champ BA$4:BA$240.
Si cette valeur existe,

renvoie un numéro de position, sinon elle renvoie N/A.
Si l'on convient d'appeler "position" la valeur renvoyée par

on a alors la formule :
Code:
=SI(ESTNA(position);"";INDEX(AZ$4:AZ$240;position;0)
qui se lit :
Si la formule de calcul de position renvoie N/A, alors afficher une cellule vide sinon afficher le résultat du calcul de la formule :
Code:
INDEX(AZ$4:AZ$240;position;0)
qui elle même renvoie la valeur située dans la champ AZ$4:AZ$240 à la position "position".
Cordialement,
"Cette formule m'a été proposée via ce forum ; cependant je ne la comprend pas."

Vous avez 5 messages sur ce forum et aucun d'entre eux n'affiche cette formule.
Bonsoir...,
je suis bien incapable de l'avoir créer et si elle fonctionne j'ai du la copier de quelque part.
Sachant que je ne communique que sur ce forum pour des questions relatives à Excel.
Crdlmt
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Tableau
Réponses
4
Affichages
963
Retour