Gå til innhold

Foto

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


9 svar i denne tråden

#1 Jakke

Jakke

    Bruker

  • Medlemmer
  • 5 808 innlegg
  •   22. juni 2004

Skrevet 1. oktober 2019 - 20:08

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


Dette innlegget har blitt redigert av Jakke: 1. oktober 2019 - 20:11

  • 0

i7-3930K @ 4.2GHz - NVidia GeForce GTX 1070 - 16GB Kingston DDR3 - ASUS P9X79 Pro

2003 Volvo S60 2.5T AWD, Snabb Intake, BSR Catback, Ferrita Downpipe, TD04HL-19T, Bosch EV14 550cc, Hilton Tuning stage 3


#2 K.S

K.S

    Bruker

  • Medlemmer
  • 413 innlegg
  •   20. mars 2019

Skrevet 1. oktober 2019 - 21:01

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 :)


  • 0

#3 Jakke

Jakke

    Bruker

  • Medlemmer
  • 5 808 innlegg
  •   22. juni 2004

Skrevet 1. oktober 2019 - 21:05

 
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å ;)


  • 0

i7-3930K @ 4.2GHz - NVidia GeForce GTX 1070 - 16GB Kingston DDR3 - ASUS P9X79 Pro

2003 Volvo S60 2.5T AWD, Snabb Intake, BSR Catback, Ferrita Downpipe, TD04HL-19T, Bosch EV14 550cc, Hilton Tuning stage 3


#4 NoBo

NoBo

    Bruker

  • Medlemmer
  • 975 innlegg
  •   30. august 2010

Skrevet 2. oktober 2019 - 03:03

Høres ut som ‘Text to columns’ kan være det du er ute etter. Kan brukes i VBA macro. Eks. som vist her; https://excelribbon....umns_in_a_Macro
  • 0
Need a fresh start? g=c800:5

#5 Jakke

Jakke

    Bruker

  • Medlemmer
  • 5 808 innlegg
  •   22. juni 2004

Skrevet 2. oktober 2019 - 16:56

Nei text to columns er ikke dynamisk, den gjør bare jobben en gang dessverre :/

 

Er avhengig av funksjoner og formler her, script går, men foretrekker uten, helt klart.


  • 0

i7-3930K @ 4.2GHz - NVidia GeForce GTX 1070 - 16GB Kingston DDR3 - ASUS P9X79 Pro

2003 Volvo S60 2.5T AWD, Snabb Intake, BSR Catback, Ferrita Downpipe, TD04HL-19T, Bosch EV14 550cc, Hilton Tuning stage 3


#6 trn100

trn100

    Bruker

  • Medlemmer
  • 4 941 innlegg
  •   21. september 2001

Skrevet 2. oktober 2019 - 17:49

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

  • 0
"The true sign of intelligence is not knowledge but imagination"

#7 NoBo

NoBo

    Bruker

  • Medlemmer
  • 975 innlegg
  •   30. august 2010

Skrevet 2. oktober 2019 - 21:51

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.)


Dette innlegget har blitt redigert av NoBo: 2. oktober 2019 - 21:54

  • 0
Need a fresh start? g=c800:5

#8 Jakke

Jakke

    Bruker

  • Medlemmer
  • 5 808 innlegg
  •   22. juni 2004

Skrevet 7. oktober 2019 - 15:49

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)),"")


  • 0

i7-3930K @ 4.2GHz - NVidia GeForce GTX 1070 - 16GB Kingston DDR3 - ASUS P9X79 Pro

2003 Volvo S60 2.5T AWD, Snabb Intake, BSR Catback, Ferrita Downpipe, TD04HL-19T, Bosch EV14 550cc, Hilton Tuning stage 3


#9 Harald Staff

Harald Staff

    Bruker

  • Medlemmer
  • 2 417 innlegg
  •   25. april 2005

Skrevet 8. oktober 2019 - 10:04

Det der var virkelig veldig snedig. Takk for at du deler!


  • 0

#10 Jakke

Jakke

    Bruker

  • Medlemmer
  • 5 808 innlegg
  •   22. juni 2004

Skrevet 8. oktober 2019 - 16:46

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

 

NT 3 Sortland - Kegel Broadway.jpg


  • 0

i7-3930K @ 4.2GHz - NVidia GeForce GTX 1070 - 16GB Kingston DDR3 - ASUS P9X79 Pro

2003 Volvo S60 2.5T AWD, Snabb Intake, BSR Catback, Ferrita Downpipe, TD04HL-19T, Bosch EV14 550cc, Hilton Tuning stage 3



0 bruker(e) leser denne tråden

0 medlemmer, 0 gjester, 0 skjulte brukere