Oprettet man. d. 08. februar 2010 kl. 22:10:49

petert
petert (6.380 point. Point ude: 540)

Sorterer tekst

Hej alle
Er der nogle ved om man soterer en tekst fil, således at man for opdelt teksten i forskellige koloner.
tekst filen er opbygget på samme måde
" 240005 5706683014673 19" Vægskab 10HE 553X600X450 Beige PD 1.248,00 "
Kan man således?
første 6 cifre i kolonne A (altid 6 cifre)
næste 13 cifre i kolonne B (Altid 13 cifre)
Sidste Eks."1.248,00" i kolonne D
Alt tekst mellem B og D i kolonne Kolonne C (der er altid mellemrum mellem tekst beløb)

Hvordan kan dette laves ?

MVH
Petert

Skrevet tir. d. 09. februar 2010 kl. 05:10:07| #1

dkhanknu
dkhanknu (33.960 point)
Første 6:  =VENSTRE(FJERN.OVERFLØDIGE.BLANKE(A1);6)
Næste 13:  =MIDT(FJERN.OVERFLØDIGE.BLANKE(A1);9;13)
Sidste:    =HØJRE(A1;TÆL(HØJRE(A1;KOLONNE(1:1))*1))

Alt andet: =MIDT(FJERN.OVERFLØDIGE.BLANKE(A1);LÆNGDE(B4)+LÆNGDE(B5)+3;LÆNGDE(A1)-LÆNGDE(B4)-LÆNGDE(B5)-3-TÆL(HØJRE(A1;KOLONNE(1:1))*1))

"Sidste" og "Alt andet" er matriksformler. Det betyder blandt andet, at du skal holde Ctrl og Shift tasten nede før du trykker på Enter. Hvis rigtigt indtastet kvitterer Excel ved at sætte tuborg-parenteser omkring formlerne.

Hans

Skrevet tir. d. 09. februar 2010 kl. 05:19:55| #2

dkhanknu
dkhanknu (33.960 point)
Jeg glemte at skrive, at formlen for "Alt andet" forudsætter at formlerne "Første 6" og "Næste 13" findes i celle B4 og B5 og at alle formler forudsætter, at tekststrengen er i A1.

Skrevet tir. d. 09. februar 2010 kl. 06:55:12| #3

petert
petert (6.380 point)
Jeg kan ikke rigtigt få det til at virke.
Jeg har gjort følgende.
teksten er i A1(der er ikke "" i teksten, det var kun for at adskilde teksten i min forklaring her)
I B1,C1,D1,E1 har jeg sat formlen =MIDT(FJERN.OVERFLØDIGE.BLANKE(A1);LÆNGDE(B4)+LÆNGDE(B5)+3;LÆNGDE(A1)-LÆNGDE(B4)-LÆNGDE(B5)-3-TÆL(HØJRE(A1;KOLONNE(1:1))*1))
ind.
Alt tekst står i A1 og kun der.
Er dette forkert
MVH
Petert

Skrevet tir. d. 09. februar 2010 kl. 07:33:42| #4

dkhanknu
dkhanknu (33.960 point)
Ja, det er forkert. Men vi tager den igen (med formlerne i de celler du ønsker):

A1: tekststreng
B1: =VENSTRE(FJERN.OVERFLØDIGE.BLANKE(A1);6)
C1: =MIDT(FJERN.OVERFLØDIGE.BLANKE(A1);9;13)
D1: =MIDT(FJERN.OVERFLØDIGE.BLANKE(A1);LÆNGDE(B1)+LÆNGDE(C1)+3;LÆNGDE(A1)-LÆNGDE(B1)-LÆNGDE(C1)-3-TÆL(HØJRE(A1;KOLONNE(1:1))*1))
E1: =HØJRE(A1;TÆL(HØJRE(A1;KOLONNE(1:1))*1))

Formlerne i D1 og E1 er matriksformler.

Hans

Skrevet tir. d. 09. februar 2010 kl. 08:07:06| #5

petert
petert (6.380 point)
Hej dkhanknu
Hvad hulen er dette. Det er for mig lige som at være i lære på troldmandens værksted.
Det virker fint med hvad er det med matriksformler, hvad er det for noget?
Mvh
Petert

Skrevet tir. d. 09. februar 2010 kl. 08:53:04| #6

petert
petert (6.380 point)
Hej igen
Det er super det du har lavet, og en stor hjælp.
Men jeg har også en lang liste, fra en anden leverandør, hvor der er brug for en kolonne mere (mellem C og D før teksten)
5706683012563 122147 9C6L4-A5 UTP Kabel 4X2XAWG23 Kat 6A LSZH 12,95

Eks.9C6L4-A5 (denne kolonner er af varierende karekterer men altid med mellemrum mellem det 6 cifrede tal og vareteksten.

Kan man også gøre det samme her.

Jeg har indsat en ny kolonne D som er tom.

Det ville være smadder fet hvis jeg kunne få de to typer samlet i et excel ark.
MVH
Petert

Skrevet tir. d. 09. februar 2010 kl. 09:09:25| #7

petert
petert (6.380 point)
Jeg har lige opdaget der er byttet om på det 13 og 6 cifrede nummer
Hvordan kan man gøre dette
MVH
Petert

Skrevet tir. d. 09. februar 2010 kl. 09:34:59| #8

petert
petert (6.380 point)
Jeg prøver og vise nogle linjer så i kan se forskellen på kolonnen mellem det 6 cifrede tal og teksten.
    5706683012563 122147 9C6L4-A5 UTP Kabel 4X2XAWG23 Kat 6A LSZH 12,95
    5706683015823 128560 Z6A-K-02 Z-MAX UTP RJ45 Jack Keystone Kat 6A 89,50
    5706683015830 128565 Z6A-02 Z-MAX UTP RJ45 Jack Hybrid Kat 6A 89,50
    5706683015847 128567 Z6A-P-01 Z-MAX UTP RJ45 Jack for Panel Kat 6A 89,50
    5706683015809 128550 Z6A-PNL-24E Z-MAX UTP 24 Ports Panel 1 HE 458,00
    5706683015816 128555 Z6A-PNL-U48E Z-MAX UTP 48 Ports Panel 1 HE 589,00
    5706683015854 128760 ZM6A-01M-02B Z-MAX RJ45 UTP Patch Kbl. 1, 0 mtr. Kat 6A 121,00
Hvis dette giver nogen bedre forståelse
MVH
Petert

Skrevet tir. d. 09. februar 2010 kl. 12:43:19| #9

petert
petert (6.380 point)
Mth til ovenstående kan det så laves sådan at
eks fra første linje
5706683012563 indsættes i kolonne C
122147 indsættes i kolonne B
9C6L4-A5 indsættes i kolonne D
UTP Kabel 4X2XAWG23 Kat 6A LSZH  indsættes i kolonne E
12,95 i kolonne F
Så vil arket være ens.
MVH
Petert

Skrevet tir. d. 09. februar 2010 kl. 13:53:52| #10

petert
petert (6.380 point)
Jeg har nu sat et komma mellem det der skal overføres til D og E
Eks
5706683012563 122147 9C6L4-A5, UTP Kabel 4X2XAWG23 Kat 6A LSZH 12,95
eller
5706683015823 128560 Z6A-K-02, Z-MAX UTP RJ45 Jack Keystone Kat 6A 89,50
kan det hjælpe?
MVH
Petert

Skrevet tir. d. 09. februar 2010 kl. 14:19:25| #11

dkhanknu
dkhanknu (33.960 point)
Prøv med følgende formler i B1, C1, D1, E1 og F1

B1: =VENSTRE(A1;13)
C1: =MIDT(A1;15;6)
D1: =MIDT(A1;22;FIND(" ";A1;22)-22)
E1: =MIDT(A1;LÆNGDE(B1)+LÆNGDE(C1)+LÆNGDE(D1)+4;LÆNGDE(A1)-LÆNGDE(B1)-LÆNGDE(C1)-LÆNGDE(D1)-3-TÆL(HØJRE(A1;KOLONNE(1:1))*1))
F1: =HØJRE(A1;TÆL(HØJRE(A1;KOLONNE(1:1))*1))

Formlerne i E1 og F1 er matriksformler.

Hans

Skrevet tir. d. 09. februar 2010 kl. 14:53:14| #12

petert
petert (6.380 point)
Super nu er den ved at være der. I kolonne D kommer alle kommaerne med.
Kan man lave noget så den tæller -1 i formlen i kolonne D
Ellers er det meget fint.
Mvh
Petert

Skrevet tir. d. 09. februar 2010 kl. 15:41:08| #13

petert
petert (6.380 point)
Hej dkhanknu

hvis jeg eks indsætter -1 i denne til sidst
=MIDT(Ark1!A101;22;FIND(" ";Ark1!A101;22)-22-1)
så fjerner jeg ganske rigtigt det sidste koma i kolonne D
men så rykker teksten i kolonne E en gang til højre(der indsættes en mellemrum først.
Hvad skal jeg så ændre i denne formel.

Ellers virker det bare perfeckt.
Læg et svar så vi kan lukke dette
Mange tak for hjælpen.
MVH
Petert

Skrevet tir. d. 09. februar 2010 kl. 15:53:38| #14

dkhanknu
dkhanknu (33.960 point)
Hvis der er komma foran mellemrummet:
=MIDT(A1;22;FIND(",";A1;22)-22)

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Svar til: X i en celle giver et andet resultat i anden...

Oprettet den 11. februar 2012 kl. 14.15
ashurra giver 100 point for svar | Giv et svar »

Hjælp til formel rente/antal dage

Oprettet den 11. februar 2012 kl. 12.14
petert giver 30 point for svar | Giv et svar »

Problemløser, "HVIS" formel, eller andet til optimering?

Oprettet den 11. februar 2012 kl. 02.36
Olav123 giver 150 point for svar | Giv et svar »

Seneste guides

Installer win 7
Den gode bruger


   




Tips & Tricks fra PC World

Teaser billede

Her er fem sjove danske websider du skal kende

Trænger dine lattermuskler til en omgang fitness på dansk? Vi viser vej til fem websider fyldt med humor og vanvittig satire.


Anmeldelser fra PC World

Teaser billede

Test: Denne super-tablet er iPads hårdeste konkurrent

Eee Pad Transformer Prime er frygtindgydende med sin quadcore processor og evne til at trylle sig om til bærbar. Apple bør kigge i bagspejlet, for Asus' tablet-pc kommer buldrende - og gør det...


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Nu kan du snart hente Windows 8

Den nye offentlige betaversion af Windows 8 er klar i denne måned.


Nyheder fra Computerworld

Teaser billede

Måske snart slut med Androids helt store problem

Android-platformen har længe været plaget af et særligt problem. Men måske er problemet nu ved at være elimineret.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger