[RESOLU] Indexer ou incrémenter formule (de 3 lignes en 3 lignes)

  • Initiateur de la discussion Initiateur de la discussion hypo78
  • 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 !

hypo78

XLDnaute Impliqué
Bonjour,

dans un tableau j'ai une formule du type
Code:
=SI(NB.SI($B$309:$B$358;B2)=1;"R";"")

que j'aimerai copier 3 lignes plus bas en l'indexant comme ceci
Code:
=SI(NB.SI($C$309:$C$358;B2)=1;"R";"")

Sachant que je dois faire cette manip environ 300 fois, je me vois mal utilise la fonction remplacer.

Merci d'avance de votre aide.
 

Pièces jointes

Dernière édition:
Re : Indexer ou incrémenter formule (de 3 lignes en 3 lignes)

Bonjour
Je ne vois pas où est le souci:
Si vous sélectionnez 3 cellules verticales portant des formules différentes, la recopie incrémentée répète ce cycle de trois formules !
Cordialement.
 
Re : Indexer ou incrémenter formule (de 3 lignes en 3 lignes)

Bonjour, salut Dranrfeb,

Je n'ai pas compris la même chose.

Essaie en remplaçant en C5 :=SI(NB.SI($B$309:$B$358;C2)=1;"R";"") par :
Code:
=SI(NB.SI(INDIRECT(CAR(64+ENT((LIGNE()+1)/3))&"309:"&CAR(64+ENT((LIGNE()+1)/3))&"358");C2)=1;"R";"")
En nommant col (par exemple) : =CAR(64+ENT((LIGNE()+1)/3))
La formule est plus courte et plus lisible :
Code:
=SI(NB.SI(INDIRECT(col&"309:"&col&"358");C2)=1;"R";"")
Ces formules sont à copier vers le bas, par groupe de 3, mais ne sont valables qu'à condition qu'aucune ligne ne soit insérée au-dessus de la ligne 5.

Édition :
A vérifier sous la formule : C2 ne devrait-elle pas être C$2 ?
Si des données avaient été saisies sous l'exemple j'aurais peut-être pu vérifier.
 
Dernière édition:
Re : Indexer ou incrémenter formule (de 3 lignes en 3 lignes)

Bonjour,

merci pour vos réponses.
Hoerwind, pour le col c'est comme pour une zone nommée?

Je vais essayer de l'appliquer à un tableau qui contient des données, car celui sur lequel je travaille est vierge donc impossible de se rendre compte si la fonction me renvoie la bonne valeur.

Je vais tester. @ plus tard.
 
Re : Indexer ou incrémenter formule (de 3 lignes en 3 lignes)

Re,

Oui, mais on peut nommer une formule (ou partie de formule), de la même façon qu'une plage de données.

D'autre part, tu le remarques toi-même, joindre un fichier c'est bien, mais un fichier contenant des données c'est mieux, car il y a moyen de tester la ou les formules proposées.
 
Re : Indexer ou incrémenter formule (de 3 lignes en 3 lignes)

Re,

j'ai stoppé les calculs automatique ce qui me permet de t'envoyer la feuille concernée (ancienne version donc incrémentation toute les 2 lignes).

j'ai aussi réduit la taille de mes tableaux pour que mon fichier ne pèse pas trop lourd.

j'espère que ce sera plus clair.

Merci d'avance.
 

Pièces jointes

Re : Indexer ou incrémenter formule (de 3 lignes en 3 lignes)

Bonjour tous
Je n'avais pas vu le décalage de colonnes. mais il me semble que cette expression :
INDIRECT(CAR(64+ENT((LIGNE()+1)/3))&"309:"&CAR(64+ENT((LIGNE()+1)/3))&"358")
serait avantageusement remplacée par celle ci :
DECALER($A$309:$A$358;ENT((LIGNE()+1)/3-1);0)

P.S. Je n'avais pas vu le post précédent.
Pouvez vous figer des valeurs autre que erreurs #REF! dans votre exemple
À +
 
Dernière édition:
Re : Indexer ou incrémenter formule (de 3 lignes en 3 lignes)

Bonjour,
pour commencer à simplifier, je vais inverser le sens de mes tableaux (les 3 du bas) (lignes, colonnes), comme çà je pourrais étirer (sans utiliser de formule un peu complexe pour moi) verticalement mes 300 lignes.

La seule chose un peu galère et que je dois étirer une première fois horizontalement en figeant la plage ($B$40;$AJ$40) et ensuite verticalement en figeant la référence ($B$2).

A moins qu'il y ai une solution pour figer en fonction de la manière dont on étire (horizontalement ou verticalement.

Cordialement.
 
Re : Indexer ou incrémenter formule (de 3 lignes en 3 lignes)

Re,

En orientant mes 3 tableaux autrement çà me facilite la tâche.
Pour autant pour remplir ces 3 tableaux j'ai encore besoin d'un petit coup de main, mais cette fois çà me parait beaucoup moins compliqué.

Voir l'exemple.
Merci.
 

Pièces jointes

Re : Indexer ou incrémenter formule (de 3 lignes en 3 lignes)

Bonjour Dranreb,

j'ai mis cette formule dans mon petit exemple3, c'est exactement ce qu'il me faut.
Néanmoins il va me falloir quelques explications pour que je puisse l'adapter à mon tableau originel.

Ma cellule de départ que je dois étirer (équivalent de B2 dans l'exemple) est en B309 et va chercher la valeur de la cellule ='01'!AT11 (équivalent de '01'!A3 dans l'exemple)

En espérant que ce soit ma dernière demande pour ce tableau.

Cordialement.

Edit: ce que je crois avoir compris :

=DECALER(INDIRECT("'"&TEXTE(ENT((LIGNE()+1)/3);"00")&"'!A3");COLONNE()-2;MOD(LIGNE()-2;3)*3) -> récupère le texte 01 en colonne A (cases fusionnées) pour indexer les feuil!

=DECALER(INDIRECT("'"&TEXTE(ENT((LIGNE()+1)/3);"00")&"'!A3");COLONNE()-2;MOD(LIGNE()-2;3)*3) -> décaler la ligne de -2 oui mais par rapport à quoi?

=DECALER(INDIRECT("'"&TEXTE(ENT((LIGNE()+1)/3);"00")&"'!A3");COLONNE()-2;MOD(LIGNE()-2;3)*3) -> là je ne vois pas....
 
Dernière édition:
Re : Indexer ou incrémenter formule (de 3 lignes en 3 lignes)

=DECALER(
Param 1, Cellule de base: INDIRECT("'"&TEXTE(ENT((LIGNE()+1)/3);"00")&"'!A3") Remplacer A3 par AT11 si c'est bien la cellule la plus en haut à gauche dans chaque feuille
Param 2, Nombre de lignes à décaler: COLONNE()-2 Inchangé
Param 3, Nombre de colonnes à décaler: MOD(LIGNE()-2;3)*3 Remplacer -2 par -309.
Remarque: si la position ligne de B309 risque de bouger suite à insertion suppression de lignes devant, mettez plutot MOD(LIGNE()-LIGNE(B$309);3)*3
P.s. ou mieux: MOD(LIGNES(B$309:B309)-1;3)*3 comme m'y fait penser Hoerwind que je salue.
À +
 
Dernière édition:
Re : Indexer ou incrémenter formule (de 3 lignes en 3 lignes)

Bonjour, salut Dranreb,

En mettant cette formule dans la cellule supérieure gauche du tableau (B2 ou B309) elle renverra le résultat souhaité :
=DECALER(INDIRECT("'"&TEXTE(ENT((LIGNES($1:1)+2)/3);"00")&"'!A3");COLONNE()-2;MOD(LIGNES($1:1)-1;3)*3)

Les seul inconvénient, tu ne peux insérer des lignes au-dessus du tableau des résultats.
 
Dernière édition:
Re : Indexer ou incrémenter formule (de 3 lignes en 3 lignes)

Re,
çà fonctionne sur le fichier exemple mais pas sur mon fichier.
je joins le fichier original, je n'ai laissé que 2 feuilles pour que le fichier soit léger, supprimer logo, macros.......

la formule dont on parle doit être sur la feuille nommée "masques" en cellule B309

Merci
 

Pièces jointes

- 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

Retour