2010-09-27 5 views
1

J'ai une cellule avec une chaîne délimitée espacée dire "NULL 9"Comment créer une formule matricielle multi-cellules dans Excel dont l'entrée est une seule cellule?

Dites que ces données sont stockées dans A1.

J'ai une fonction appelée

Function splitCell(str As String) As String() 
    splitCell = split(str, " ") 
End Function 

Je suis en train de briser la cellule dans un tableau de chaînes, ce que je veux alors faire est d'avoir une formule telle que

{=splitCell(A1)}

aux emplacements A2 et A3, de sorte que A2 contiendrait "NULL" et A3 contiendrait "9". Où vais-je mal? S'il vous plaît aider. Merci

Répondre

2

Vous devez affecter le résultat de la scission à une variante, et si vous voulez que le résultat soit vertical plutôt horizontal, vous devez le transposer.

Public Function SplitCell(rng As Range) As Variant 
    SplitCell = Application.Transpose(Split(rng)) 
End Function 
1

Vous pouvez le faire entièrement avec des formules Excel:

A2: =LEFT(A1,FIND(" ",A1)) 
A3: =MID(A1,FIND(" ",A2)+1,LEN(A1)-FIND(" ",A2)) 

Cela devrait vous donner le résultat que vous recherchez.

+1

assez difficile à généraliser à n cellules. Y a-t-il une solution de formule matricielle? – xiaodai

0

Désolé, raté que vous vouliez étendre au-delà de la version simple.

Function splitCell(str As String, pos As Integer) As String 
    Dim strarray() As String 
    strarray = Split(str, " ") 
    splitCell = strarray(pos) 
End Function 

A2: =splitCell(A1,0) 

Vous aurez besoin de mettre la fonction dans un module (pas dans le code de la feuille)

Questions connexes