Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Formule SIESTNUMCHERCHE

majesty411

XLDnaute Nouveau
Bonjour,

J'ai un petit problème, je veux faire en sorte que par exemple dans le mot : AAABAC, le AA sois référencé dans une nouvelle case comme @1, le AB comme @2 et le AC comme @3 , jusque là j'y arrive j'ai utilisé la formule : =SI(ESTNUM(CHERCHE("AA";A2));"@1";"")&SI(ESTNUM(CHERCHE("AB";A2));"@2";"")&SI(ESTNUM(CHERCHE("AC";A2));"@3";"")

Grace à cette formule j'ai bien @1@2@3 mais je voulais aussi faire en sorte que si j'ai AAABACAD, en sortie j'ai @1@2@3AD , donc en gros que ce qui n'a pas été remplacé par la formule dans le mot sois quand même ajouter et écris en sortie donc ici en l’occurrence le AD est de trop mais je veux qu'il sois quand même présent et écris, je ne sais pas ce que je dois rajouter à ma formule, si vous pouviez m'éclaircir sur le sujet ce serait simpa.


Merci d'avance =)
 
Dernière édition:

majesty411

XLDnaute Nouveau
Bonjour,

Merci pour votre réponse mais je pense que je me suis mal expliqué, je voudrais pas donner des données fixe à mon tableur excel mais que peu importe les contractions en @1 @2 etc ... que je lui donnerais il me ressorte le reste du mot qui n'a pas été contracté en plus, c'est a dire je ne vais garder l'exemple AAABACAD pour toujours, un jour si je change et que je decide que ce soit AAUUABZZACYYAD, je veux que de ce mot il me ressort : @1@2@3UUZZYYAD
 

majesty411

XLDnaute Nouveau
Enfaite le but du jeu c'est lorsque je donne un mot , Excel me le décompose de la facon que je veut en groupe de mot.

AAABACAD = @1 AEAFAGAH=@2

Si l'entrée est : AAAFABACADAH, en sortie je veut : @1AFAH, j'ai déjà reussi a faire en sorte de decomposer tout les groupes en @X, sa c'est fait mais pour avoir le reste écris en sortie qui n'a pas été decomposé le Substitue pose problème comme dis au dessus
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, le forum

@majesty411
Et si tu illustrais ta question avec des données* intelligibles (*non confidentielles bien sur)?
Parce que je suppose que dans ta réalité, tu ne travailles pas avec des AAABACAD et consorts , non ?
Alors fais péter de la donnée concrète!
 

majesty411

XLDnaute Nouveau
Hello @Staple1600 , si je travaille avec des AAAB etc ... mais par contre je peux vous montrer une image pour vous illustrer plus la problématique , et là j'ai test un exemple avec AAZZABYYACUUAD en faisant @1 = AAABACAD et @2 = AEAFAGAH=@2

Prenez pas en compte ce qui est barré c'etais des test pour moi


Nouvelle problèmatique le Substitue c'est la pire solution, parce que sa me supprime des particules des AA AB etc si ils n'ont pas été contracté

Par exemple si je met AAZZABYYACUUAH, y a aucune contraction en @1 ou @2 et je me retrouve avec ZZYYUU alors que dans ce cas là il me faudrait : AAZZABYYACUUAH, parce que je veux que le système se dise : "Bon ok j'ai pas trouver de quoi lui faire de @1 ni de @2 alors je vais juste lui sortir son entrée sans modification. Mais si je trouve de quoi lui faire des @1 et @2 alors je le lui les sort avec le reste qui n'a pas été modifié
 

Pièces jointes

  • Forrmule excel.png
    21 KB · Affichages: 19
Dernière édition:

majesty411

XLDnaute Nouveau
C'est un travail en rapport avec un "Jeu vidéo" où il faut faire des accouplements de monstres et on obtient des bébés et le jeu nous limite à une écriture de 16 caractères maximal pour nommer les bébés, le problème c'est qu'il faut garder la référence du nom des parents dans les bébés et je pense que tu imagines bien que a une génération très éloignée des parents on se retrouvera avec des nom très très long alors il faudra les raccourcir et justement d'où l'utilité des contractions de mots , par exemple si le père c'est AA et la mère c'est AB , le fils c'est AAAB, mais quand tu accouple AAAB avec AC, sa donne AAABAC etc etc etc .. alors je veux reunir des groupes de mots en @X pour gagner de la place et prolonger la durée de vie de la famille sans perdre aucun nom d'aucun arrière parents

Donc oui c'est en rapport avec le code génétique
 

majesty411

XLDnaute Nouveau
On ne peut pas dire a Excel de Substitue uniquement les particules de @X si il a réussi à les contracter ? Ou vous pensez que y a plu facile comme formule, vraiment ce qui me débloquerait c'est juste de trouver un moyen d'écrire le reste du mot qui n'a pas été contracter
 

Dranreb

XLDnaute Barbatruc
Essayez cette fonction Perso, pas complètement testée :
VB:
Option Explicit
Function Arobas(ByVal Source As String, ParamArray Masques()) As String
Dim N, Masque As String, Rés As String, P&, CSrc As String * 1, CMsq As String * 1
Arobas = ""
For N = 0 To UBound(Masques)
   Masque = Masques(N): CMsq = Left$(Masque, 1)
   Rés = ""
   For P = 1 To Len(Source)
      CSrc = Mid$(Source, P, 1)
      If CSrc <> CMsq Then
         Rés = Rés & CSrc
      ElseIf Len(Masque) = 1 Then
         Source = Rés & Mid$(Source, P + 1)
         Arobas = Arobas & "@" & N + 1: Exit For
      Else
         Masque = Mid$(Masque, 2): CMsq = Left$(Masque, 1): End If
      Next P, N
Arobas = Arobas & Source
End Function

En B1, à propager sur 3 lignes :
Code:
=Arobas(A1;"Mot1";"Mot2")
Pour info :=Arobas("MXMoYotZt12";"Mot1";"Mot2") trouve "@1@2XYZ"
de même que Arobas("AAZZABYYACUUAD";"AAABACAD";"AEAFAGAH") trouve bien "@1ZZYYUU"
Mais à priori le SUBSTITUE n'était pas la pire solution, puisque qu'il ne supprimait que les bouts qui avaient pu être mis devant sous forme @X par votre formule initiale qu'il fallait juste compéter en fin par ça. Le problème c'est que ça n'allait quand même pas, ni votre formule d'ailleurs, parce que vous dites que les mots à reconnaitre peuvent aussi être entrecoupés de lettres à conserver, voire de lettres d'autres mots à détecter.
 
Dernière édition:

majesty411

XLDnaute Nouveau
Bonjour,

Merci pour ton aide, est ce que je pourrais avoir le fichier excel avec la fonction ? car je n'arrive malheureusement pas à la mettre de mon coté ^^ malgré pas mal d'essais, je ne sais pas pourquoi sa me ressort des erreurs ='( merci d'avance
 

Discussions similaires

Réponses
5
Affichages
403
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…