Je souhaite utiliser des caractères génériques dans la boîte de dialogue Rechercher et remplacer d'Excel pour remplacer les cellules par une correspondance de motif. Exemple de colonne composée:
_4
_44
_13
...
Je veux remplacer ces valeurs par:
(4)
(44)
(13)
...
J'ai donc essayé avec _*
lequel trouve le motif avec succès, mais je ne pouvais trouver nulle part si les fonctionnalités d'Excel correspondaient à un espace réservé. Par exemple, avec regex, j'aurais utilisé des crochets et \1
comme marque de correspondance. Excel a-t-il cette fonctionnalité?
microsoft-excel
vlad
la source
la source
()
dans les chaînes de recherche pour capturer une partie de la correspondance et$1
dans les chaînes de remplacement pour l’utiliser.Réponses:
Les capacités de correspondance de modèle d'Excel sont extrêmement limitées: caractères littéraux, * pour correspondre à un nombre quelconque de caractères non spécifiés, et? pour faire correspondre un seul caractère non spécifié. Il n’existe pas de fonctionnalité d’espace réservé de correspondance native, ni dans les fonctions de la feuille de calcul, ni dans VBA.
Cependant, comme Excellll l’a noté, vous pouvez utiliser regex dans VBA et développer des fonctions définies par l’utilisateur basées sur regex.
Pour accéder à regex dans votre code, ajoutez une référence à la bibliothèque "Microsoft VBScript Regular Expression 5.5" via les sélections
Tools
->References
du menu principal de l'éditeur de code Visual Basic.Je n'ai pas trouvé de documentation complète sur la bibliothèque, mais vous pouvez trouver beaucoup d'éléments - et un exemple de code - avec une recherche Google.
la source
Bien que ce soit une réponse très tardive, j’ai eu du succès avec un complément appelé RegEx Find / Replace pour faire exactement ce que vous voulez. Mais je ne connais aucune fonctionnalité intégrée pour cela dans Excel.
Le complément crée un bouton sur le ruban qui ouvre une boîte de dialogue qui ressemble beaucoup à Excel Rechercher / Remplacer. La plupart des opérations fonctionnent de la même manière: vous pouvez effectuer une recherche dans une feuille ou un classeur, par colonnes ou par rangées, par correspondance, etc. (le format ne correspond toutefois pas.)
Notez cependant que le complément utilise des expressions régulières telles qu’implémentées dans VBScript et fonctionne donc différemment du Excel standard Rechercher / Remplacer. Par exemple, votre chaîne de recherche
_*
ne fonctionnerait pas. Il correspond à n'importe quelle cellule avec zéro ou plusieurs traits de soulignement, ce qui est n'importe quoi. Pour votre exemple, j'ai réussi à trouver_(\d+)
et à remplacer par'($1)
. (L'apostrophe est juste d'empêcher Excel d'interpréter(4)
comme une valeur négative.)Je ne suis aucunement affilié au site Web ou au développeur - je viens de le trouver grâce à une recherche Web. De plus, j'utilise Excel 2007 et je ne peux pas dire si cela fonctionne toujours dans les versions ultérieures. Je l'ai utilisé avec succès dans Windows 7 et Windows 10.
Le complément RegEx Find / Replace peut être trouvé à http://www.codedawn.com/excel-add-ins.php
la source