Yritän lajitella taulukon soluja numerojärjestykseen. Soluissa olevat tiedot ovat pääasiassa lukuja, mutta joissakin on myös kirjaimia lopussa. Esim. 1000, 2045, 2346, 1548aa, 1862 bbb jne. Ongelmana on, että Excel aakkostaa ensin pelkkiä numeroita sisältävät ja sitten ne joissa on tekstiä perässä (suoraan numerossa kiinni tai välilyönnillä erotettuna). Minulla oli solujen tyyppinä "Yleinen", muutin sen muotoon "Teksti", mutta se ei auttanut. Miten saisin solut järjestykseen. Käytössä on Excel 2013.
Solujen lajittelu
2
1811
Vastaukset
- Anonyymi
En keksinyt yhtäkkiä muuta kuin käyttää apusaraketta. Lajittelu menee oikein, jos lisäät kaikkien perään vaikka merkin "-". Välilyönti, numero tai desimaalierotin ei auta.
moduuliin...
Sub Sorttaa()
Dim Rng As Range
Dim Vika As Integer
Dim Solu As Range
Dim Numero As String
Dim Teksti As String
Dim a As Variant
Application.DisplayAlerts = False
On Error Resume Next
'Type:=8 sallii vain solualueen
Set Rng = Application.InputBox( _
Title:="Lajittelu", _
Prompt:="Valitse lajiteltava alue sarakkeesta", _
Type:=8)
On Error GoTo 0
If Rng Is Nothing Then Exit Sub
Rng.NumberFormat = "@"
Sheets.Add.Name = "Huuhaa"
Rng.Copy Worksheets("Huuhaa").Range("A1")
'pilkotaan solu numero ja tekstiosaan
For Each Solu In Worksheets("Huuhaa").Range("A1").Resize(Rng.Count)
' numero-osa(toimii vain, jos numero-osa on alussa
Numero = Val(Solu)
Solu.Offset(0, 1) = Numero
' tekstiosa
Teksti = Application.WorksheetFunction.Replace(Solu, 1, Len(Numero), "@")
a = Split(Teksti, "@")
' lisätään esim. a-kirjain, jotta saadaan lajiteltua pelkän luvun sisältävät solut oikein
Solu.Offset(0, 2) = "a" & a(1)
Next
' lajitellaan numero-osan ja sitten kirjainten mukaan
Worksheets("Huuhaa").Columns("A:C").Select
ActiveWorkbook.Worksheets("Huuhaa").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Huuhaa").Sort.SortFields.Add2 Key:=Range("B1:B8") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Huuhaa").Sort.SortFields.Add2 Key:=Range("C1:C8") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Huuhaa").Sort
.SetRange Range("A1:C8")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'muuta taulukon nimi sopivaksi
Worksheets("Huuhaa").Range("A1:A" & Rng.Count).Copy Worksheets("Taul1").Range(Rng.Address)
Worksheets("Huuhaa").Delete
Application.DisplayAlerts = True
End Sub
Keep EXCELing
@Kunde
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Vilma Nissinen pyytää anteeksi rasistisia lausuntojaan
Nöyrtyi kuten persut yleensäkin. On kyllä noloa tuollainen vätystely, kun ei ole miestä seisoa omien lausuntojensa takan2283743S-kauppa nosti hintoja, K-kauppa laski
Elintarvikkeiden arvonlisävero laski vuodenvaihteessa 13,5 prosenttiin. S-kauppa siirsi alennuksen suoraan katteisiin pi32677Riikka Purra: "Kokoomus haluaa leikata pienituloisten etuuksista - Se ei meille käy"
Näin vakuutti persujen Purra edellisten eduskunta vaalien alla,. https://www.ku.fi/artikkeli/4910942-kun-uudessa-videos622324Sandels tölkin hinta nousi 1,29 eurosta 1,32 euroon
Mitähän järkeä valtiolla on verottaa tuotakin elintarviketta niin kovasti, että on järkevämpää käydä hakemassa ulkomailt411753Lindtmanin pääministeriys lähenee päivä päivältä
Suomen kansan kissanpäivät alkavat siitä hetkestä, kun presidentti Stubb on tehnyt nimityksen. Ainoastaan ylin tulodesi651633- 1051387
Tuntuuko sinusta mies
että olet jossain, mutta sydämessäsi haluat olla muualla. Suunnittelet kaikkea kivaa ja olet innolla mukana, mutta silti221265Ikävä uutinen uudesta Unelmia Italiassa kaudesta - Iso pettymys tv-katsojille!
Unelmia Italiassa -sarja kertoo Ellen Jokikunnaksen perheen elämästä Suomessa ja Italiassa. Nyt Ellen on kertonut tuleva101216Rakastan sitä
kun uppoat selittämään jotain. Etsit oikeaa tapaa sanoa jotain, jonka olet jo etukäteen miettinyt, sekoat vähän sanoissa511094LIEKSA - LUOVUIN JUORUILUSTA NÄIN SIINÄ KÄVI, KARU TOTUUS ÄÄNESTÄJÄN KOVA KOHTALO
Uusi vuosi ei olisi kukaan voinut ennustaa, maastamuuttoa ennustin, ei kuitenkaan massit riittäneet, jouduin tulemaan K661047