Sanokaahan viisaammat miten ton ylläolevan function(tai vastaavan)pjl kirjoitti:Tälläisin pistin privana Poyelle, mutta isketään tänneki jos jollain muullakin on käyttöä. Eli tälläisen funktion kun pudottaa halutussa taulukossa Tools => Macro => Visual Basic Editor kohdasta Insert Module valinnalla, niin pitäisi toimia seuraavasti.
Eli jos tiedot ovat kuten yllä (toki rivejä paljon enempi) niin halutun joukkueen tiedot saa tuolla funktiolla siten (Insert => Function, löytyy UserDefined kohdasta nimellä LaskeSumma) että HakuArvo ikkunaan kerrotaan joukkueen nimi tai solu mistä nimi löytyy. Alue kohtaan kerrotaan mistä joukkueen nimeä pitää hakea. N kysyy kuinka monta viimeistä haluat hakea ja TulosOffset kohtaan montako saraketta oikealle pitää siirtyä, jotta tulee oikeat tulokset. Eli tässä tapauksessa 2.Koodi: Valitse kaikki
Sarake A Sarake B Sarake C Sarake D Suomi Ruotsi 3 0
Eli solussa kaava näyttää tälläiseltä:
=LaskeSumma(G5;A:A;3;2)
Haetaan solussa G5 olevaa joukkuetta koko A-sarakkeesta. 3 Viimeistä peliä ja tulokset ovat 2 saraketta oikealle eli sarakkeessa C.
Käyttö on helpompaa kuin sen selittäminen
Function LaskeSumma(HakuArvo As Range, Alue As Range, n As Integer, TulosOffset As Integer)
Dim Summa
Dim I As Integer
Summa = 0
I = 0
For Each solu In Alue
If solu.Value = HakuArvo.Value Then
I = I + 1
If I > Application.WorksheetFunction.CountIf(Alue, HakuArvo.Value) - n Then
Summa = Summa + solu.Offset(0, TulosOffset).Value
End If
End If
Next solu
LaskeSumma = Summa
End Function
saisi toimimaan Calcissa? Tarkoitus olisi pikku hiljaa siirtyä Microsoftin
tuotteista Linuxsin ja OpenOfficen käyttäjäksi .
Minikommentit