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
1818
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
Taas nuoren kuolema
Vasunmäentiellä paha onnettomuus. Nuori nainen menehtyi. Niiin sydäntä riipaisevaa 😭1817423Elikkäs persuissa ovat pahimmat häiriköijät
Koska sieltä tuli kaikkein kovin ulahdus. Persujen peesissä seuraa kokoomus js hajuraon päässä röhkii kepulaiset. Olipa803722"Skandaali muhii SDP:ssä" - "pelon ilmapiiri vallitsee"
Puolueen johto on vähintään vastuussa ilmapiiristä, jossa häirinnän uhrit eivät ole saaneet ääntään kuuluviin. Vyyhdin1223638Tehomaksu rankaisisi normaalista sähkönkäytöstä
Energiaviraston valmistelema tehomaksumalli herättää aiheellista huolta erityisesti tavallisten kotitalouksien näkökulma802919Ahdistelu ongelmaa vain vasemmistossa - ei oikeiston edustajissa
Mutta demarit ovat tunnetusti sivistymättömiä, ja vähemmän fiksuja.472476Tampereen "empatiatalu" - "Harvoin näkee mitään näin kajahtanutta"
sanoo kokoomuslainen. Tampereen kaupunginvaltuuston maanantain kokouksessa käsiteltävä Tampereen uusi hyvinvointisuunni1022432- 1361994
- 541374
Trump asettaa Grönlannin kaappausta vastustaville Euroopan maille 10% tuontitullin
Suomi mukana näissä maissa. Myöhemmin Trump aikoo nostaa tuontitullit 25%:iin kesäkuun alusta, jos Grönlannin kaappausta3771329Miksi suorittamisesta tulee
Miksi suorittamisesta tulee hyvä fiilis? Mitä sillä paikataan? Jollekinhan se voi olla jopa terapeuttista, mutta itse a591322