Tracez dynamicment les premiers mots d'une cellule excel / openoffice (et puis, certains!)

Contenu de la cellule:

Fournitures de série Epson / Epson TM / H5000; Fournitures Epson / Epson TM Series / H5200; Fournitures Epson / Epson TM Series / U590; Epson / Epson Série TM Fournitures / 930; Epson / Epson TM Series Supplies / U925; Epson / Epson TM Series Fournitures / U950

J'ai besoin d'extraire une cellule résultante avec les règles suivantes: Le premier mot, le dernier mot avant les points-virgules, en répétant, sous le virgule pour virgule. il pourrait y avoir 4, 27 ou 0 point-virgule (ou n'importe quel nombre entre les deux)

le champ ci-dessus donnerait une sortie d'Epson H5000, Epson H5200, Epson U590, Epson 930, Epson U925, Epson U950

quantité infini de points bonus et accessoires si les valeurs résultantes ont été classées par ordre alphabétique en quelque sorte IE: Epson 930, Epson H5000, Epson H5200, Epson U590, Epson U925, Epson U950

La colonne A mesure environ 28000 valeurs. Les résultats de la colonne B sont bons.

Si quelqu'un a des idées sur l'endroit où commencer à aborder ce problème, je n'ai plus de reflections à ce sujet.

Je suppose que vous ne pouvez pas facilement get vos données dans un autre format. Ce serait la meilleure solution.

Je suppose également que vos «mots» sont toujours séparés par des barres obliques. Dans Excel, j'écrivais une fonction VBA pour cette tâche. Quelque chose comme ça:

Option Explicit Function GetPrinterModels(r As Range) As Ssortingng Dim arr() As Ssortingng, arr2() As Ssortingng arr = Split(r.Value, ";") Dim results() As Ssortingng ReDim results(0 To UBound(arr)) Dim i As Integer For i = 0 To UBound(arr) arr2 = Split(arr(i), "/") ' If words can also be separated by spaces: 'arr(i) = Replace(arr(i), "/", " ") 'arr2 = Split(arr(i), " ") results(i) = arr2(0) & " " & arr2(UBound(arr2)) Next GetPrinterModels = Join(results, ", ") End Function 

En ce qui concerne le sorting, vous êtes seul. Vous souhaitez sortinger le tableau des results avant d'appeler Join le dans la dernière ligne de la fonction. Malheureusement, VBA ne dispose pas d'une fonction de Sort embeddede, mais il existe des tonnes de fonctions de sorting prêt en ligne disponibles en ligne.