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

1542

    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. Työeläkkeet ovat pois työntekijän palkasta

      Jokainen työeläkkeen nimissä maksettu euro on otettu pois työtä tekevältä palkansaajalta. Mitä korkeampi työeläketaso o
      Maailman menoa
      164
      2016
    2. Etkö sä muru mussakaiseni ymmärrä

      Että me päästään lähenemään vain kaveruuden kautta? Vain siten mä voin lähettää sulle kuvia ja viestejä 😌 Tänäänkin o
      Ikävä
      52
      1568
    3. "Suomi voisi ottaa taloudessa oppia Espanjasta"

      "Espanjassa talouspolitiikka on löysempää, mutta velka-aste on kääntynyt jopa laskuun.", pohdiskelee Suomen seuraava pää
      Maailman menoa
      128
      1551
    4. Sofia Virta: bänet!

      Matkailuautoilija metsänomistaja puoliso on nyt entisen teeren poikia, ja Sofia tekee comebackin vapaille markkinoille.
      Maailman menoa
      76
      1508
    5. Kaksi viikkoa enää Rakas...

      Tietäisinpä miten toimia...
      Ikävä
      78
      1435
    6. Kokoomus: SDP johtaa kansalaisia harhaan

      (Umpityhmät palstademarit ovat taas uskoneet Lindtmanin höpötykset Espanjasta.) SDP harhaanjohtaa kansalaisia talouspol
      Maailman menoa
      15
      1277
    7. Terveisiä lintutornilta

      Viipurista nousee kauhea savupatsas. Miksi ?
      Maailman menoa
      69
      1267
    8. Martina Aitolehdeltä kova tilitys podcastilla: "Kyllä mä turpaan vetäisin"!

      Martina Aitolehti tilittää brutaalin rehellisesti Eskolle podcastilla syitä, miksi hän ei ole lähtenyt mukaan julkkisten
      Kotimaiset julkkisjuorut
      233
      1102
    9. Tulisitko kahville..

      Jos pyytäisin?
      Ikävä
      71
      1069
    10. Talousasiantuntija sanoo säästämisestä

      " parin kuukauden tulo on sellainen, joka voi olla vaikka tilillä tai jossain korkorahastossa, eikä se ole tuottohakuine
      Sinkut
      231
      1034
    Aihe