Erilaisuuksien määrä

sarakkeessa

Hei, Minun pitäisi tietää kuinka monta erilaista solua on A sarakkeessa, joten onko siihen simppeliä kaavaa? A sarakkeen tiedot koostuvat tilausnumeroista. Yritän esimerkin avulla avata tapausta. Tilausnumeroita on a sarakkeessa 100, mutta niitä on 10 erilaista. Joten minun pitäisi saada kaava joka osaisi laskea automaattisesti kuinka monta erilaista tilausnumeroa on, tässä tapauksessa vastaus olisi 10. Kiitos ja kumarrus.

16

1512

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • kirjoita matriisikaavana CTRL SHIFT ENTER =SUM(IF(FREQUENCY(A:A;A:A)>0;1))

      • mutta ei kirjaimilla

        Hei, Kiitoksia vastauksesta. Tilausnumeroiden välissä on kirjaimia, joten kaava ei toimi niille. Onko tähän ratkaisua? Tilausnumeroa on muotoa 020509123AB1


      • vaikka tätä
        mutta ei kirjaimilla kirjoitti:

        Hei, Kiitoksia vastauksesta. Tilausnumeroiden välissä on kirjaimia, joten kaava ei toimi niille. Onko tähän ratkaisua? Tilausnumeroa on muotoa 020509123AB1

        =SUM(1/COUNTIF(A1:A14;A1:A14)) ctrl shift enter


      • vaikka tätä kirjoitti:

        =SUM(1/COUNTIF(A1:A14;A1:A14)) ctrl shift enter

        mutta pitää tietää kuinka monessa solussa on tietoa... sama vika tässäkin matriisikaavassa... eli ei saa olla tyhjiä soluja aluemäärityksessä =SUM(IF(FREQUENCY(MATCH(A1:A1000;A1:A1000;0);MATCH(A1:A1000;A1:A1000;0))>0;1)) mutta tällä toimii... syötä matriisikaavana CTRL SHOFT ENTER =SUM(IF(FREQUENCY(IF(LEN(A1:A1000)>0;MATCH(A1:A1000;A1:A1000;0);""); IF(LEN(A1:A1000)>0;MATCH(A1:A1000;A1:A1000;0);""))>0;1))


      • toimia
        kunde kirjoitti:

        mutta pitää tietää kuinka monessa solussa on tietoa... sama vika tässäkin matriisikaavassa... eli ei saa olla tyhjiä soluja aluemäärityksessä =SUM(IF(FREQUENCY(MATCH(A1:A1000;A1:A1000;0);MATCH(A1:A1000;A1:A1000;0))>0;1)) mutta tällä toimii... syötä matriisikaavana CTRL SHOFT ENTER =SUM(IF(FREQUENCY(IF(LEN(A1:A1000)>0;MATCH(A1:A1000;A1:A1000;0);""); IF(LEN(A1:A1000)>0;MATCH(A1:A1000;A1:A1000;0);""))>0;1))

        näinkin =SUM(IF(LEN(A1:A1000);1/COUNTIF(A1:A1000;A1:A1000))) ctrl shift enter


      • nauhottamalla
        toimia kirjoitti:

        näinkin =SUM(IF(LEN(A1:A1000);1/COUNTIF(A1:A1000;A1:A1000))) ctrl shift enter

        Hei! Olen tehnyt itse tehnyt makron nauhoitusmenetelmällä, jossa makro tuo kaavan soluun (=SUM(IF(LEN(A1:A1000);1/COUNTIF(A1:A1000;A1:A1000))) ). Homma ei toimi kun lopuksi en voi painaa ctrl shift enter. Olisiko mitään vinkkiä kuinka saisin homman toimimaan? Kiitos ja kumarrus


      • nauhottamalla kirjoitti:

        Hei! Olen tehnyt itse tehnyt makron nauhoitusmenetelmällä, jossa makro tuo kaavan soluun (=SUM(IF(LEN(A1:A1000);1/COUNTIF(A1:A1000;A1:A1000))) ). Homma ei toimi kun lopuksi en voi painaa ctrl shift enter. Olisiko mitään vinkkiä kuinka saisin homman toimimaan? Kiitos ja kumarrus

        kopioi alla oleva leikepöydälle. =SUM(IF(LEN(A1:A1000);1/COUNTIF(A1:A1000;A1:A1000))) valitse esim. solu C1 ja liitä KAAVARIVILLE ja lopuksi CTRL SHIFT ENTER ja klikkaa esim solu C4 ja koodia pukkaa suraavasti Sub Macro1() Range("C1").Select Selection.FormulaArray = _ "=SUM(IF(LEN(RC[-2]:R[999]C[-2]),1/COUNTIF(RC[-2]:R[999]C[-2],RC[-2]:R[999]C[-2])))" Range("C4").Select End Sub HUOMAA: KAAVA ON KIRJOITETTAVA VBA PUOLELLA SUHTEELLISENA VIITTAUKSENA ELI RC MUODOSSA VINKKI: tosta makron koodista voit melkein aina siivota noi .Select/Selection. jutut pois eli vastaava siistyttänä Range("C1").FormulaArray = _ "=SUM(IF(LEN(RC[-2]:R[999]C[-2]),1/COUNTIF(RC[-2]:R[999]C[-2],RC[-2]:R[999]C[-2])))"


      • Kiitos...............
        kunde kirjoitti:

        kopioi alla oleva leikepöydälle. =SUM(IF(LEN(A1:A1000);1/COUNTIF(A1:A1000;A1:A1000))) valitse esim. solu C1 ja liitä KAAVARIVILLE ja lopuksi CTRL SHIFT ENTER ja klikkaa esim solu C4 ja koodia pukkaa suraavasti Sub Macro1() Range("C1").Select Selection.FormulaArray = _ "=SUM(IF(LEN(RC[-2]:R[999]C[-2]),1/COUNTIF(RC[-2]:R[999]C[-2],RC[-2]:R[999]C[-2])))" Range("C4").Select End Sub HUOMAA: KAAVA ON KIRJOITETTAVA VBA PUOLELLA SUHTEELLISENA VIITTAUKSENA ELI RC MUODOSSA VINKKI: tosta makron koodista voit melkein aina siivota noi .Select/Selection. jutut pois eli vastaava siistyttänä Range("C1").FormulaArray = _ "=SUM(IF(LEN(RC[-2]:R[999]C[-2]),1/COUNTIF(RC[-2]:R[999]C[-2],RC[-2]:R[999]C[-2])))"

        Hei, Kiitoksia avusta. Sain homman toimimaan. Jos viel saa kysyä. Nyt olen saanut kaavan kopioitumaan muutamalle välilehdelle. Kuinka saisin viimeiselle välilehdelle taulukon, joka kerää kaikista välilehdistä (solusta C1) tuloksen ja listaa ne viimeiselle välilehdelle päällekkäin (sarakkeelle, niin että ensimmäinen tieto tulee D5, toinen tulee E5, kolmas F5 jne), niin että haetun tiedon eteen tulee välilehden nimi? Itseasiassa kopioitavia solujan on kaksi (esim. C1 ja D2). Vika välilehti voisi olla esim tulosvälilehti. Kiitoksia etukäteen!


      • Kiitos............... kirjoitti:

        Hei, Kiitoksia avusta. Sain homman toimimaan. Jos viel saa kysyä. Nyt olen saanut kaavan kopioitumaan muutamalle välilehdelle. Kuinka saisin viimeiselle välilehdelle taulukon, joka kerää kaikista välilehdistä (solusta C1) tuloksen ja listaa ne viimeiselle välilehdelle päällekkäin (sarakkeelle, niin että ensimmäinen tieto tulee D5, toinen tulee E5, kolmas F5 jne), niin että haetun tiedon eteen tulee välilehden nimi? Itseasiassa kopioitavia solujan on kaksi (esim. C1 ja D2). Vika välilehti voisi olla esim tulosvälilehti. Kiitoksia etukäteen!

        "Kuinka saisin viimeiselle välilehdelle taulukon, joka kerää kaikista välilehdistä (solusta C1) tuloksen ja listaa ne viimeiselle välilehdelle päällekkäin (sarakkeelle, niin että ensimmäinen tieto tulee D5, toinen tulee E5, kolmas F5 jne)" jos tieto sarakkeelle niin silloinhan se pitäs olla D5,D6 jne no nyt tein makron D sarakkeelle ja hakee sitten sen C2 tiedon E sarakkeeseen... helppohan tota on muokata moduuliin... Sub lisää() Dim ws As Worksheet On Error Resume Next Worksheets("Tulos").Activate Range("D5:E1000") = "" For Each ws In ActiveWorkbook.Worksheets If Not ws.Name = "Tulos" Then Range("D5").Select Do Until ActiveCell = "" ActiveCell.Offset(1, 0).Select Loop ActiveCell = ws.Name & ": " & ws.Range("C1") ActiveCell.Offset(0, 1) = ws.Name & ": " & ws.Range("D2") End If Next End Sub


      • Oma moka
        kunde kirjoitti:

        "Kuinka saisin viimeiselle välilehdelle taulukon, joka kerää kaikista välilehdistä (solusta C1) tuloksen ja listaa ne viimeiselle välilehdelle päällekkäin (sarakkeelle, niin että ensimmäinen tieto tulee D5, toinen tulee E5, kolmas F5 jne)" jos tieto sarakkeelle niin silloinhan se pitäs olla D5,D6 jne no nyt tein makron D sarakkeelle ja hakee sitten sen C2 tiedon E sarakkeeseen... helppohan tota on muokata moduuliin... Sub lisää() Dim ws As Worksheet On Error Resume Next Worksheets("Tulos").Activate Range("D5:E1000") = "" For Each ws In ActiveWorkbook.Worksheets If Not ws.Name = "Tulos" Then Range("D5").Select Do Until ActiveCell = "" ActiveCell.Offset(1, 0).Select Loop ActiveCell = ws.Name & ": " & ws.Range("C1") ActiveCell.Offset(0, 1) = ws.Name & ": " & ws.Range("D2") End If Next End Sub

        Hei, Joo. sarakkeella päällekkäin. Eli tieto pitäisi tulla D5, D6, D7 jne. Tarkoitus oli, että makro tekisi välilehden jonka nimi olisi tulos. Sitten makro hakisi jokaisen välilehden nimen ja laittaisi sen sarakkeelle D ja riville 5. Sen jälkeen makro hakisi jokaisesta välilehdestä solun C1 tiedon ja toisi sen välilehdelle tulos ja laittaisi sen soluun E5. Sen jälkeen se tekisi saman hakukierroksen, mutta tällä kertaa hakisi jokaisesta välilehdestä solusta C3 ja toisi sen vastaavasti tulos-välilehdelle ja laittaisi sen sarakkeeseen F 5. Jolloin Tulos välilehdelle muodostuisi seuraavanlaisesti tiedot D...............E.........F Sheet1.......C1.......C3 Sheet2.......C1.......C3 Sheet3.......C1.......C3 Eli jokaisen välilehden nimen jälkeen tulisi kyseisen välilehdellä olevat C1 ja C3 solun tiedot. Toivottavasti nyt on parempaa ja selkeämpää suomea. Kiitos 1000:nesti


      • Oma moka kirjoitti:

        Hei, Joo. sarakkeella päällekkäin. Eli tieto pitäisi tulla D5, D6, D7 jne. Tarkoitus oli, että makro tekisi välilehden jonka nimi olisi tulos. Sitten makro hakisi jokaisen välilehden nimen ja laittaisi sen sarakkeelle D ja riville 5. Sen jälkeen makro hakisi jokaisesta välilehdestä solun C1 tiedon ja toisi sen välilehdelle tulos ja laittaisi sen soluun E5. Sen jälkeen se tekisi saman hakukierroksen, mutta tällä kertaa hakisi jokaisesta välilehdestä solusta C3 ja toisi sen vastaavasti tulos-välilehdelle ja laittaisi sen sarakkeeseen F 5. Jolloin Tulos välilehdelle muodostuisi seuraavanlaisesti tiedot D...............E.........F Sheet1.......C1.......C3 Sheet2.......C1.......C3 Sheet3.......C1.......C3 Eli jokaisen välilehden nimen jälkeen tulisi kyseisen välilehdellä olevat C1 ja C3 solun tiedot. Toivottavasti nyt on parempaa ja selkeämpää suomea. Kiitos 1000:nesti

        kuten sanoin helppo muokata sopivaksi... ja tiedot voi hakea kerralla... Sub lisää() Dim ws As Worksheet On Error Resume Next Worksheets("Tulos").Activate Range("D5:E1000") = "" For Each ws In ActiveWorkbook.Worksheets If Not ws.Name = "Tulos" Then Range("D5").Select Do Until ActiveCell = "" ActiveCell.Offset(1, 0).Select Loop ActiveCell = ws.Name ActiveCell.Offset(0, 1) = ws.Range("C1") ActiveCell.Offset(0, 2) = ws.Range("C3") End If Next End Sub


      • Tulos välilehteä
        kunde kirjoitti:

        kuten sanoin helppo muokata sopivaksi... ja tiedot voi hakea kerralla... Sub lisää() Dim ws As Worksheet On Error Resume Next Worksheets("Tulos").Activate Range("D5:E1000") = "" For Each ws In ActiveWorkbook.Worksheets If Not ws.Name = "Tulos" Then Range("D5").Select Do Until ActiveCell = "" ActiveCell.Offset(1, 0).Select Loop ActiveCell = ws.Name ActiveCell.Offset(0, 1) = ws.Range("C1") ActiveCell.Offset(0, 2) = ws.Range("C3") End If Next End Sub

        Hei, Kiitos Kunde. Aivan mahtavaa. Pikkuriikkinen ongelma kuitenkin, se Tulos välilehti ei muodostu. Saisinko tähän vielä vähän apua? se tulos välilehti pitäisi olla viimeisenä.


      • Tulos välilehteä kirjoitti:

        Hei, Kiitos Kunde. Aivan mahtavaa. Pikkuriikkinen ongelma kuitenkin, se Tulos välilehti ei muodostu. Saisinko tähän vielä vähän apua? se tulos välilehti pitäisi olla viimeisenä.

        no nyt sekin sitten lisätty koodiin... Sub lisää() Dim ws As Worksheet Dim OnJo As Boolean On Error Resume Next For Each ws In ActiveWorkbook.Worksheets If ws.Name = "Tulos" Then OnJo = True End If Next If Not OnJo Then Sheets.Add , After:=Sheets(Sheets.Count) Sheets(Sheets.Count).Name = "Tulos" End If Worksheets("Tulos").Activate Range("D5:E1000") = "" For Each ws In ActiveWorkbook.Worksheets If Not ws.Name = "Tulos" Then Range("D5").Select Do Until ActiveCell = "" ActiveCell.Offset(1, 0).Select Loop ActiveCell = ws.Name ActiveCell.Offset(0, 1) = ws.Range("C1") ActiveCell.Offset(0, 2) = ws.Range("C3") End If Next End Sub


    • juhakorkeapudas

      Miten olisi kyseisen sarakkeen automaattinen suodatus?

      • muuan mies

        Tiedot - Suodata - Erikoissuodatus - Vain ainutkertaiset tidot ja sitten niistä laske.a(..)


    • Jos et halua käyttää helpoa tapaa, niin tässä on vaikeamapi: B-sarakkeen soluun lasket kunkin samalla rivillä olevan tilausnumeron esiintymien määrän. Tässä siis tulee esim. luku 3 kolmeen eri soluun, jos yksi tilausnumero esiintyy kolmesti. Toisille tilausnumeroille tulee sitten lukumääriä 1 ... 100. Kaava tyyliä =COUNTIF(A$3:A$100;A3). Aputaulukkoon laitat sitten yhteen sarakkeeseen luvut 1 ... 100 ja sen viereiseen sarakkeeseen kaavan tyyliin =COUNTIF(B$3:B$12;E16)/E16. Jos kolmea eri tilausnumeroa on ensiintynyt esim. 2 kertaa, tähän sarakkeeseen tulee nyt osataulukon 2. riville arvo 3. Sitten kun summaa tuon laskentasarkkeen, niin siinä on erilaisten esiintymien kokonaismäärä. Tämä ei siis ole simpeli vaihtoehto, ainoastaan toimiva.

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

    Luetuimmat keskustelut

    1. Persujen VigeIius noIasi taas itsensä

      Kun uhriutui vuonna 2024 (siis persujen "vahtivuorolla") Tampereella aloittaneen perheryhmäkodin toiminnasta. ”Leviää k
      Maailman menoa
      38
      2446
    2. Persut ei kestä heidän johtajistaan tehtyä huumoria

      Laajalti tiedostettu tosiasia on, että autoritaariset johtajat ja erinäiset diktaattorit eivät kestä heidän kustannuksel
      Maailman menoa
      48
      2030
    3. Kuka omistaa entisen Veljeskodin?

      Kenellä on varaa pitää hiljattain remontoitua rakennusta tyhjillään? Tehdäänkö siitä Suomen kallein kirpputori vai mikä
      Ähtäri
      9
      1976
    4. Vasemmistoliitto peruisi sosiaaliturvan heikennykset

      He palauttaisivat työttömyysturvan ja asumstuen suojaosat, eli saisi jälleen tienata 300 euroa kuukaudessa ilman tukien
      Maailman menoa
      48
      1705
    5. Jos voisit kysyä

      Kaivatultasi vielä yhden kysymyksen, mikä se olisi? Aloitan: Mitä sinä halusit minusta?
      Ikävä
      139
      1438
    6. Oli kiva nähdä sut

      vaikkakin kaukaa ja nopeasti. Tiedän kyllä tasan tarkkaan missä mennään, joten anteeksi jos pilasin päiväsi, ei ollut mi
      Suhteet
      24
      1106
    7. Lamppu syttyi

      Tiedätkö mitä mies, olen aivan yhtä rakastunut suhun. Kyllä. Koita jaksaa eiköhän me kohta nähdä ❤️
      Ikävä
      68
      915
    8. Talk Show isäntä Jimmy Kimmel sai kenkää

      Vasurina heitti sopimatonta läppää murhatusta Charlie Kirkistä tai oikeammin murhaajan poliittisesta taustasta ja kuinka
      Maailman menoa
      119
      898
    9. Välillä kyllä naurattaakin tämä kahden aikuisen meininki

      Se nyt on aivan selvä asia että kumpikin on päälakeensa myöten rakastunut, ja sinä se olet koko ajan ollutkin. 😘
      Ikävä
      62
      893
    10. Jos voisit palata yhteen risteykseen

      ..mikä se elämässäsi olisi?
      Ikävä
      67
      886
    Aihe