Fractionnement de cellules par cas

Divers pimpinlarge Février 27, 2016 0 0
FONT SIZE:
fontsize_dec
fontsize_inc

 Manik a une feuille de calcul qui, dans la colonne A a des valeurs de texte dans le format "Mike Davis" où le premier nom de la personne est en minuscules et le dernier nom en lettres majuscules. Il serait divisé les noms de deux colonnes séparées, selon le cas du texte.

 Ceci peut être réalisé en utilisant une formule pour une macro. Peu importe l'approche que vous utilisez, la clé est de comprendre où le texte passe de minuscule à majuscule. Cela ne peut être fait en examinant chaque caractère de la chaîne. Donc, si vous voulez utiliser une approche stéréotypée, vous devez utiliser une formule matricielle. Tableau avec la formule suivante renvoie le nom de ce qui est dans la cellule A1:

 = MID, 1))> = 65)
 *, 1)) <90)) + 1 255)

 Rappelez-vous, parce que cela est une formule de matrice, vous devez le saisir en appuyant sur Ctrl + Maj + Entrée. Il renvoie tout dans la cellule à partir de la première majuscule qu'il trouve. Donc, "Mike Davis" ferait retour "Davis" et "Mike Davis" reviendrait "Davis." En supposant que vous utilisez la formule matricielle dans la cellule B1, vous pouvez ensuite déterminer le premier nom en utilisant les éléments suivants:

 = Suppléant

 Cette formule est un, pas une formule de matrice normale.

 Il existe de nombreuses séries de formules similaires qui peuvent accomplir la même tâche. Donc, cette formule de tableau est le nom de ce qui est dans la cellule A1 de retour:

 = LEFT)) 1))> 96) * ROW))))

 Vous pouvez ensuite utiliser la même formule simple pour calculer le dernier nom.

 Pour utiliser une approche macro pour trouver les noms, tout ce que vous avez à faire est de venir avec une formule qui sera de retour l'emplacement du premier cas dans le texte. Le code suivant montre ce «point de changement" dans le texte:

 Fonction GetFirstUpper As Integer
 As String Dim sCellValue
 Dim i As Integer

 
 sCellValue = Garniture
 i = 1
 Do While)> _ 90
 Ou Asc) <65) _
 Et je Len Dan
 GetFirstUpper = 99
 Autrement
 GetFirstUpper = i
 End If
 End Function

 Pour utiliser la fonction, supposons que le nom est dans la cellule A1. Vous trouverez les noms et prénoms en utilisant ces formules dans la feuille:

 = LEFT)
 = MID, LEN) - GetFirstUpper +1)

 Si vous préférez pour votre macro pour les noms réels de retour, vous pouvez utiliser l'un à côté de tout ramener à la lettre de capital initial:

 Fonction getFirstName as String
 As String Dim sCellValue
 Dim i As Integer

 
 sCellValue = Garniture
 i = 1
 Do While)> _ 90
 Ou Asc) <65) _
 Et je Len Dan
 GetFirstName = sCellValue
 Autrement
 GetFirstName = Gauche
 End If
 End Function

 Pour utiliser la macro, tout ce que vous avez à faire est la suivante dans une cellule de feuille de calcul.

 = GetFirstName

 Une petite variation sur le macro vous permettra d'obtenir le même nom de famille, qui devrait commencer à tout avec le premier cas rencontré.

 Fonction GetLastName as String
 As String Dim sCellValue
 Dim i As Integer

 
 sCellValue = Garniture
 i = 1
 Do While)> _ 90
 Ou Asc) <65) _
 Et je Len Dan
 GetLastName = sCellValue
 Autrement
 GetLastName = Mid
 End If
 End Function

 Si vous préférez, vous pouvez utiliser les macros dans une fonction unique qui, sur la base de ce que vous spécifiez combiner, de retour soit le nom ou le prénom:

 Fonction GetName As String
 As String Dim sCellValue
 Dim i As Integer

 
 sCellValue = Garniture
 i = 1
 Do While)> _ 90
 Ou Asc) <65) _
 Et je Len Dan
 GetName = sCellValue
 Autrement
 Si LCase = "first" Dan
 GetName = Gauche
 Autrement
 GetName = Mid
 End If
 End If
 End Function

 Cette fonction de l'utilisation combinée vous avez seulement besoin de spécifier le nom que vous voulez:

 = GetName

 Le mot «d'abord» comme paramètre de cette manière donne le prénom. Autre chaîne de caractères passée que les résultats du deuxième paramètres sont retournés dans le nom.

 Conseils Excel est votre source pour la formation Microsoft Excel rentable. Cette astuce applique à Microsoft Excel 97, 2000, 2002 et 2003. Vous pouvez voir une version de cette astuce pour l'interface en ruban de Excel, voir: fractionner les cellules Case.

(0)
(0)