minkälaisella kaavalla taulukosta voisi hakea siinä useimmiten esiintyvät 2 lukuparia ja sitten seuraavaksi useimmiten esiintyvä jne? luvut on riveillä
lukuparien haku
7
711
Vastaukset
- varmaan hoituisi
mutta lisätietoa tarvitaan. Missä etsittävät tiedot ovat ja mitä ne sisältää sekä minne esiintymiskerrat halutaan?
- rthklrt
tiedot on laskentataulukossa ja jokainen luku on omassa solussa, luvut on kokonaislukuja 1:stä alkaen. tieto voisi tulostua omaan taulukkoon taikka erilliseen ikkunaan kumpiko on helpompi toteuttaa. lukupareista ei välttämättä tarvitse löytää kuin esim. 5-10 useimmiten esiintyvää paria
- rpo
rthklrt kirjoitti:
tiedot on laskentataulukossa ja jokainen luku on omassa solussa, luvut on kokonaislukuja 1:stä alkaen. tieto voisi tulostua omaan taulukkoon taikka erilliseen ikkunaan kumpiko on helpompi toteuttaa. lukupareista ei välttämättä tarvitse löytää kuin esim. 5-10 useimmiten esiintyvää paria
Tässä esimerkissä toimitaan samassa taulussa (Taul1). Haettavat tiedot on A-sarakkeessa ja lukujen esiintymiskerrat tulevat C-D sarakkeisiin järjestettynä esiintymiskertojen mukaan.
Kopioi koodi johonkin makromoduuliin esim. Module1. Huomaa, että taulun sarakkeiden C-D kaikki tiedot poistetaan ensiksi.
Sub LaskeEsiintymisKerrat()
Application.ScreenUpdating = False
Sheets("Taul1").Activate
Columns("C:D").ClearContents
Set rng = Range(Cells(1, 1), Cells(1, 1).End(xlDown))
rng.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("C1"), Unique:=True
Lr = Range("C2").End(xlDown).Row
Range("C1:C" & Lr).Sort Key1:=Range("C2"), Order1:=xlDescending, Header:=xlGuess
For Each c In Range("C2:C" & Lr)
Range("A1").AutoFilter Field:=1, Criteria1:=c.Value
Kpl = Application.Subtotal(3, Range("A2:A65536"))
Range("D" & c.Row) = Kpl
Next
Range("D1") = "Kerrat"
ActiveSheet.AutoFilterMode = False
Range("C1:D" & Lr).Sort Key1:=Range("D2"), Order1:=xlDescending, Key2:=Range("C2") _
, Order2:=xlDescending, Header:=xlGuess
End Sub - ervhevh
rpo kirjoitti:
Tässä esimerkissä toimitaan samassa taulussa (Taul1). Haettavat tiedot on A-sarakkeessa ja lukujen esiintymiskerrat tulevat C-D sarakkeisiin järjestettynä esiintymiskertojen mukaan.
Kopioi koodi johonkin makromoduuliin esim. Module1. Huomaa, että taulun sarakkeiden C-D kaikki tiedot poistetaan ensiksi.
Sub LaskeEsiintymisKerrat()
Application.ScreenUpdating = False
Sheets("Taul1").Activate
Columns("C:D").ClearContents
Set rng = Range(Cells(1, 1), Cells(1, 1).End(xlDown))
rng.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("C1"), Unique:=True
Lr = Range("C2").End(xlDown).Row
Range("C1:C" & Lr).Sort Key1:=Range("C2"), Order1:=xlDescending, Header:=xlGuess
For Each c In Range("C2:C" & Lr)
Range("A1").AutoFilter Field:=1, Criteria1:=c.Value
Kpl = Application.Subtotal(3, Range("A2:A65536"))
Range("D" & c.Row) = Kpl
Next
Range("D1") = "Kerrat"
ActiveSheet.AutoFilterMode = False
Range("C1:D" & Lr).Sort Key1:=Range("D2"), Order1:=xlDescending, Key2:=Range("C2") _
, Order2:=xlDescending, Header:=xlGuess
End Subtuota joo, tuo edellinen koodinpätkä ei ihan vastannut sitä jota hain. jos koitan selvittää lisää mitä ajan takaa. taulukon riveillä on esim. lukuja seuraavasti:
2 15 20 46 55 74 78 80 81 93 150 200
1 16 18 44 66 77 82 90 93 104 167 199
2 4 12 20 55 44 69 75 80 81 99 167
1 2 13 20 54 61 69 77 84 110 143 156
eli tuosta noin puolihuolimattomasti laskien useimmiten esiintyvät parit 2 ja 20 esiintyy 3 kertaa, 20 ja 80 2 kertaa. eli haussa olisi kaksi lukua jotka useimmiten esiintyvät yhdessä kun tarkastellaan taulukkoa jossa nuo luvut ovat riveillä - ihmeessä
ervhevh kirjoitti:
tuota joo, tuo edellinen koodinpätkä ei ihan vastannut sitä jota hain. jos koitan selvittää lisää mitä ajan takaa. taulukon riveillä on esim. lukuja seuraavasti:
2 15 20 46 55 74 78 80 81 93 150 200
1 16 18 44 66 77 82 90 93 104 167 199
2 4 12 20 55 44 69 75 80 81 99 167
1 2 13 20 54 61 69 77 84 110 143 156
eli tuosta noin puolihuolimattomasti laskien useimmiten esiintyvät parit 2 ja 20 esiintyy 3 kertaa, 20 ja 80 2 kertaa. eli haussa olisi kaksi lukua jotka useimmiten esiintyvät yhdessä kun tarkastellaan taulukkoa jossa nuo luvut ovat riveilläjokainen tieto pitää lypsää ? Mistä ihmeestä me voimme tietää mitä sinä oikein haluat ?
Miten esim. 2 & 20 liittyvät yhteen tai miten 20 & 80 ????
Sinä et kerro mitään ja odotat silti vastauksia... ervhevh kirjoitti:
tuota joo, tuo edellinen koodinpätkä ei ihan vastannut sitä jota hain. jos koitan selvittää lisää mitä ajan takaa. taulukon riveillä on esim. lukuja seuraavasti:
2 15 20 46 55 74 78 80 81 93 150 200
1 16 18 44 66 77 82 90 93 104 167 199
2 4 12 20 55 44 69 75 80 81 99 167
1 2 13 20 54 61 69 77 84 110 143 156
eli tuosta noin puolihuolimattomasti laskien useimmiten esiintyvät parit 2 ja 20 esiintyy 3 kertaa, 20 ja 80 2 kertaa. eli haussa olisi kaksi lukua jotka useimmiten esiintyvät yhdessä kun tarkastellaan taulukkoa jossa nuo luvut ovat riveilläcollectionilla menee aika kivasti...
muokkaa taulukot ja muut itsellesi sopivaksi
HAUSKAA JOULUA JA HYVÄÄ UUTTA VUOTTA PALSTALAISILLE!!!
Keep Excelling @Kunde
Sub Haeparit()
Dim Alue As Variant
Dim Rivit As Long
Dim Sarakkeet As Long
Dim Parikokoelma As New Collection
Dim Jäsen As Long
Dim Kuvaus As String
Dim Määrät(10000, 4) As String
Dim i As Long
Dim j As Long
Dim k As Long
Dim vika As Long
On Error Resume Next
Sheets("Taul1").Select ' muuta taulukon nimi
vika = Range("A65536").End(xlUp).Row
Alue = Range("A1:L" & vika) ' muuta alue
Rivit = UBound(Alue, 1)
Sarakkeet = UBound(Alue, 2)
For i = 1 To Rivit
For j = 1 To Sarakkeet - 1
For k = j 1 To Sarakkeet
If Alue(i, j) < Alue(i, k) Then
Kuvaus = Alue(i, j) & "." & Alue(i, k)
Else
Kuvaus = Alue(i, k) & "." & Alue(i, j)
End If
Parikokoelma.Add Parikokoelma.Count 1, Kuvaus
Jäsen = Parikokoelma(Kuvaus)
If Määrät(Jäsen, 0) = "" Then
Määrät(Jäsen, 0) = Kuvaus
Määrät(Jäsen, 1) = Alue(i, j)
Määrät(Jäsen, 2) = Alue(i, k)
End If
If Määrät(Jäsen, 3) = "" Then
Määrät(Jäsen, 3) = "1"
Else
Määrät(Jäsen, 3) = CStr(CInt(Määrät(Jäsen, 3)) 1)
End If
Next k
Next j
Next i
Sheets("Taul2").Select 'muuta taulukon nimi
Cells.Clear
Cells(1, 1).Resize(Parikokoelma.Count, 4) = Määrät
Range("A1") = "Numero1.Numero2"
Range("B1") = "Numero1"
Range("C1") = "Numero2"
Range("D1") = "Esiintymät"
Range("A1:D1").Font.Bold = True
Columns("A:D").Sort Key1:=Range("D2"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Columns("A:D").EntireColumn.AutoFit
Columns("A:A").Delete 'poistaa Numero1.Numero2 sarakkeen
End Sub- erferf
kunde kirjoitti:
collectionilla menee aika kivasti...
muokkaa taulukot ja muut itsellesi sopivaksi
HAUSKAA JOULUA JA HYVÄÄ UUTTA VUOTTA PALSTALAISILLE!!!
Keep Excelling @Kunde
Sub Haeparit()
Dim Alue As Variant
Dim Rivit As Long
Dim Sarakkeet As Long
Dim Parikokoelma As New Collection
Dim Jäsen As Long
Dim Kuvaus As String
Dim Määrät(10000, 4) As String
Dim i As Long
Dim j As Long
Dim k As Long
Dim vika As Long
On Error Resume Next
Sheets("Taul1").Select ' muuta taulukon nimi
vika = Range("A65536").End(xlUp).Row
Alue = Range("A1:L" & vika) ' muuta alue
Rivit = UBound(Alue, 1)
Sarakkeet = UBound(Alue, 2)
For i = 1 To Rivit
For j = 1 To Sarakkeet - 1
For k = j 1 To Sarakkeet
If Alue(i, j) < Alue(i, k) Then
Kuvaus = Alue(i, j) & "." & Alue(i, k)
Else
Kuvaus = Alue(i, k) & "." & Alue(i, j)
End If
Parikokoelma.Add Parikokoelma.Count 1, Kuvaus
Jäsen = Parikokoelma(Kuvaus)
If Määrät(Jäsen, 0) = "" Then
Määrät(Jäsen, 0) = Kuvaus
Määrät(Jäsen, 1) = Alue(i, j)
Määrät(Jäsen, 2) = Alue(i, k)
End If
If Määrät(Jäsen, 3) = "" Then
Määrät(Jäsen, 3) = "1"
Else
Määrät(Jäsen, 3) = CStr(CInt(Määrät(Jäsen, 3)) 1)
End If
Next k
Next j
Next i
Sheets("Taul2").Select 'muuta taulukon nimi
Cells.Clear
Cells(1, 1).Resize(Parikokoelma.Count, 4) = Määrät
Range("A1") = "Numero1.Numero2"
Range("B1") = "Numero1"
Range("C1") = "Numero2"
Range("D1") = "Esiintymät"
Range("A1:D1").Font.Bold = True
Columns("A:D").Sort Key1:=Range("D2"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Columns("A:D").EntireColumn.AutoFit
Columns("A:A").Delete 'poistaa Numero1.Numero2 sarakkeen
End Subne löytyi mukavasti, kiitoksia
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Eutanasia - miksi eläimelle sallitaan armokuolema, mutta ihmiselle ei?
Olen pitkään ihmetellyt yhtä asiaa Suomessa. Kun koira kärsii parantumattomasta sairaudesta ja kovista kivuista, eläinlä2811508Veli Sofia teki urosmehiläisen työn
Paljastaessaan kuinka TPS:ssä ei joukkuehenki toimi sooloilijoiden vuoksi, jonka takia koko seura ei pärjää kilpailussa604099Unisex-vessat
Ahdistaa. Miksi kaikki pitää tasapäistää tasa-arvon nimissä? Tasa-arvo on sitä, että kunnioitetaan sukupuolien erilaisu1213302Sosiaalidemokratia romahtanut kautta maailman
nuoret eivät enää kannata järjetöntä aatetta, joten demarien täytyy hakea kannattajia mamuista. Ruotsin sos.demit jo kie1772602Miksi Seta ja Sofia Virta ei vaadi muslimeita kunnioittamaan priden-arvoja?
Kuten tiedetään niin islam ei hyväksy sitä mitä pride edustaa. Seta-pomo Mikkonen nosti hirveän äläkän kun yksi tepsin1142343Vastuun ottaminen omasta hyvinvoinnista
Olen huomannut tuttavapiirissäni ihmisiä, joilla on mt-diagnooseja. Sen sijaan, että millekään asialle yritettäisiin teh2051884Sofia Virralle täydet 12 pistettä!
Kun ei jäänyt mukaan vähemmistöjen sortamista epäsuorasti tukevaan joukkueeseen. Urheilijoiden pitäisi olla esikuvia.3271208- 67993
Miksi Hotelli Kainuuta dissataan?
Ihmetyttää tämä jatkuva yhden yrityksen arvosteleminen. Ikäänkuin mikään ei olisi hyvin. Kuitenkin yritys työllistää, ta20937- 65828