Suite

Supprimer les sept premiers caractères de la chaîne de champ à l'aide du calculateur de champ


J'ai écrit une expression/codeblock qui supprime les mots « À proximité : » de la chaîne de valeur de champ s'il l'a.

Bloc de code :

import string def splitme(s): if s[:7] == "Nearby:": aList = string.split(s, ":") return aList[1] else: pass

Expression:

splitme(!Street1!)

Il supprime « À proximité : » sur tous les champs qui le contiennent dans la chaîne, mais il supprime également les chaînes dans les enregistrements de champ qui sont corrects et ne contiennent pas « À proximité : ». Je pensais que la vérification if/else gérerait cela.


telle qu'elle est écrite, la fonction renvoie une chaîne avec « À proximité : » supprimée uniquement si le test « À proximité : » est vrai (si « à proximité : » existe dans la chaîne de champ. Si le test est faux, la fonction est définie sur « réussir » , qui ne renvoie aucune valeur (suppression de la valeur d'origine dans le processus)

pour y remédier, une valeur doit être transmise pour les deux cas - vrai et faux - quelque chose comme

def splitme(s): if s[:7] == "Nearby:": aList = string.split(s, ":") return aList[1] else: return(s) #retourne la chaîne d'origine si le test échoue #passe

En supposant"Proche:"est au début de la ligne (et jamais au milieu), vous pouvez simplifier cette logique avec une seule ligne, sans avoir besoin d'un bloc de code :

str(!Street1!).replace('À proximité :',").lstrip()


Voir la vidéo: EXCEL - EXTRAIRE UNE PARTIE DU TEXTE à gauche, à droite ou au milieu de la cellule (Octobre 2021).