Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Sortering via macro i Excel

Postades av 2004-05-27 08:49:42 - Mats Gustafsson, i forum microsoft office, Tråden har 17 Kommentarer och lästs av 2552 personer

Hejsan!
Jag har ett problem som verkar lite för klurigt för mig.

Ett excelblad ser ut som exemplet nedan (rader och kolumner är inte utskrivna)

Nr

1 1 2 3 4 4
2 1 2 3 4
3 1 2 3 4
4 1 2 4
5 1 1 2 2 4
6 1 2 3 4
7 1 2 4


Jag behöver tillverka ett macro som skriver ut alla varianter på Nr i denna tabell.
Ex. Nr 1 har två st fyror i tabellen, alltså var Nr 1 två möjliga varianter.
Nr 5 har två stycken ettor, och två st tvåor, alltså har Nr 5 fyra möjliga varianter.

Resultatet skall vara som nedan:

Nr

1 1 2 3 4
1 4
2 1 2 3 4
3 1 2 3 4
4 1 2 4
5 1 2 4
5 1 2 4
5 1 2 4
5 1 2 4
6 1 2 3 4
7 1 2 4


Hur fixar jag detta macro ?
Någon expert som kan hjälpa mig...

Mvh
\Mats


Svara

Sv: Sortering via macro i Excel

Postades av 2004-05-27 08:57:46 - Mats Gustafsson

Hej igen!

En förtydling krävs nog eftersom jag visade lite fel i resultattabellen :)

Så här skall det de ut:

Nr

1 1 2 3 4
1 1 2 4
2 1 2 3 4
3 1 2 3 4
4 1 2 4
5 1 2 4
5 1 2 4
5 1 2 4
5 1 2 4
6 1 2 3 4
7 1 2 4


\Mats


Svara

Sv: Sortering via macro i Excel

Postades av 2004-05-27 13:06:15 - Niklas Jansson

Jag hajar ingenting, det flyter ju bara ihop... =)

skriv allt inom < code > -taggen, så ser man vad du menar.


Svara

Sv: Sortering via macro i Excel

Postades av 2004-05-27 13:54:36 - Philip Hatt

Om du vill veta hur man sorterar så spela in ett Macro i Excel: Tools --> Macro --> Record new macro.

Utför sedan sorteringen och kika sedan i VB koden vad som egentligen har hänt. Copy/Paste/Modify lite så har du dig ett fungerande script.

mvh,

Philip


Svara

Sv: Sortering via macro i Excel

Postades av 2004-05-27 13:54:47 - Philip Hatt

Om du vill veta hur man sorterar så spela in ett Macro i Excel: Tools --> Macro --> Record new macro.

Utför sedan sorteringen och kika sedan i VB koden vad som egentligen har hänt. Copy/Paste/Modify lite så har du dig ett fungerande script.

mvh,

Philip


Svara

Sv: Sortering via macro i Excel

Postades av 2004-05-27 15:18:05 - Mats Gustafsson

Hejsan!

Jag förstår att det är i det närmaste oläsligt :)
Det är inte en sortering jag är ute efter, utan närmare bestämt en bearbetning av matrisen.


Den första matrisen innehåller ett antal rader.

Ex på rad 1 är :

nr
1 | 1 | | 2 | | | 3 | 4 | 4 |

Denna rad kan splittas upp i två olika varianter

Ex:

nr
1 | 1 | | 2 | | | 3 | 4 | |
1 | 1 | | 2 | | | 3 | | 4 |

Detta p.g.a det finns två stycken fyror i matrisen, vilket innebär
att raden har två varianter som den kan presenteras som.

Någon som hänger med ?

Jag vill alltså med ett macro kunna splitta upp raderna till alla dess varianter.
Den första siffran i matrisen visar enbart radnummer, och skall ej bearbetas tillsamkans med övriga siffror.

Jag har ett excelblad som beskriver allt mycket bättre.

Mvh
\Mats


Svara

Sv: Sortering via macro i Excel

Postades av 2004-05-27 15:18:23 - Mats Gustafsson

Borttaget, kopia av ovanstående


Svara

Sv: Sortering via macro i Excel

Postades av 2004-05-27 15:20:51 - Mats Gustafsson

Hejsan!

Jag förstår att det är i det närmaste oläsligt :)
Det är inte en sortering jag är ute efter, utan närmare bestämt en bearbetning av matrisen.


Den första matrisen innehåller ett antal rader.

Ex på rad 1 är :

nr
1 , 1 , , 2 , , , 3 , 4 , 4 ,

Denna rad kan splittas upp i två olika varianter

Ex:

nr
1 , 1 , , 2 , , , 3 , 4 , ,
1 , 1 , , 2 , , , 3 , , 4 ,

Detta p.g.a det finns två stycken fyror i matrisen, vilket innebär
att raden har två varianter som den kan presenteras som.

Någon som hänger med ?

Jag vill alltså med ett macro kunna splitta upp raderna till alla dess varianter.
Den första siffran i matrisen visar enbart radnummer, och skall ej bearbetas tillsamkans med övriga siffror.

Jag har ett excelblad som beskriver allt mycket bättre.
(I detta exempel så har jag avdelat cellerna med kommatecken)

Mvh
\Mats


Svara

Sv: Sortering via macro i Excel

Postades av 2004-05-27 15:21:02 - Mats Gustafsson

Borttaget, kopia av ovanstående


Svara

Sv: Sortering via macro i Excel

Postades av 2004-05-27 15:27:46 - Mats Gustafsson

Jag förstår att det kan verka oläsligt :)
Det är eg. inte en sortering jag är ute efter, utan en bearbetning av matrisen.

Den första matrisen innehåller rader med siffror.
Om det finns mer än en siffra av samma sort, så kan raden visas i flera varianter.
OBS! Den första siffran i raden är enbart radnummer, skall ej bearbetas/tolkas i matrisen.

Ex. Rad 1 ser ut så här :

nr
1 | 1 | | 2 | | | 3 | 4 | 4 |

Eftersom raden innehåller två stycken fyror, så kan raden presenteras på två sätt

Ex :

nr
1 | 1 | | 2 | | | 3 | 4 | |
1 | 1 | | 2 | | | 3 | | 4 |

Någon som hänger med ? :)

Jag vill alltså dela upp matrisens rader i alla dess varianter, och på en ny matris med dessa.
Jag har ett excelblad som visar/förklarar detta bättre...

Mvh
\Mats


Svara

Sv: Sortering via macro i Excel

Postades av 2004-05-27 15:29:04 - Mats Gustafsson


Oooopss! Något måste blivit fel....
Jag fick felmeddelande när jag skickade, och var tvungen att skicka igen...

Sorry !!


Svara

Sv: Sortering via macro i Excel

Postades av 2004-05-27 16:33:04 - Niklas Jansson

Hmm... ovanligt problem...

Kommer de alltid stå i ordning?
Kan det finnas fler än två av ett tal? I så fall; hur ska det hanteras?
Låt säga att det står:
|1|1|1|2|

Ska det delas upp så här
|1| | |2|
| |1| |2|
| | |1|2|
eller ska kombinationer som
|1| |1|2|
finnas med?

Är en kolumn alltid reserverad för ett visst tal, eller kan det stå
|1|2| |3|
|1|1|2|3|
dvs med 2 i B1, men 1 i B2


Svara

Sv: Sortering via macro i Excel

Postades av 2004-05-27 16:47:59 - Mats Gustafsson

Du är inne på rätt linje..

Precis som du säger,
står det så här:
|1|1|1|2|

Ska det delas upp så här:
|1| | |2|
| |1| |2|
| | |1|2|


Kolumnerna är reserverade för ett visst tal.

D.v.s
Står det så här:
|1|1|1|2|2|3|

Ska det delas upp så här, eftersom det blir fler varianter:
|1| | |2| |3|
| |1| |2| |3|
| | |1|2| |3|
|1| | | |2|3|
| |1| | |2|3|
| | |1| |2|3|


Och står det så här:
|1| |1|2|2|3|

Ska det delas upp så här:
|1| | |2| |3|
| | |1|2| |3|
|1| | | |2|3|
| | |1| |2|3|

Hoppas att du förstår...


Svara

Sv: Sortering via macro i Excel

Postades av 2004-05-27 18:01:09 - Niklas Jansson

Okej, då borde det inte vara så svårt.

Jag är inte helt säker på om en rekursiv eller iterativ variant blir bäst.

Det beror nog på om du har en fast max-längd eller inte.

Har en idé men jag är lite snurrig just nu av någon anledning, men jag återkommer om en stund.

Principen blir något i stil med:
Gå igenom alla block.
Om det finns >1 i ett block: Gör en kopia av raden per antalet samma, men se till att det är rätt uppdelat.
Gör om samma sak för nästa block.


Svara

Sv: Sortering via macro i Excel

Postades av 2004-05-27 21:07:00 - Niklas Jansson

Ja, det är nog inte så svårt. Rekursivt blir nog lättast.
Vad ska göras?
En rad ska om nödvändigt splittas upp i flera rader.
Ok. Du behöver veta vilken rad det är, eller vilken range det är som är intressant.
För att göra det lite snabbare och lite lättare skickar vi bara in den delen av raden som vi inte kollat i:

Public Sub SplitRow (ActRange As Range)


Vad är det enklaste fallet?
Att rangen är tom eller inte innehåller något:

If ActRange Is Nothing Then Exit Sub
If Intersect(ActRange.Parent.UsedRange, ActRange) Is Nothing Then Exit Sub

Detta kan du modifiera om du har en maxlängd, men bara du förstår principen; vi ser till att ta oss mot ett enklare fall.

Vad gör vi nu?
Vi börjar från början av området och letar oss åt höger efter fler likadana. Om vi hittar en likadan delar vi upp området, och tillämpar SplitRow på båda delarna. Nu beror det lite på hur du har lagt upp det; det känns onödigt att börja skicka ut kod som du inte kan använda. Så: har det en maxlängd eller kan det fyllas på hur långt som helst till höger?
Och kan det komma annan text till höger?


Svara

Sv: Sortering via macro i Excel

Postades av 2004-05-28 07:50:27 - Mats Gustafsson


Du verkar ha helt klart för dig vad som skall göras :)

Raden har ingen specifik maxlängd, utan kan vara från 2 celler upp till max ca 20 celler.
Efter de cellerna i raden som skall 'delas upp' , så kommer det ytterligare två celler med information, men den informationen skall inte vara med i den nya matrisen.

Likadant är det med antal rader, det kan vara från 1 upp till ca 20 rader som skall 'delas upp' och skickas till den nya matrisen.

Varje rad börjar med ett ID-nummer (radnummer) , sedan följer den nummerföljd som skall delas upp.

Mvh
\Mats


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 808
27 960
271 761
532
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies