Moi!
Esim. tällainen taulukko
A B
1 Kissa 1
2 Kissa 1
3 koira 2
4 kissa 2
5 koira 1
6 kana 1
7 kissa 3
8 kissa 1
Eli pitäisi saada tietää solujen määrä, kun solun arvot ovat:
Kissa ja 1=?
Kissa ja 2=?
Kissa ja 3=?
Koira ja 1=?
Koira ja 2=?
Koira ja 3=?
Kana ja 1=?
Kana ja 2=?
Kana ja 3=?
Tässä tietysi helppo laskea itsekin, mutta rivien ollessa useampi sata on aika hankalaa. Millä kaavalla nämä ehtojen mukaiset kappalemäärät voitaisiin laskea? Ja käytössä on excel2003.
Haluatko siis tietää parametrina annetun merkkijonon esiintymien määrän listassa? Esimerkissäsi siis solujoukossa B1:B300 olevien "Kissa 1" esiintymien määrän? Mikäli näin on voit tehdä seuraavasti.
Laita soluun D2 haluamasi parametri esimerkiksi "Kissa 1" Soluun E2 seuraava kaava: =LASKE.JOS(B1:B300;D2)
Siis esim. kissa ja numeeriset arvot ovat eri sarakkeissa ja siis myös soluissa.
ELI
A B
1 Kissa 1
2 Kissa 1
3 koira 2
4 kissa 2
5 koira 1
6 kana 1
7 kissa 3
8 kissa 1
Tulkitsen tuosta edelleen, että B sarakkeessa olisi Kissa 1, mutta onko erityinen syy, että olisivat eri sarakkeissa? Muutetaan hiukaan kaava, mutta ei paljoa. Sarakkeessa A on siis juokseva numerointi. Sarakkeessa B on eläimen nimi ja sarakkeessa C on jokin numero. Laita soluun E2 eläimen nimi ja sarakkeeseen F2 haluttu numero, jonka jälkeen soluun G2 seuraava kaava =LASKE.JOS.JOUKKO(B1:B300;E2;C1:C300;F2)
Ok, eli taulukon pitäisi siis olla niin, että sarakkeessa A on eläimen nimi ja B sarakkeessa onnumeroita. Vasemmassa laidassa oleva numerointi kuvaa vain excelin rivinumeroita, ei muuta merkitystä niillä. Eläin ja numero on oltava eri sarakkeissa. Tein esimerkkisi mukaisen kaavan ja muutkin asiat, mutta silti ei laske vaan tulee #NIMI?. Eli pitäisi laskea esim. montako kissaa on saanut arvon 1, montako kissaa arvon 2, montako kissaa arvon 3, montako koiraa arvon 1 jne...
Laskee taatusti, mikäli data vain on oikeassa paikassa. Mikäli olet laittanut nimet sarakkeeseen A tulee sinun omatoimisesti muuttaa myös kaavaa, johon muutos vaikuttaa. Eli siis jokaisen sarakeindeksin kirjainta tulee muuttaa pienemmäksi (B -> A, C -> B) ja niin edelleen.
Juuri näin toiminkin, mutta ei vaan laske. Olen tsekannut jo monesti ja data on aivan oikeassa paikassa. Ei vaan laske???
A B C D E F Kissa 1 Kissa 2 kana 2 2 Kissa 1 Kissa 2 Kissa 1 Kissa 2 Kissa 2 Kissa 1 Kissa 2 Kissa 1 Kissa 2 Kana 6 Kana 2 Kana 6 Kana 3 Kana 1 Kana 3 Kana 2 Kana 3
Nyt minulla on F2 solussa seuraava kaava =LASKE.JOS.JOUKKO(A1:A300;D2;B1:B300;E2) ja tulokseksi tulee siis 2.
Kiitos kovasti avusta, mutta en tiedä mikä tässä nyt on. Tein ihan identtisen taulukon sinun mallisi kanssa ja silti se ei laske, vaan tulee #Nimi?. Eikö tämä kaava pitäisi toimia myös tällä excel 2003 versiollakin?
Kai sinullakin on suomenkielinen Excel? (Sorry, tyhmä kysymys, kun se kerran sanoo #Nimi, eikä #Name)
Joo suomenkielinen tämä on.
Voi kirosana sentään! Excel 2003 ei muuten ole vielä tuota funktiota implementoitu. Tulee vasta versiossa 2007, joka on mulla. Pahoitteluni virheestäni sun ekassa viestissä olikin se näköjään mainittu.
Eipä se mitään. Miten tää sama juttu toteutettaisiin sitten tässä mun vanhemmassa versiossa?
No itse laittaisin varmaan soluun C1 kaavan =A1&":"&B1 ja kopioisin sen alaspäin sitä kaikille riveille. Sitten F1:een kaava =LASKE.JOS(C$1:C$1000;D1&":"&E1) jota taas kopioidaan alaspäin. Ja sarakeen C voi sitten piilottaa jos ei halua noita ylimääräisiä tekstejä näkyviin
Olisi vähän samansorttinen ongelma.
Eli minulla on ensin A16:sta alkava ja A54:ään loppuva lista numeroita ja vieressä C16 - C54 lista niiden numeroiden esiintymismäärästä.
Eniten esiintyvän saa julki näin:
=LARGE(C16:C54;1)
ja muuttamalla viimeistä ykköstä suuremmaksi saa seuraavaksi suurimman, mutta kuinka saisi tulostettua sen perusteella sen solun A16 - A54 numeron, joka Large-funktion mukaan esiintyy eniten?
Toivottavasti ei tullut hirveän epäselvästi kirjoitettua, kun mietin varmaan puoli tuntia, että miten ilmaisen itseäni tässä asiassa enkä ole oikein tyytyväinen vieläkään. :D
LARGE funktio ei kuitenkaan taida antaa kuin suurimman arvon. MODE funktiolla voisit saada, sen mitä haluat. Se siis palauttaa sen arvon, jolla on suurin esiintymä.
Teuro kirjoitti:
LARGE funktio ei kuitenkaan taida antaa kuin suurimman arvon. MODE funktiolla voisit saada, sen mitä haluat. Se siis palauttaa sen arvon, jolla on suurin esiintymä.
Mode ei kuitenkaan tulosta kuin sen yhden suurimman (mutta pitäisi tulostaa myös seuraavaksi suurimpia muutama kipale) ja se tulostaa vain seuraavanlaisesta excel-taulukosta:
A 1: 1 2: 3 3: 3 4: 5 5: 4
Mutta minulla on tyyliin:
A B 1: 1 1 2: 3 2 3: 5 1 4: 4 1
Eli varsinainen numero on A-sarakkeessa ja B-sarakkeessa numeron esiintymismäärä.
ja tuosta Large tulostaa "2" jos laittaa =Large(B1:B4;1), =Large(B1:B4;2) tulostaa "1".
juhaz kirjoitti:
ja tuosta Large tulostaa "2" jos laittaa =Large(B1:B4;1), =Large(B2:B4;2) tulostaa "1".
Eli ihan oikein menee ensimmäinen palauttaa suurimman arvon ja toinen seuraavaksi suurimman. Miksi toisessa kaavassa ei oteta huomioon B1 solua? Tulos tosin ei muutu siitä, mutta ihmetyttää vain.
Teuro kirjoitti:
juhaz kirjoitti:
ja tuosta Large tulostaa "2" jos laittaa =Large(B1:B4;1), =Large(B2:B4;2) tulostaa "1".
Eli ihan oikein menee ensimmäinen palauttaa suurimman arvon ja toinen seuraavaksi suurimman. Miksi toisessa kaavassa ei oteta huomioon B1 solua? Tulos tosin ei muutu siitä, mutta ihmetyttää vain.
Näppäilyvirhe.
Mutta ongelma on nyt, että pitäisi tulostaa se A-sarakkeen numero LARGE:n tuloksen perusteella, että tietäisi sen, että mikä numero esiintyy useimmiten.
Aihe on jo aika vanha, joten et voi enää vastata siihen.