Onko accessissa mahdollista valita taulukon tiedoista jollain kriteerillä osia sillälailla, että muutkin tiedot säilyvät mutta väliaikaisesti tehtäisii vain näille kyseisille tiedoille laskutoimituksia. Esimerkiksi sillä lailla, että jos on tuhat riviä, niin access valitsisi näistä 990 siten, että 5 pienintä ja 5 suurinta hylättäisiin? hieman kuten mäkihyppyjen arvostelussakin :)
access ja fraktiilit?
harakka
6420
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 6
Vanhimmat
voi tehdä miltei mitä vaan.
Pieniä perusesimerkkejä:
Ostot-taulukossa on Määrä-niminen tietue, jossa on luvut 1, 2, 3 ... 10.
Tee hakukysely Ostot-taulukosta, johon laitat ehdoksi / ehdoiksi seuraavia:
>8 antaa luvut 9 ja 10.
2 And
tulipa mieleeni, että mahdollisesti tämän ratkaisun voisi vaihtoehtoisesti korvata mediaanin käyttö.. siis saako accessissa laskettua mediaania mitenkään?? ainakaan minulla ei löytynyt sisäisistä fuuntioista mitään vastaavaa.
keskiarvoa? Jos näin on, se saadaan määritetyksi esim. näin:
=Keskiarvo([Juu])
Antaa Juu-tietueiden keskiarvon.
en oikeastaan.. vaan juuri mediaania eli keskimmäistä arvoa. Minulla kun on sellainen tapaus, että saattaa olla tuhat lukua joista 999 on pieniä mutta yksi niin suuri, että keskiarvo muuttuu erittäin olennaisesti, niin voisin sen eliminoida juuri tällä mediaanilla, koska sehän ottaa keskimmäisen luvun järjestyksen perusteella.
Mediaanihan lasketaan siten, että jos recordset tietueiden määrä on pariton niin otetaan keskimmäinen arvo ja ja jos parillinen niin lasketaan keskimmäisten arvojen keskiarvo elikä kokeileppa tätä
Public Function Mediaani(Nimi As String, Kenttä As String) As Double
Dim Temppi As Double
Dim Alkuperäinen As Recordset
Set Alkuperäinen = CurrentDb.OpenRecordset(Nimi, dbOpenDynaset)
Alkuperäinen.Sort = Kenttä
Dim Lajiteltu As Recordset
Set Lajiteltu = Alkuperäinen.OpenRecordset()
If Lajiteltu.RecordCount Mod 2 = 0 Then
Lajiteltu.AbsolutePosition = (Lajiteltu.RecordCount / 2) - 1
Temppi = Lajiteltu.Fields(Kenttä).Value
Lajiteltu.MoveNext
Temppi = Temppi Lajiteltu.Fields(Kenttä).Value
Temppi = Temppi / 2
Else
Lajiteltu.AbsolutePosition = (Lajiteltu.RecordCount - 1) / 2
Temppi = Lajiteltu.Fields(Kenttä).Value
End If
Temppi = Temppi
End Function
Private Sub Koe()
Dim X As Double
X = Mediaani("Henkilöt", "Ikä")
MsgBox X
End Sub
Sori väärä postaus tässä oikea
Sub Mediaani()
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Dim SQL As String
Dim Temppi As Double
SQL = "SELECT Ikä FROM Henkilöt"
rs.CursorLocation = adUseClient
rs.Open SQL, CurrentProject.Connection
rs.Sort = "Ikä"
rs.MoveFirst
If rs.RecordCount Mod 2 = 0 Then
rs.AbsolutePosition = (rs.RecordCount / 2)
Temppi = rs!Ikä
rs.MoveNext
Temppi = Temppi rs!Ikä
Temppi = Temppi / 2
Else
rs.AbsolutePosition = Int((rs.RecordCount / 2 1))
Temppi = rs!Ikä
End If
rs.Close
Set rs = Nothing
MsgBox Temppi
End Sub