PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerExcelExcelAnnorlunda sortering av kolumnAnnorlunda sortering av kolumn
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2017-01-19 08:24
 

Jag har en kolumn i ett excelblad som kan se ut enligt följande fast mycket längre:

 

101.113
101.112
102.108
 
103.112
103.105
104.107
 
105.110
105.103
106.109
 
107.104
 
108.102
 
109.106
 
110.105
 
111.114
 
112.103
112.101
113.101
 
114.111

 

Nu skulle jag vilja sortera dessa så de som hör ihop kommer efter varandra, se nedan:

 

101.112
112.101
101.113
113.101
102.108
108.102
103.105
105.103
103.112
112.103
104.107
107.104
105.110
110.105
106.109
109.106
111.114
114.111

Finns det något relativt enkelt sätt att göra det antingen direkt i excel eller med VBA?

Nytt inlägg
 2017-01-20 06:20
 
Hej om du inte vill köra VBA kod är du nog tvungen till att separera artikelnumret till två kolumner och sortera efter B kolumnen
Nytt inlägg
 2017-01-20 07:54
 

Tänkte bara förtydliga det lite.

Det är inte artikelnummer det rör utan det är kabelmärkningar som kommer från en förbindningstabell.

Just därför vill jag sortera dem efter vilka som hör ihop så jag kan skriva ut alla parvis så den som sedan ska koppla skåpet bara kan ta märkningarna två och två från remsan och på så sätt få en kabel i taget utan att behöva sortera alla märkningar manuellt alternativt leta efter varje när man ska ha dom.

 

att använda VBA gör mig inget men jag behöver hjälp med tankegången hur jag ska sortera det på lättaste sätt.

Var ett antal år sedan jag programmerade nåt särskilt så jag kommer inte riktigt ihåg hur vi tänkte när vi sorterade saker i skolan, särskilt inte när man behöver tänka på ena halvan separat med.

 

Däremot så fick jag ihop ett makro i VBA som tog två kolumner med runt 1000 rader, tog bort tre tecken i varje och lade sedan in dom i en tredje kolumt med en punkt emellan. Så lite kommer jag ihåg i alla fall. inget direkt avancerat men ändå.

Nytt inlägg
 2017-01-20 10:52
 
 Ändrad av Christian  på 2017-01-20 11:56:33
Hej hej För att lösa detta behöver du varannan gång ta värdet du redan har, och varannan gång, söka upp det inverterade värdet om detta finns. Enklast blir om du till att börja med tar bort de blanka raderna.

Sök och ersätt special på start fliken, markera alla blanka celler.

Använd sedan radergummit för att ta bort din markering.

Sedan skriver du i en kolumn jämte dina värden, låt säga kolumn B med start B2: 1 B3: 2, B4: 3 osv.
I cell C2 skriv formeln:
=IF(MOD(B2;2) = 0; VLOOKUP(RIGHT(A1; 3) & "." & LEFT(A1; 3);A:A; 1; FALSE);A2)

På svenska, (otestad)

=Om(rest(B2;2) = 0; letarad(höger(A1; 3) & "." & vänster(A1; 3); A:A; 1; falskt);A2)

A B C
101.113 1 Formeln
101.112 2 Formeln
102.108 3 Formeln

Lycka till Christian
Nytt inlägg
 2017-01-20 11:17
 
vill du köra VBA kod som är testat av mig så varsegod Sub copyRange() ActiveSheet.Select Range("A1:A6").Select Selection.Copy Range("B1").Select ActiveSheet.Paste Application.CutCopyMode = False Range("C1").Select Selection.Sort Key1:=Range("C1"), Order1:=xlAscending, _ Order2:=xlYes, Header:=xlGuess, OrderCustom:=1, MatchCase:= _ False, Orientation:=xlTopToBottom End Sub vad du dock måste göra I kolumn ´C är att köra formeln =Höger(A1;3) för att han ska hämta de tre sista att sortera på. skulle de vara lite lite stökig kod så är jag nybörjare på VBA kod men jag körde denna och den gjorde det den skulle. vill man så kan man ju dölja kolumn B och C för att slippa se för mycket på bladet
Nytt inlägg
 2017-01-26 09:21
 

lasse67

Får det inte att fungera. Den kopierar kolumnen till en ny kolumn och sorterar i nummerordning enligt första delen före punkten men sedan så får jag inte de två som hör ihop efter varandra.

Fungerade det så för dig?

Nytt inlägg
 2017-01-26 09:38
 

Christian

 

Det fungerar nästan men jag får dubletter av en del värden vilket gör att en del måste försvinna ut i tomma intet.

Se nedan där jag får med 108.110 och 110.108 två gånger och sedan så försvinner 120.242 och 242.120 och även 108.759 och 759.108

 

101.291 1 101.291
102.292 2 291.101
103.329 3 103.329
104.330 4 329.103
105.633 5 105.633
106.634 6 633.105
107.760 7 107.760
108.759 8 760.107
108.110 9 108.110
109.761 10 110.108
110.108 11 110.108
120.242 12 108.110
121.243 13 121.243
122.244 14 243.121
123.245 15 123.245
124.635 16 245.123
125.636 17 125.636
126.637 18 636.125
127.638 19 127.638
128.639 20 638.127

Några idéer om det? Det fungerar bra i övrigt men på några ställen så blir det som ovan.

Nytt inlägg
 2017-01-26 16:37
 
 Ändrad av anonymous  på 2017-01-26 18:06:07
****IGNORERA DET HÄR - Nästa post är mycket enklare********


Den här metoden borde inte funka, men excel bjuder tydligen på en fördröjning som gör att det funkar.
Klistra in den här formeln i B2 (kopiera ner) och sortera på den kolumnen

=PRODUKTSUMMA(MAX((A1=$A$1:$A$100)*RAD($A$1:$A$100);(SAMMANFOGA(HÖGER(A1;3);".";VÄNSTER(A1;3))=$A$1:$A$100)*RAD($A$1:$A$100)))


Ett alternativ är att göra en symetrisk summa av de vänstra och högra talen. Problemet är att du inte kommer att få fram helt unika siffror
Du kan testa den här och se om det fungerar:
=VÄNSTER(A1;3)*HÖGER(A1;3)
Eller lägga till en lite annorlunda formel i en extra kolumn som du sorterar på först.
=VÄNSTER(A1;3)*HÖGER(A1;3)+VÄNSTER(A1;3)+HÖGER(A1;3)

Ähh, du fattar principen
Nytt inlägg
 2017-01-26 16:55
 
 Ändrad av anonymous  på 2017-01-26 18:04:15
Varför krånglar jag till det så förbaskat ?


Ta den här formeln i B1 istället. Kopiera ner och sortera efter b-kolumnen
=OM(VÄNSTER(A1;3)<=HÖGER(A1;3);A1;HÖGER(A1;3)&"."&VÄNSTER(A1;3))

Då sätter den alltid den lägsta siffran först och du får allt i en snygg logisk ordning där du snabbt ser i kolumn B vilka som hör ihop. Baahhh

Hjälpformel i C1 för att markera de som hör ihop (onödig överkurs, och det skulle vara snyggare som villkorsstyrd formatering)
=OM(B1<>B2;"____";"")

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerExcelExcelAnnorlunda sortering av kolumnAnnorlunda sortering av kolumn

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter