Comment LpAd dans Excel, MacLochlainns Weblog

Vous pouvez utiliser une combinaison des REPLACE et REPT (croyez-le ou pas que ce soit la fonction de répétition). La première étape à la jambière gauche vous oblige à maîtriser la fonction Replace. Il faut quatre paramètres réels. Le premier est l'ancienne ou la chaîne de base, qui est généralement une référence de cellule. La seconde est la position de départ, la troisième est la longueur de la chaîne de base pour remplacer, et le quatrième la nouvelle chaîne. L'exemple suivant suppose que vous souhaitez remplacer toute la chaîne avec un espace blanc avant la chaîne d'origine.







Si vous n'aimez pas utiliser l'esperluette à concaténer, vous pouvez le remplacer par la fonction CONCATENER, comme ceci:

Bien que plus compact, l'esperluette fait le tour et enregistre finalement l'espace pour les formules méga complexes. L'étape suivante vous devez apprendre à utiliser la fonction REPT.

La fonction REPT prend deux paramètres, qui sont la chaîne que vous voulez répéter et le nombre de fois que vous voulez répéter. En supposant que vous attendez toutes les chaînes plus petites que vingt, vous pouvez utiliser la fonction REPT cette façon de créer un rembourrage dynamique de l'espace blanc physique.

Lorsque vous mettez les concepts ensemble, vous obtiendrez la commande suivante pour remplacer dynamiquement une chaîne dans la cellule A1 avec une cellule de 20 caractères qui est aligné à droite. La nouvelle valeur serait dans la cellule où vous mettez cette formule.

Ce pad vous permet de gauche une chaîne, que je suppose est grande quand vous voulez afficher un fichier spécifique de position à plat. Je préfère un fichier CSV et un environnement de programmation plus robuste mais j'espère que cela aide ceux qui veulent le faire.

Comme Andy a fait remarquer, vous pouvez simplifier avec ceci:

En tant que mise à jour du message blog, voici un Visual Basic pour Applications (VBA) utilisateur Fonction définie (UDF) qui vous fournira une fonction complémentaire pour effectuer cette tâche. Il est conçu pour les numéros LPAD ou du texte, et toujours revenir texte. Vous pouvez trouver comment développer et déployer Excel VBA dans ce UDFs blog plus récent de la mine.

«La fonction prend une entrée en tant que cellule et gère différents nombres de chaînes. Fonction LPAD (cellule variante _. En option offset = 0 Variant _. PadWith option As String = "0") 'Retour variable. Dim ReturnString As String Dim whiteSpace As String * 1 'signale une erreur significative lorsqu'un paramètre de décalage non numérique est fourni comme paramètre d'appel de décalage. Si non IsNumeric (offset) Then 'Cela signifie que la fonction est appelée de manière incorrecte, mais supprime un #VALUE! Erreur. MsgBox ( "offset ne doit pas être une valeur non numérique de [" + offset + "]!") 'Attribuer Dynamiquement le décalage de la variable offset en option. ElseIf décalage = 0 Then offset = Len (cell) Else 'Cela vous permet de voir la valeur de décalage lorsqu'il est fourni en nombre. MsgBox ( "offset est [" + CStr (offset) + "]") End If 'Assigner valeur par défaut. whiteSpace = « » 'Assurer la taille est au moins la longueur de la valeur de la cellule et le rembourrage. Si IsNumeric (offset) et Len (cellule)> Impression offset offset = Ensuite Len (cellule) + Len (padWith) End If 'Assigner valeur de remplissage par défaut lorsque la cellule est un nombre. Si IsNumeric (cellulaire) Et IsNumeric (padWith) Alors padNumberWith = CInt (padWith) Else padNumberWith = 0 End If 'Convertir en chaîne lorsque numérique, utilisez la valeur de texte padWith lorsqu'ils ne sont pas nuls et blancs si nul. Si IsNumeric (cellule) Alors ReturnString = Application.Rept ( "0", offset - Len (Application.Text (cellule, padNumberWith))) + CStr (cellulaire) ElseIf padWith <> "0" Alors ReturnString = Application.Rept (padWith, offset - Len (cellule)) + cellule ElseIf padWith = "0" Alors ReturnString = Application.Rept (whiteSpace, offset - Len (cellule)) + cellule Else ReturnString = application. REPT ( » », offset - Len (cellule)) + cellule End If 'Retour chaîne formatée. LPAD = ReturnString End Function







La formule pour un nombre est différent de ce qu'il serait en mode natif dans Excel. En effet, certains comportements sont implicitement fournis. La fonction équivalente dans Excel est:

Microsoft Excel exécute la fonction LEN () implicitement si vous le laissez dehors. Par exemple, cela fonctionne de la même que la formule plus complète ci-dessus.

Tout cela étant dit, il est loin d'être si compliqué que ça. Vous pouvez fournir le LPAD UDF dans une fonction plus simple qui ne pas utiliser les fonctions de classeur intégrées. Tout ce que vous devez savoir nous est de savoir comment la fonction String (), comme ceci:

Fonction LPAD (rembourrage variante, le caractère AS String, cellule As String) 'et attribuer une Définir la valeur par défaut, qui doit être une chaîne type de données. Dim character_default As String * 1 character_default = "" Dim NUMBER_DEFAULT As String * 1 NUMBER_DEFAULT = "0" "Vérifiez si vous avez des valeurs suffisantes pour continuer. Si IsNumeric (padding) Et IsNumeric (cellule) Alors si IsNumeric (caractère) Ensuite LPAD = String (padding, caractère) + cellule Else LPAD = String (padding, NUMBER_DEFAULT) + cellule End If Else If IsNumeric (caractère) Ensuite LPAD = Chaîne (rembourrage, caractère) + cellule Else LPAD = String (padding, character_default) + Fin de la cellule If End If End Function

Vous appelez cette UDF avec l'un des appels de fonction suivants. Vous passez le dernier paramètre parce que son un paramètre optionnel.

Appels de fonctions définies par l'utilisateur







Articles Liés