Gå til innhold

Egendefinert sortering i excel


Anbefalte innlegg

Jeg Skal sortere adresser etter postens tabell DVS

fra 0000 til 2299

fra 2700 til 2799

fra 2300 til 2699

fra 2800 til 2999

fra 3000 til 3099

fra 3300 til 3699

fra 3100 til 3299

fra 3700 til 3999

fra 4600 til 4999

OSV helt il 9999

Hvordan kan jeg sortere dette i excel. Funksjonen egendefinert liste akseptere ikke så mange kriterier.

Lenke til kommentar
Videoannonse
Annonse

Du kan ha et ekstra felt som viser sorteringsrekkefølgen til postnummeret. Det tallet kan du enten få fra en eller annen formel/makro som returnerer et tall som sier noe om hvor i rekken et postnummer skal være. F.eks. en makro som returnrere 1 hvis postnummeret er under 2700, 2 hvis det er fom 2700 tom 2799, 3 hvis det er fom 2300 og tom 2699 osv.

 

Da får du en liste som har "grupperekkefølge" og postnummer:

2220, 1

2700, 2

2750, 2

0570, 1

 

osv.

Da kan du sortere først på "grupperekkefølgen" og så på postnummeret.

 

Alternativt kan du lage en liste med alle postnummerene i den rekkefølgen du vil de skal komme sammen med en verdi for rekkefølgen. Så kan du bruke VLOOKUP funksjonen for å slå opp rekkefølgen til et gitt postnummer, postnummer 2700 er da nr 2300 i rekkefølgen. Da kan du sortere på det.

 

Nysgjerring: hvorfor trenger du de i den spesielle rekkefølgen?

Lenke til kommentar

Takk for svar

jeg har jobbet noe med Macro, men tror dette er litt over hode mitt:-)

kan du spesifisere litt hvordan jeg setter opp kriteriene?

 

svar på Nysgjerrig:

Posten har et sorteringsystem som gjør at det skal flere postnr serier i samme postkasse. når jeg printer brev for konvoluttering i maskin ønsker jeg at brevene skal komme i riktig rekkefølge. på denne måten slipper maskin operatør å flytte postkasser flere ganger.

foreksempel skal seriene :

3100 til 3299 og 3700 til 3999 og 4600 til 4999 i samme kasse

hadde jeg printet i fortløpende rekkefølge måtte jeg byttet kasse etter 3299 får så å hente den når vi kommer til 3700. OSV. Når det skal printes 150 000 brev blir dette mye ekstra arbeid.

Lenke til kommentar

Litt quick and dirty, lag deg en ny macro slik at du kommer inn i VB script editoren. Erstatt det du får opp med denne koden:

Function GetSortOrder(postNummer As Integer) As Integer

   If postNummer >= 0 And postNummer <= 2299 Then
		 GetSortOrder = 1
		 Exit Function
	 End If
	 If postNummer >= 2700 And postNummer <= 2799 Then
		 GetSortOrder = 2
		 Exit Function
	 End If
	 If postNummer >= 2300 And postNummer <= 2699 Then
		 GetSortOrder = 3
		 Exit Function
	 End If
	 If postNummer >= 2800 And postNummer <= 2999 Then
		 GetSortOrder = 4
		 Exit Function
	 End If
	 If postNummer >= 3000 And postNummer <= 3099 Then
		 GetSortOrder = 5
		 Exit Function
	 End If
	 If postNummer >= 3300 And postNummer <= 3699 Then
		 GetSortOrder = 6
		 Exit Function
	 End If
	 If postNummer >= 3100 And postNummer <= 3299 Then
		 GetSortOrder = 7
		 Exit Function
	 End If
	 If postNummer >= 3700 And postNummer <= 3999 Then
		 GetSortOrder = 8
		 Exit Function
	 End If
	 ' Sett inn flere her

	 ' Hvis vi kommer hit var det ingenting som passet, det betyr et ugyldig postnummer
	 GetSortOrder = ""
 End Function

Legg til de resterende kriteriene, husk å øke GetSortOrder = n for hver If blokk.

 

Så kan du bruke den i Excel slik: =GetSortOrder(G13)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...