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.
Koodi: Valitse kaikki
Sarake A Sarake B Sarake C Sarake D
Suomi Ruotsi 3 0
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.
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
Minikommentit