Comment copier une formule avec des "SI"

Y compris Power BI, Power Query et toute autre question en lien avec Excel
L
Lynda
Nouveau venu
Nouveau venu
Messages : 2
Inscrit le : 18 juin 2009
Version d'Excel : 2000 FR

Message par Lynda » 18 juin 2009, 17:53

Bonjour 1ere visite au forum,

J'espère que vous pourrez m'aider et ainsi m'éviter beaucoup de travail...

J'aimerais m'éviter d'inscrire à la main mes formules au moment de les copier. Voici l'exemple à copier dans mon fichier:

sur la ligne 1

=SI('liste soumission'!P5>0;'liste soumission'!R5;SI('liste soumission'!P6>0;'liste soumission'!R6;SI('liste soumission'!P7>0;'liste soumission'!R7;SI('liste soumission'!P8>0;'liste soumission'!R8;SI('liste soumission'!P9>0;'liste soumission'!R9;SI('liste soumission'!P10>0;'liste soumission'!R10;SI('liste soumission'!P11>0;'liste soumission'!R11;SI('liste soumission'!P12>0;'liste soumission'!R12;""))))))))

sur la ligne 2 voici la formule:

=SI('liste soumission'!P13>0;'liste soumission'!R13;SI('liste soumission'!P14>0;'liste soumission'!R14;SI('liste soumission'!P15>0;'liste soumission'!R15;SI('liste soumission'!P16>0;'liste soumission'!R16;SI('liste soumission'!P17>0;'liste soumission'!R17;SI('liste soumission'!P18>0;'liste soumission'!R18;SI('liste soumission'!P19>0;'liste soumission'!R19;SI('liste soumission'!P20>0;'liste soumission'!R20;""))))))))

Vous remarquez que sur la 2e ligne je dois valider mon SI sur la colonne P mais sur les 8 lignes suivantes (1e ligne balayage de P5 à P12 et sur la ligne 2 balayage de P13 à P20 et ainsi de suite pour 200 lignes toujours balayer sur les 8 lignes suivantes)


Ce n'est pas évident à expliquer .. J'espère que je suis assez claire

Merci dans l'attente de vos nouvelles
A
Amadéus
Modérateur
Modérateur
Messages : 17'727
Appréciations reçues : 58
Inscrit le : 7 mai 2006
Version d'Excel : Office Excel 2003 FR et 2013FR

Message par Amadéus » 18 juin 2009, 18:22

Bonjour. Bienvenue

Je ne saisi pas bien le problème.

En incrémentant ta formule 2 vers le bas, le décalage doit s'effectuer normalement...

Cordialement
t
thibo
Passionné d'Excel
Passionné d'Excel
Messages : 3'091
Inscrit le : 3 mai 2007
Version d'Excel : Excel 2003 + 2007

Message par thibo » 18 juin 2009, 18:29

Bonjour,

la solution pourrait passer par l'utilisation de la fonction INDEX :

en ligne 1, la formule :

=INDEX($P:$P;(LIGNE()-1)*8+5)

retourne le contenu de la cellule P5

en ligne 2, cette même formule retourne le contenu de P13

Donc, au début de ta formule, 'liste soumission'!P5 pourrait être remplacé par :

INDEX('liste soumission'!$P:$P;(LIGNE()-1)*8+5)

même adaptation en faisant varier le +5 pour chaque référence de cellule.

Je te laisse essayer


@+
A
Amadéus
Modérateur
Modérateur
Messages : 17'727
Appréciations reçues : 58
Inscrit le : 7 mai 2006
Version d'Excel : Office Excel 2003 FR et 2013FR

Message par Amadéus » 18 juin 2009, 19:30

Re..., bonjour thibo

Je n'avais pas bien intuité, essaie:

Formule en ligne1 à incrémenter vers le bas
Matricielle à valider avec les 3 touches Ctrl+Maj+Entrée
=DECALER('liste soumission'!$R$1;MIN(SI(DECALER('liste soumission'!$P$5:$P$12;(LIGNES($A$1:A1)-1)*8;)<>0;LIGNE(DECALER('liste soumission'!$P$5:$P$12;(LIGNE()-1)*8;))))-1;)
https://www.excel-pratique.com/~files/do ... sseur1.xls
Cordialement
L
Lynda
Nouveau venu
Nouveau venu
Messages : 2
Inscrit le : 18 juin 2009
Version d'Excel : 2000 FR

Message par Lynda » 18 juin 2009, 21:00

Je ne sais pas si j'ai bien envoyée mon message en réponse à vos suggestion:

premièrement MERCI

secondo: je ne suis pas très familière avec les fonctions d'excel et je ne comprends pas dans votre formule le pourquoi du *8 et du -1

Merci
A
Amadéus
Modérateur
Modérateur
Messages : 17'727
Appréciations reçues : 58
Inscrit le : 7 mai 2006
Version d'Excel : Office Excel 2003 FR et 2013FR

Message par Amadéus » 18 juin 2009, 21:13

Bonsoir Lynda
secondo: je ne suis pas très familière avec les fonctions d'excel et je ne comprends pas dans votre formule le pourquoi du *8 et du -1
Si tu veux décaler de 8 lignes à chaque nouvelle ligne, il faut bien que ce 8 soit marqué quelque part.

La formule matricielle
MIN(SI(DECALER('liste soumission'!$P$5:$P$12;(LIGNES($A$1:A1)-1)*8;)<>0;LIGNE(DECALER('liste soumission'!$P$5:$P$12;(LIGNE()-1)*8;)))) renvoie le numéro de la première ligne différente de zéro, donc si par exemple, elle renvoie 8 et qu'on décale R1 de 8, on est en R9 d'où le -1 pour effectuer la correction.

Cordialement
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message