Recherche de texte dans une même colonne [Résolu]

Signaler
-
 Minatox -
Bonjour,

Merci d'avance à ceux qui m'aideront.

J'aimerai pouvoir faire remonter, dans une cellule un texte (peu importe lequel ) si il apparaît dans des cellules qui ont toujours le même espacement mais qui sont plus bas par ex:

dans la colonne A :
J'ai dans A1 ( =SI(B2="";"";B2 ) pour qu'apparaisse le texte qui ce trouve dans B2
Mais ce texte peut ne pas être en B2 mais 20 lignes plus bas en B22 ou alors si il n'est pas en B22 il peut être en B42 et ainsi de suite (toujours 20 lignes d'écarts).

Donc j'aimerai pouvoir faire remonter le texte qu'il se trouve en B2, B22, B42, B62, etc.. (toujours le même espacement de 20 lignes) dans ma cellule B2.

Le texte sera le même dans une même colonne mais peut être différent dans une autre donc pas de formule de recherche basé sur le texte en lui même.

Je ne sais pas après je voulais essayer avec des SI et des non vides mais il ya peut être plus simple.

Merci d'avance.

Configuration: Windows / Chrome 80.0.3987.100

13 réponses

J'ai dis 20 pour simplifier j'aurais adapter à 58 après, ou dans un autre fichier peut être à 70.
Ce qui est sur c'est que sur un même fichier le "pas" sera le même entre chaque cellule donc j'adapterai juste la valeur.

Et pour ce qui est du texte "COD" c'est pareil c'est un exemple, je ne sais pas à l'avance ce qu'il sera marqué dans les cellule vertes
La chose sur c'est que se sera le même texte pour un fichier et qu'il sera écrit dans nimporte laquelle des cellules vertes ou dans 2 ou 3 etc.

et ce texte n'importe ou qu'il se trouve dans ces cellules vertes je veux qu'il apparaisse dans ma cellule du début dans le fichier en ex c'est B4.

Est ce que vous avez réussi à comprendre ma recherche ?
Messages postés
25453
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
27 octobre 2020
5 558
Bonjour
essayez avec:
=SI(DECALER(B2;19;0)=B2;B2;"")
ou selon le cas:
=SI(DECALER(B2;19;0)="";"";DECALER(B2;19;0))
crdlmnt

Messages postés
25453
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
27 octobre 2020
5 558
Alors voila tout ce que je peux vous proposer selon ce que j'ai compris
https://mon-partage.fr/f/eUjEIJqG/
crdlmnt
Merci c'est un début de réponse je la mets de cotés, ça peut fonctionner mais ça m'oblige à mettre une formule dans chaque cellule susceptible de recevoir le texte.

Pour info la formule ce situera dans la cellule B2 et ensuite la formule en A1 servira à récupérer le texte de B2 (ce sont des exemples de cellules )

En faite quand je génère un fichier sur un logiciel il vient mettre le texte voulu dans mon fichier excel soit en B2 soit en B22 soit en B42 etc.. si il y a une formule à la place il la remplace par le texte c'est pourquoi je veux mettre cette formule en B2 car dans le cas ou le texte serait en B2 la formule serait remplacé et mon texte s'affichera en A1 comme voulu mais dans les autres cas (si le texte est en B22, B42 ou autre) je voudrais qu'il apparaisse en B2.

Donc la formule en B2 dirait en parlant:
=la cellule qui est 20 lignes plus bas, si elle est vide alors la cellule qui est 20 ligne plus , si elle est vide alors la cellule qui est 20 ligne plus bas etc jusqu'a ce qu'une des cellules contiennent un texte et donc qu'il apparaisse directement en B2
Messages postés
25453
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
27 octobre 2020
5 558
Alors pour que ce soit clair, déposez un fichier modèle avec des exemples de ce que vous souhaitez et quelques explications ici (par exermple):
http://mon-partage.fr
et revenez coller le lien créé sur le site
à vous lire
crdlmnt
https://mon-partage.fr/f/zYQRytik/

voila merci
Voila la formule qui fonctionne mais je pense qu'il est possible d'avoir quelque chose de plus malléable:

=SI(D85="";SI(D143="";SI(D201="";SI(D259="";SI(D317="";SI(D375="";SI(D433="";SI(D4911="";"";D491);D433);D375);D317);D259);D201);D143);D85)

la formule est en D27 avec un écart de 58 lignes entre chaque cellules
La je n'ai que 8 cellules alors qu'il faudrait que j'en ai 50 et donc ajouter 42 fois la fonction SI ce qui est assez lourd surtout si je dois la modifier un jour.
Messages postés
25453
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
27 octobre 2020
5 558
Il reste une question à gérer dans votre modèle: la colonne B peut elle avoir des code COD ailleurs que dans les cellules désignées (24,44 etc..)
et il est important que le "pas" soit bien défini, vous parlez de 20 et votre formule en exemple passe à 58????

Messages postés
25453
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
27 octobre 2020
5 558
sauf une chose à laquelle je n'ai pas la réponse: y aura t'il d'autre cellules autres que celles correspondant au "pas" qui pourront contenir le code cherché?
et aussi:
  • quel est l'âge de votre Excel, car le fichier soumis est un xls qui laisse entendre qu'il date d'avant 2007. Est ce le cas?
  • combien de lignes pensez vous avoir au maximum dans vos modèles?

à vous lire
et on essaiera d'avancer demain


Non uniquement celles correspondant au "pas" auront le texte ou code que je veux. Ils y aura d'autres cellule contenant du texte, des formules ou des chiffres entre les cellules du "pas" par contre.

Cest en faite un tableur qui s'appelle formula one et qui est basé sur du excel 97 je crois.

Entre 4000 et 5000 lignes a mon avis.

Merci beaucoup. A demain
Messages postés
25453
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
27 octobre 2020
5 558
Bonjour
alors je ne comprend pas trop la nécessité de détecter la ligne si on sait que le code ne peut se trouver que dans une des cellules désignée
il suffit de savoir que le code est dans la colonne, non?
avec : =SI(NB.SI(B4:B1000;"COd);"COD";"")
complétez les infos sur les risques d'erreur dans ces cas ou s'il faut aussi que vous détectiez l'adresse de la cellule où se trouve le dernier code (ça c'est possible)????
à vous lire
crdlmnt
La formule irait très bien si le code ne changeait pas mais le but c'est de pouvoir dupliqué le fichier par la suite pour différent code sans avoir a renseigné ce code.

C'est pour ça que j'indiquais les cellules possibles de destination du code car soit elles sont vides soit elles sont avec le code.

Ce qu'il faudrait c'est une sorte de fonction de recherche dans les cellules qui peuvent avoir le code et si il est présent que le code remonte dans la cellule du début.
Ou alors il faudrait qu'a la place du 2eme COD dans la formule =SI(NB.SI(B4:B1000;"COd);"COD";"") celui en gras que ça fasse référence à la cellule contenant le code "COD" car le code n'est qu'une partie du texte (par ex : "Carbone organique COD") et du coup dans ma cellule de départ il faudrait que soit marqué "Carbone organique COD"
Bonjour,

Je viens d'essayer votre formule, malheureusement je pense que le tableur que j'utilise ne comprend pas le @.

Entre temps j'ai contacté aussi les gérants du tableur qui m'ont trouvé une solution.

Merci pour votre implication et je conserve votre fichier car j'utilise d'autre fichier excel qui pourront peut être en avoir besoin.