Olisi lista numeroita monen kuukauden ajalta ja pitäisi jollain keinolla tulostaa kaikkein useimmiten esiintyvät numerot.
Miten tämä tehdään? Funktio mode ainakin taitaa näyttää kaikkein esiintyvimmän, mutta entä jos haluaisi esimerkiksi kymmenen esiintyvintä numeroa tulostaa?
EDIT: Niin juu ja tosiaan... Käytössä on siis Microsoft Office 2003:n Excel.
En ole Excel-asiantuntija, joten seuraava koodi voi olla tarpeettoman monimutkainen:
' lukujen lista alkaa kohdasta C4
rivi = 4: sarake = 3
' kopioidaan luvut
kohta = 0
While Cells(rivi + kohta, sarake) <> ""
Cells(rivi + kohta, sarake + 2) = Cells(rivi + kohta, sarake)
kohta = kohta + 1
Wend
' järjestetään luvut
Cells.Range(Cells(rivi, sarake + 2), _
Cells(rivi + kohta - 1, sarake + 2)).SortSpecial _
Key1:=Cells(rivi, sarake + 2), Order1:=xlAscending
' luokitellaan luvut
uusi = 0
Cells(rivi, sarake + 4) = Cells(rivi, sarake + 2)
Cells(rivi, sarake + 5) = 0
For i = 0 To kohta - 1
If Cells(rivi + uusi, sarake + 4) <> Cells(rivi + i, sarake + 2) Then
uusi = uusi + 1
Cells(rivi + uusi, sarake + 4) = Cells(rivi + i, sarake + 2)
Cells(rivi + uusi, sarake + 5) = 1
Else
Cells(rivi + uusi, sarake + 5) = Cells(rivi + uusi, sarake + 5) + 1
End If
Next
' järjestetään luokitukset
Cells.Range(Cells(rivi, sarake + 4), _
Cells(rivi + uusi, sarake + 5)).SortSpecial _
Key1:=Cells(rivi, sarake + 5), Order1:=xlDescending, _
Key2:=Cells(rivi, sarake + 4), Order2:=xlAscendingPivotTablella onnistuu myös ilman koodausta ja COUNTIF-funktiolla vähän kikkailemalla.
Aihe on jo aika vanha, joten et voi enää vastata siihen.