Tänään on 22.05.2018, 02:25.

Kuntopuntari Open Officen Calckkiin?

Yleiseen turisemiseen muustakin kuin pelaamisesta.
Vastaa Viestiin
Kero
Jäsen
Viestit: 316
Liittynyt: 24.01.2004, 19:38

Tuotto: +0.00 yks.

Palautus%: -

Panosten ka: -

Vetoja: 0

Pisteitä: 0

Kuntopuntari Open Officen Calckkiin?

Viesti Kirjoittaja Kero »

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.

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 :P

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
Sanokaahan viisaammat miten ton ylläolevan function(tai vastaavan)
saisi toimimaan Calcissa? Tarkoitus olisi pikku hiljaa siirtyä Microsoftin
tuotteista Linuxsin ja OpenOfficen käyttäjäksi :P.

Pisteitä

Pisteitä yhteensä: 0. Antamasi peukut: 0.

Minikommentit


Berrie
Jäsen
Viestit: 1491
Liittynyt: 14.01.2003, 10:40
Pisteitä: 33

Viesti Kirjoittaja Berrie »

Syystä tai toisesta OpenOfficen Calc ja Starbasic ei tykkää Rangesta parametrina (ainakaan mun tietojen perusteella), joten joudutaan kikkailemaan. Eli parametrina pitää heittää koko alue josta tiedot haetaan, siis joukkueet ja tulokset, ja ilmeisesti pelkästään sarake valinnat eivät riitä vaan pitää antaa ihan rajatkin eli tyyliin A1:D1000.

Eli nyt on rajoitukset tiedossa ja päästään itse asiaan.

Koodi: Valitse kaikki

Function LaskeSummaSB(HakuArvo, Alue, n As Integer, HakuOffset as Integer, TulosOffset As Integer) as Integer
Dim Summa 
Dim i, x, y As Integer 

Summa = 0 
i = 0 
For x = LBound(Alue) To UBound(Alue)
	If Alue(x,HakuOffset) = HakuArvo Then
		y = y + 1
	End if
Next x

For x = LBound(Alue) To UBound(Alue)
	If Alue(x,HakuOffset) = HakuArvo Then
		i = i + 1
		If i > y - n Then 
			Summa = Summa + Alue(x,TulosOffset)
		End if
	End If 
Next x

LaskeSummaSB = Summa 
End Function
Eli kuten huomaat, parametrejä on tullut yksi lisää HakuOffset eli nyt pitää määrittää monennesta solusta haetaan.

Eli soluun tuommoista:
=LaskeSummaSB(G5;A2:D1000;2;1;3)

Haetaan solussa G5 olevaa joukkuetta alueen ensimmäisestä sarakkeesta (tuo 1), 2 Viimeistä peliä ja tulokset ovat 3 saraketta oikealle eli sarakkeessa C.

Ja koodissa joudutaan ylimääräisen kerran luuppaamaan koko roska läpi että tiedetään monta Suomen peliä löytyy, Excelissä pystyi käyttämään tuota WorksheetFunctionia kun tiedettiin alue mistä haetaan.

Tuosta kannattaa lähteä liikkeelle:
http://documentation.openoffice.org/HOW ... icXref.pdf
Ja tuolta löytyy aika paljon tietoa ja kysymyksiä:
http://www.oooforum.org/

Pisteitä

Pisteitä yhteensä: 0. Antamasi peukut: 0.

Minikommentit


Kero
Jäsen
Viestit: 316
Liittynyt: 24.01.2004, 19:38

Tuotto: +0.00 yks.

Palautus%: -

Panosten ka: -

Vetoja: 0

Pisteitä: 0

Viesti Kirjoittaja Kero »

Kiitos Berrie, sain kaavat toimimaan :D.

Pisteitä

Pisteitä yhteensä: 0. Antamasi peukut: 0.

Minikommentit


Vastaa Viestiin

Palaa sivulle “Yleinen turina”