Gå til innhold

[Løst] Excel: Splitte data i en celle i flere celler (opp til 312 celler)


Jakke

Anbefalte innlegg

Hei! I Google Sheets har vi den vakre funksjonen =split. Excel henger dessverre etter på en del funksjoner, de fikk bl.a =sort først i fjor.

 

Dessverre må jeg over på Excel, da regnearket mitt er så stort at Chrome henger ikke med. Den siste lille biten jeg mangler før jeg har alt i boks, er det å kunne dynamisk splitte en celle med tall skilt av mellomrom opp i flere celler. Dette er opp til 312 tall, og det må være med formler, da dette er data som endres av bruker ofte, og er laget for å være brukervennlig.

 

Jeg finner ingenting på nett som fungerer, har prøvd meg på VBA, men jeg får ikke helt til det, da jeg kan 0 om koding, så blir det mye stanging i murer her.

 

Dette (edit: det i sitatet under, forumet er blitt tøvete synes jeg) må jeg rett og slett splitte i 234 celler, det kan bli opp til 312 celler på det meste, og det må skje automagisk i et ark i bakgrunnen, så bruker limer inn det som er i sitat, og får data ut delt i 39 rader over 8 kolonner (ved 312 tall). Data blir også brukt i bakgrunnen annetsteds, om det er relevant.

 

EDIT: HVa har skjedd med forumfunksjonene her? Jeg får ikke skrive noe som helst under sitatet, kun i sitatet...

 


23 23 23 23 23 23 23 23 23 28 38 54 70 83 89 89 89 89 89 89 89 89 89 89 89 83 70 54 38 28 23 23 23 23 23 23 23 23 23 19 19 19 19 19 19 19 19 19 25 33 47 61 72 77 77 77 77 77 77 77 77 77 77 77 72 61 47 33 25 19 19 19 19 19 19 19 19 19 16 16 16 16 16 16 16 16 16 21 28 41 53 63 67 67 67 67 67 67 67 67 67 67 67 63 53 41 28 21 16 16 16 16 16 16 16 16 16 11 11 11 11 11 11 11 11 11 14 19 27 35 43 46 46 46 46 46 46 46 46 46 46 46 43 35 27 19 14 11 11 11 11 11 11 11 11 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Endret av Jakke
Lenke til kommentar
Videoannonse
Annonse

EDIT: HVa har skjedd med forumfunksjonene her? Jeg får ikke skrive noe som helst under sitatet, kun i sitatet...

 

Kjent bugg - gå på «BBcode mode» (knappen øverst til venstre) og skriv noe under [ / quote ] - da kan du fullføre der eller trykke samme knapp igjen - da er skriving mulig under sitat. 

 

Snart oppdatering av forum så det fikser seg sikkert da :)

Lenke til kommentar

 

Kjent bugg - gå på «BBcode mode» (knappen øverst til venstre) og skriv noe under [ / quote ] - da kan du fullføre der eller trykke samme knapp igjen - da er skriving mulig under sitat. 

 

Snart oppdatering av forum så det fikser seg sikkert da :)

Ah, savnet BBcode, var mye lettere å holde på med synes jeg, da visste jeg hva jeg fikk basert på hva jeg skrev, ikke hva jeg så ;)

Lenke til kommentar

Marker cellen som den fulle strengen står i og forsøk denne koden. I mitt eksempel starter resultatene i rad 5 kolonne 1 men dette kan du selvsagt endre.
 

Sub Splitt()
 
Dim Tekst As String
Dim i As Integer
Dim Deltekst As Variant
 
Tekst = ActiveCell.Value
 
Deltekst = Split(Tekst, " ")
 
For i = 0 To UBound(Deltekst)
Cells(5, i + 1).Value = Deltekst(i) ' Her legges første verdi i rad 5 kolonne 1
Next i
 
End Sub
Lenke til kommentar

Må innrømme at jeg er litt usikker på formatet på dataene dine men følgende fungerer når jeg kopierer fra sitatet ditt, limer inn i Excel og kjører koden under når jeg står i cellen jeg limte inn dataene i:

 

 

Sub Jakkeplitt()

   Dim myRange As Range
    Set myRange = Selection
 
    myRange.TextToColumns Destination:=myRange.Offset(1, 0), _
    DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, _
    ConsecutiveDelimiter:=False, _
    Tab:=False, _
    Semicolon:=False, _
    Comma:=False, _
    Space:=True, _
    Other:=False, _
    FieldInfo _
    :=Array(1, 1), DecimalSeparator:=".", _
    ThousandsSeparator:=",", _
    TrailingMinusNumbers:=True
 
End Sub
 

 

- Fordelen slik jeg ser det, ved å bruke TextToColumns, er bl. a. styringen man har på datatypene inn og ut.

 

Et annet alternativ er Power Query i Excel, alt. Power Bi.

 

Edit: 

Om du endrer på datagrunnlaget, og kjører koden på nytt, vil det (slik koden står) spørres om du vil overskrive. Svarer man bekreftende på overskriv av destination, vil man få overskrevet destination med alt fra det nye datagrunnlaget (aktiv celle.)

Endret av NoBo
Lenke til kommentar

Fikk hjelp på et annet forum, men nei, kun formler eller VB vil fungere, da dette må gå automatisk. Det skal brukes av folk som ikke kan Excel.

 

=IFERROR(TRIM(RIGHT(SUBSTITUTE(LEFT($A$2,FIND("|",SUBSTITUTE($A$2&" "," ","|",COLUMN(A2)+(ROW(A1)*39-39)))-1)," ",REPT(" ",3)),3)),"")

  • Liker 1
Lenke til kommentar

Den formelen er lagd for å dele opp opp til 312 verdier i like mange celler, med 39 kolonner og 8 rader, for å få en matrise som matcher de egentlige inndata.

 

Se bildet, så ser du matrisen jeg snakker om. Det jeg trengte var å kunne kopiere dette rett fra andre PDFer for å generere bildet av bowlingbanen med oljen, da ble dette en celle med en masse verdier.

Det jeg gjør er å ta inndata fra oljemaskin, som er mengde olje per stav (banen er 39 staver bred, hvor en stav er cirka 1 tomme bred), og lengde i fot for den sonen, så tegner jeg og smører det utover med litt enkel matte! :D

 

post-51466-0-69366300-1570549442_thumb.jpg

  • Liker 1
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...