Kink FM radio player. Doet aan ultracrepidarianisme
Vraag
Alle reacties
moet worden: ditiseentekst?d
i
t
i
s
e
e
n
t
e
k
s
t
Sla 1 kolom op als tekst, in een platte tekstverwerker (dus geen Word maar bijv Notepad+) zoek (enter) vervang door (niets).
Maar omdat je het geen 140x wilt herhalen, is een script beter. In powershell kan je een simpel script maken (voorbeeld: https://mcpmag.com/articl...text-with-powershell.aspx) dat het zoek&vervangen doet. Waarbij je de end of line vindt via `r of `r`n. (Waarschijnlijk is er namelijk zowel een carriagereturn als een linefeed code voor de 'enter' gebruikt).
In Excel transponeren zou het makkelijker maken, maar dat is bij 140x40000 vast geen pretje. En sowieso is het max aantal kolommen "slechts" 16K.
'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)
Iets in de richting van:
Dim i as long
Dim j as long
j = 1
For i = 2 to 40000
Range(j & 1).Value = Range(j & 1).Value & Range(J & i)
If i = 40000 then
J = j+1
I =2
End if
If J= 141 exit
Next i
Waarbij i voor de rijen staat, en j de kolommen. Dit is uit mijn hoofd even, dus ik weet zeker dat het zo niet werkt, maar misschien kun je er wat mee.
'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)
Je loopt tegen deze limitatie aan
Total number of characters that a cell can contain
32,767 characters
https://support.office.co...43-467e-8e27-269d656771c3
Alles is terug te redeneren naar 4
Tegen die limitatie kun je niets doen...Steefph schreef op woensdag 10 april 2019 @ 10:19:
Met boven
Je loopt tegen deze limitatie aan
Total number of characters that a cell can contain
32,767 characters
https://support.office.co...43-467e-8e27-269d656771c3
Moet je wel VBS gebruiken ipv VBA. Maar de code van het loopje blijft gelijk.
Bedankt in ieder geval.
Kink FM radio player. Doet aan ultracrepidarianisme
Daar denk je toch te gemakkelijk over; de eerste die dat in twee minuten kan moet ik nog tegenkomen. Maar uiteraard gaat het wél in Excel !Moby schreef op woensdag 10 april 2019 @ 18:07:
voor mij is het makkelijker om dit uit te besteden aan mensen die hier 2 minuten over doen. Het is niet op te lossen binnen Excel.
Ervan uitgaand dat je gegevens in Excel in het eerste blad in de kolommen A:FD staan (160 kolommen, elk 40000 cellen groot), kun je onderstaande macro gebruiken, die je vanuit Excel kunt uitvoeren. De macro brengt je gegevens over naar een Wordbestand. Elke kolom van Excel neemt in Word (met gebruikmaking van lettertype Calibri en lettergrootte 11) bijna 9 pagina's in beslag (na elke negende pagina wordt een pagina-einde ingevoegd).
De gegevens van 10 Excelkolommen (400.000 cellen) naar Word overbrengen duurt op mijn (niet al te snelle) computer met deze macro bijna vijf seconden, dus ook voor 160 kolommen zal de tijd nog aanvaardbaar zijn. (Ter vergelijking: met een macro waarmee elk karakter afzonderlijk naar Word wordt overgebracht, duurt het overbrengen van 10 kolommen bijna een half uur).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| Option Base 1 Sub macro2() Dim myarray1(1), myarray2(1), mydoc As Object, a As Integer, x As Long, y As Long Set mydoc = CreateObject(Class:="Word.Application") With mydoc .Visible = True .documents.Add .Activate End With For a = 1 To 160 With Sheets(1) myarray1(1) = "": myarray2(1) = "" For x = 1 To 20000 myarray1(1) = myarray1(1) & .Cells(x, a) Next x For y = 20001 To 40000 myarray2(1) = myarray2(1) & .Cells(y, a) Next y End With Application.ScreenUpdating = False With mydoc.Selection .typetext "Kolom " & a & Chr(13) .typetext myarray1(1) .Collapse Direction:=0 .typetext myarray2(1) .InsertBreak Type:=7 End With Application.ScreenUpdating = True Next a Set mydoc = Nothing End Sub |
En wat moet je nu met 1440 Wordpagina's waarvan elke 9 pagina's bestaan uit 40.000 aaneengesloten karakters?
[ Voor 5% gewijzigd door dix-neuf op 13-04-2019 08:47 ]
Dat is kennelijk te veel gevraagd...Wat ik mij afvraag: hoe kom je aan die lange kolommen in Excel met in elke cel slechts 1 karakter?
En wat moet je nu met 1440 Wordpagina's waarvan elke 9 pagina's bestaan uit 40.000 aaneengesloten karakters?
Dank je. Dit ga ik misschien nog proberen.dix-neuf schreef op vrijdag 12 april 2019 @ 01:18:
[...]
Daar denk je toch te gemakkelijk over; de eerste die dat in twee minuten kan moet ik nog tegenkomen. Maar uiteraard gaat het wél in Excel !
Ervan uitgaand dat je gegevens in Excel in het eerste blad in de kolommen A:FD staan (160 kolommen, elk 40000 cellen groot), kun je onderstaande macro gebruiken, die je vanuit Excel kunt uitvoeren. De macro brengt je gegevens over naar een Wordbestand. Elke kolom van Excel neemt in Word (met gebruikmaking van lettertype Calibri en lettergrootte 11) bijna 9 pagina's in beslag (na elke negende pagina wordt een pagina-einde ingevoegd).
De gegevens van 10 Excelkolommen (400.000 cellen) naar Word overbrengen duurt op mijn (niet al te snelle) computer met deze macro bijna vijf seconden, dus ook voor 160 kolommen zal de tijd nog aanvaardbaar zijn. (Ter vergelijking: met een macro waarmee elk karakter afzonderlijk naar Word wordt overgebracht, duurt het overbrengen van 10 kolommen bijna een half uur).
[
Wat ik mij afvraag: hoe kom je aan die lange kolommen in Excel met in elke cel slechts 1 karakter?
En wat moet je nu met 1440 Wordpagina's waarvan elke 9 pagina's bestaan uit 40.000 aaneengesloten k
De grote hoeveelheid data komt doordat genoomdata is. Dan kom je vrij makkelijk aan deze aantallen.
Sorry, ik was even vergeten dat ik het verplicht is om te vertellen waarom je iets vraagt. Stom van mij zeg.
Kink FM radio player. Doet aan ultracrepidarianisme
Wat gebruik je nu ?Moby schreef op woensdag 17 april 2019 @ 15:40:
Dank je. Dit ga ik misschien nog proberen.
Dat begrijp ik. Moet(en) er dan na een bepaald aantal letters geen spatie (meerdere spaties) staan ?De grote hoeveelheid data komt doordat genoomdata is. Dan kom je vrij makkelijk aan deze aantallen.
Nog niets, dit is meer iets wat leuk is om te hebben en te kunnen, niet iets dat ik nodig heb voor mijn werkzaamheden. Ik ben er dus nog niet verder mee gegaan.dix-neuf schreef op donderdag 18 april 2019 @ 11:54:
[...]
Wat gebruik je nu ?
[...]
Dat begrijp ik. Moet(en) er dan na een bepaald aantal letters geen spatie (meerdere spaties) staan ?
En nee, spaties heb ik niet nodig. Dat zou er voor zorgen dat het inlezen van deze data gestopt wordt.
Overigens een leuke oefening die ook voort komt uit dit soort data. Ik heb een cel waar 5000 karakters in staan zonder scheidingsteken. Hoe krijg ik die in 5000 kolommen. Duurde wel even voordat ik daar iets op had gevonden.
Kink FM radio player. Doet aan ultracrepidarianisme
De DNA-programma's waar ik in een ver verleden mee gewerkt heb slikte volgens mij alleen platte tekst, en het PCR-apparaat spuugde dat ook uit.
Het is natuurlijk niet verplicht om te vertellen waarom je iets vraagt, maar dat kan wel voor context zorgen die het oplossen van het probleem makkelijker maakt. Daarnaast is het vaak gewoon interessant om te weten waarom iemand tegen een bepaald probleem aanloopt, en is het voor mensen die een vergelijkbaar probleem hebben makkelijker om een antwoord terug te vinden als er trefwoorden genoemd worden die zij gebruiken om mee te zoeken.Moby schreef op woensdag 17 april 2019 @ 15:40:
[...]
Dank je. Dit ga ik misschien nog proberen.
De grote hoeveelheid data komt doordat genoomdata is. Dan kom je vrij makkelijk aan deze aantallen.
[...]
Sorry, ik was even vergeten dat ik het verplicht is om te vertellen waarom je iets vraagt. Stom van mij zeg.
Ik had het niet beter kunnen verwoorden.gwystyl schreef op donderdag 18 april 2019 @ 13:18:
Het is natuurlijk niet verplicht om te vertellen waarom je iets vraagt, maar dat kan wel voor context zorgen die het oplossen van het probleem makkelijker maakt. Daarnaast is het vaak gewoon interessant om te weten waarom iemand tegen een bepaald probleem aanloopt, en is het voor mensen die een vergelijkbaar probleem hebben makkelijker om een antwoord terug te vinden als er trefwoorden genoemd worden die zij gebruiken om mee te zoeken.
En verder is het ook altijd wel interessant (vind ik) om te vernemen of de vragensteller met een antwoord geholpen is.
Jammer dat je niet vermeldde hoe je dat hebt opgelost.Moby schreef op donderdag 18 april 2019 @ 13:01:
Overigens een leuke oefening die ook voort komt uit dit soort data. Ik heb een cel waar 5000 karakters in staan zonder scheidingsteken. Hoe krijg ik die in 5000 kolommen. Duurde wel even voordat ik daar iets op had gevonden.
Als in het eerste blad cel A1 de cel met 5000 karakters is,en je wil die karakters in de eerste rij in het tweede blad in afzonderlijke cellen, dan kan dat bv. zo:
1
2
3
4
5
6
7
| Sub macro1()
Dim mystr As String, y As Integer
mystr = Sheets(1).Range("A1").Value
For y = 1 To 5000
Sheets(2).Cells(1, y).Value = Mid(mystr, y, 1)
Next y
End Sub |
Dat heb ik met een formule weten op te lossen in de Nederlandse Exceldix-neuf schreef op donderdag 18 april 2019 @ 17:46:
[...]
Ik had het niet beter kunnen verwoorden.
En verder is het ook altijd wel interessant (vind ik) om te vernemen of de vragensteller met een antwoord geholpen is.
[...]
Jammer dat je niet vermeldde hoe je dat hebt opgelost.
Als in het eerste blad cel A1 de cel met 5000 karakters is,en je wil die karakters in de eerste rij in het tweede blad in afzonderlijke cellen, dan kan dat bv. zo:code:
1 2 3 4 5 6 7Sub macro1() Dim mystr As String, y As Integer mystr = Sheets(1).Range("A1").Value For y = 1 To 5000 Sheets(2).Cells(1, y).Value = Mid(mystr, y, 1) Next y End Sub
=DEEL($A1;KOLOM(A:A);1)
Maar dit is uit mijn hoofd
[ Voor 0% gewijzigd door Moby op 18-04-2019 22:28 . Reden: Welk laatste haakje? ]
Kink FM radio player. Doet aan ultracrepidarianisme