lukuparien haku

iargjm

minkälaisella kaavalla taulukosta voisi hakea siinä useimmiten esiintyvät 2 lukuparia ja sitten seuraavaksi useimmiten esiintyvä jne? luvut on riveillä

7

691

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • 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 Sub

        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ä


      • 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 Sub

        ne löytyi mukavasti, kiitoksia


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Kaipaatko sinä

      Yhtään meidän katseita
      Ikävä
      170
      2071
    2. Törkeä eläinsuojelurikos Sonkajärvellä

      Pohjois-Savossa Sonkajärvellä noin 40 kissaa ja reilut 10 koiraa on jouduttu lopettamaan kaltoinkohtelun vuoksi, kertoo
      Sonkajärvi
      37
      1455
    3. Jotkut ihmiset pelkäävät syöpää sairastavaa

      On hauskaa, kun kertoo jollekin, että "minulla on syöpä". Jotkut käyttäytyvät kuin se olisi tarttuva tauti. Eivät uskall
      Sinkut
      132
      1154
    4. Se ei ihan oikeasti vaatisi kuin yhden

      Tekstiviestin... Jos rakastat minua vielä toivoisin että laittaisit minulle viestiä. Rakastatko? Oletko oikeasti niin pe
      Ikävä
      56
      902
    5. olisit voinut mies edes

      Pyytää anteeksi 🙏🫶
      Ikävä
      55
      846
    6. Lavrov suivaantui Stubbille perustellusti.

      Lavrov perusteli suivaantumistaan tosiasioilla Suomen tarinasta sotiemme jälkeen, tutkija Tynkkynen ja pankkihenkilö Sol
      Maailman menoa
      250
      814
    7. Kääminsä polttanut taksi suomussalmella

      Vieläkö sillä hermonsa menettäneellä hulluja ylinopeuksia ajavalla asiakkaansa haukkuvalla( jos ajat paska kyydin hänen
      Suomussalmi
      20
      782
    8. Jorma Uotinen avaa sanaisen arkkunsa TTK-miesparista ja koko uudistuksesta: "Sehän on..."

      Tanssii Tähtien Kanssa -parketilla nähdään ensimmäistä kertaa Suomessa tanssiparina miespari kauden alusta asti. Mikko S
      Tanssii tähtien kanssa
      18
      735
    9. Aina ku nään sun kuvan

      Tekis mieli kirjoittaa viesti: Moi kulta, on ikävä❣️🤗 ihan noin vain, lyhyt ja ytimekäs 😁🤭
      Ikävä
      58
      713
    10. Sukupuolia on vain kaksi- kohukassista tuli kova tuomio perheenisälle oikeudessa.

      https://www.iltalehti.fi/kotimaa/a/4d4db0d9-4dda-4ba6-a699-25d725683ad6 Miten näin normaalista kassissa olevasta tekstis
      Maailman menoa
      198
      634
    Aihe