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

1558

    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. On tiedossa, että venäjämieliset diggaavat diktatuurista venäjää

      jossa ei esim. ole sanan- ja lehdistönvapautta. Mutta keitä nämä venäjän palvojat sitten ovat, ei heitä toki paljon ole
      Maailman menoa
      19
      2206
    2. Vihreiden, SDP:n ja Vasemmistoliiton kannattajista selvästi alle puolet on miehiä

      ja silti joku punafeministi valitti kokoomuksen naiskannattajien puutteesta, vaikka siellä on enemmän naisia kuin punavi
      Maailman menoa
      39
      2085
    3. Belfastissa käynnissä kunnon persuilu

      Joku random mamu tekee rikoksen, niin sikäläiset naamiopersut kostavat tuhoamalla kantaävestön omaisuutta. Liekö siellä
      Maailman menoa
      30
      1989
    4. Persujen kannatusromahdus tekee kesästä 2026 nautinnollisen

      Satoi tai paistoi, niin Suomen kansalaisella on kuluvana kesänä syytä hymyyn. Niin upealta tuntuu persujen kannatusroma
      Maailman menoa
      47
      1396
    5. Mitä kirjainta haluaisit

      Ra kastella mahdottomasti?
      Ikävä
      74
      1336
    6. Onko kaivattusi rohkeampi kuin sinä?

      Vai oletko sinä rohkeampia? Mikä on rohkea teko, minkä sinä tai kaivattusi on tehnyt? Mitä siitä seurasi?
      Ikävä
      46
      883
    7. Kaunein nimi

      Mikä on mielestäsi kaunein miehen ja naisen nimi? Haluaisitko itse olla joku toisen niminen?
      Ikävä
      56
      812
    8. Farmi-Amski ja Jucci Hellström - Sydämiä satelee - Onko tässä jotain enemmän?

      Amskidamski Anne-Mari Tarkkio ja Jucci Hellström olivat samaan aikaan Farmi Suomi -realityssä. Nyt somessa on nähty mat
      Kotimaiset julkkisjuorut
      8
      751
    9. Arvaa sattuuko se

      Että teen töitä siihen että unohdan sinut. Mitä muutakaan voin
      Ikävä
      52
      733
    10. Rakastan sinua hiljaisuudessa

      Rakastan sinua hiljaisuudessa. Olisit minun tai et, olen odottanut sinua vuosisatojen ajan. Ilman sinua sydämeni on yksi
      Rakkaus ja rakastaminen
      32
      708
    Aihe