Ligne() dans une formule

Résolu
Anthelm Messages postés 202 Statut Membre -  
Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai la formule suivante dans un tableau, ligne 3:

SI(ESTTEXTE(C3);COLONNE(INDIRECT(C3 & 1));C3)

(Puis en ligne 4, remplacer C3 par C4...)

Je voudrais remplacer tous les C3 par "C"&ligne()
ça permettrait de faire des couper coller dans le tableau sans rien changer.

Donc en résumé, ma formule deviendrait

=SI(ESTTEXTE("C"(ligne());COLONNE(INDIRECT("C"(ligne()) & 1));("C"(ligne()))

Peut importe comment je met mes parenthèse j'ai toujours une erreur, je n'y arrive pas...
Si quelqu'un arrive à voir le truc...!

Merci beaucoup!

Configuration: Windows / Firefox 66.0

4 réponses

  1. Anthelm Messages postés 202 Statut Membre 1
     
    SI(ESTTEXTE(C3);COLONNE(INDIRECT(C3 & 1));C3)

    Si en C3, j'ai le chiffre 8 par exemple, la cellule renvoie 8.

    Si en C3, j'ai la lettre C, INDIRECT(C3 & 1) renvoie "3" car "C" est la 3eme lettre de l'alphabet.

    Cette formule fait que je peux entrer dans le tableau "de 1 à 5" ou "de A à E", c'est pareil.
    0
  2. Anthelm Messages postés 202 Statut Membre 1
     
    Il manquait plein de "indirect" en fait, c'est bon.

    =SI(ESTTEXTE(INDIRECT("C"&LIGNE()));COLONNE(INDIRECT(INDIRECT("C"&LIGNE()) & 1));(INDIRECT("C"&LIGNE())))
    0
  3. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonjour
    si vous demandez à Excel si "C" est un texte, c'est du temps perdu c'est obligatoire avec les guillemets
    essayez:
    SI(ESTTEXTE(C3));COLONNE(INDIRECT("C" & LIGNE()));C3)
    qui vous renverra C3 si il est numérique
    .... et 3 si C3 ne l'est pas. Cette formule va s'incrémenter en C4 et ligne .etc..... en tirant vers le bas
    mais en fait vous renverra toujours 3 quand C sera texte, car quand vous écrivez :
    ......INDIRECT(COLONNE("C"&LIGNE()))
    vous faites référence à la colonne C, la troisième, quelque soit le n° de ligne qui suit et donc écrire ça ou
    SI(ESTTEXTE(C3));3;C3)
    revient au même!

    alors il faudrait nous en dire plus sur ce que vous voulez faire et sur vos données de base?

    à vous lire

    crdlmnrt
    0
    1. Anthelm Messages postés 202 Statut Membre 1
       
      Le problème c'est que si C3 contient "A", je veux obtenir "1" en resultat. B=2, etc etc.
      0
    2. Anthelm Messages postés 202 Statut Membre 1
       
      ("C"&LIGNE()) & 1) Tout est dans le "& 1" :)
      0
    3. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      pour avoir 1 si C contient A, il ne faut pas avoir le C entre guillemets, mais renvoyer d'abord la valeur de C:
      =COLONNE(INDIRECT(C3&1)). Le LIGNE() n'est pas utile pour avoir C4 en ligne 4 etc...
      crdlmnt
      0
  4. Anthelm Messages postés 202 Statut Membre 1
     
    En fait c'est étrange mais colonne renvoie la position dans l'alphabet!...

    =COLONNE(INDIRECT("Z"& 1)) renvoie 26. Peut importe ou la formule est placée.

    Je ne comprends pas bien le fonctionnement de "Colonne"... mais ça marche.
    0
    1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      Bonjour
      si vous voulez le N° de colonne où se trouve la formule, écrivez simplement: =COLONNE()
      pour vopir ce qu'il se passe avec INDIRECT qui transforme un texte d'une cellule en adresse Excel, écrivez dans une celllule:
      ="Z"&1, la cellule vous renverra le texte Z1 et donc la formule complète vous renvoie le n° de colonne de Z1,.... ou de Z1000 ou de Zxxx, puisque cela ne concerne que le si vous écrivez "ZZ", vous aurez le N° de la colonne ZZ

      bonne route
      crdlmnt
      0