Excel a-t-il un espace réservé pour la recherche et le remplacement?

5

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 \1comme marque de correspondance. Excel a-t-il cette fonctionnalité?

vlad
la source
2
Je ne crois pas Cependant, vous pouvez utiliser regex dans VBA. Ce n'est pas aussi simple qu'une boîte de dialogue Rechercher et remplacer, mais cela fonctionnera si vous devez utiliser regex.
Excellll
Comme solution de contournement, vous pouvez utiliser LibreOffice, qui prend en charge les expressions régulières, y compris les groupes de capture dans Rechercher / Remplacer. Voici une liste de toutes les constructions prises en charge . Il inclut ()dans les chaînes de recherche pour capturer une partie de la correspondance et $1dans les chaînes de remplacement pour l’utiliser.
Patrick Böker

Réponses:

5

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-> Referencesdu 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.

chuff
la source
Cet article support.office.com/en-us/article/… donne l'impression qu'il existe des fonctionnalités d'espace réservé dans Office, mais je ne parviens pas à le faire fonctionner dans Excel. Il peut donc s'agir uniquement de Word?
imoatama
1
@imotama Word 2013 a la boîte de dialogue "Recherche avancée", mais pas Excel 2013. (Allez MS, ne me force pas à utiliser VBA juste pour chercher ma feuille de calcul avec regex!)
roblogic
3

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

Gspontak
la source
1
Pourriez-vous modifier votre réponse pour inclure un court exemple d'utilisation du logiciel que vous recommandez?
Burgi
1
Confirmé: j'ai utilisé ceci et cela fonctionne.
CAD bloke
Attention: cet add-on ne semble pas enregistrer ses remplacements dans l'historique des annulations.
Ruslan
Je peux confirmer l'avertissement de @Ruslan. Les modifications ne sont pas disponibles pour l'annulation. En fait, la pile d'annulation est effacée. Toutefois, le complément invite à enregistrer le fichier avant d'apporter des modifications.
gspontak