[ -VeGeTa- @ 16.05.2010. 15:18 ] @
Poštovanje, Imam tablice s brojevima i sada trebam odrediti koji se broj najvise puta ponovio, a koji najmanje ? Postoji li funkcija pomoću koje to mogu sredit ?? |
[ -VeGeTa- @ 16.05.2010. 15:18 ] @
[ pera68 @ 16.05.2010. 16:06 ] @
Pokušaj kao u primeru iz priloga.
[ -VeGeTa- @ 16.05.2010. 16:22 ] @
Prijatelju zahvaljujem to je to !!!!!!!!!!!
[ Ivek33 @ 17.05.2010. 14:36 ] @
Citat: -VeGeTa-: koji se broj najvise puta ponovio, a koji najmanje ? Ili @VeGeTa nije dobro postavio pitanje ili nije dobro rješenje. Stoga ja ponovno pitam, zna li netko Kako riješiti problem (sa formulama ili sa VBA) 1. Koji broj se NAJČEŠĆE puta ponavlja ? 2. Koji broj se NAJMANJE (najslabije) puta ponavlja? pokušao sam nešto sa MODE i riješio najčešće ponavljanje nekog broja (nebitno je li MAX ili MIN ili već neki broj. Bitno je najslabije i najčešće ponavljanje ) U prilogui postavljam screenshot primjera kao i datoteku. [att_img] [ 3okc @ 17.05.2010. 18:25 ] @
Ja sam sklepao neko rešenje a nadam se da će se naći i elegantnije. :)
Za početak napominjem da u formulama koristim imenovani opseg NIZ, jer je mnogo preglednije u odnosu na A1:A22. Prvo, pošao sam od toga 'koliko čega ima' i za to sam koristio matričnu formulu ![]() ![]() Sad, kao što je poznato, za određivanje simbola koji se najviše ponavlja imamo f-ju MODE() koja računa upravo to, tako da ovde brzo dolazimo do rešenja: ![]() Inače, posredni način bi bio da prvo odredimo koliko se to puta ponavlja Najčešći broj - što bismo mogli na više načina: ![]() ![]() Međutim, ova strategija nam ne pomaže i za Najmanje-ponovljeni-broj zato što tražimo "najmanju vrednost" koja je i "veća od 1". Tako da, potrebno je malo modifikovati ovako dobijeni niz brojeva, npr tako što ćemo zadržati sve vrednosti učestanosti "veće od 1" a sve ostale maskirati "dovoljno velikim brojem" koji se garantovano neće registrovati kroz traženje "minimuma". Recimo da je to milion. Formula za ovo bi bila: Code: =MIN(IF(FREQUENCY(NIZ;NIZ)>1;FREQUENCY(NIZ;NIZ);1e6)) Time već imamo broj čiji položaj u nizu možemo da tražimo (sa MATCH/INDEX). Konačno rešenje je (obična) formula: Code: =INDEX(NIZ;MATCH(MIN(IF(FREQUENCY(NIZ;NIZ)>1;FREQUENCY(NIZ;NIZ);1e6));FREQUENCY(NIZ;NIZ);0)) ili matrična Code: =INDEX(NIZ;MATCH(TRUE;COUNTIF(NIZ;NIZ)=MIN(IF(FREQUENCY(NIZ;NIZ)>1;FREQUENCY(NIZ;NIZ);1e6));0)) [Ovu poruku je menjao 3okc dana 23.05.2012. u 18:36 GMT+1] [ FOX028 @ 17.05.2010. 18:35 ] @
imam ja jedno pitanje na sve ovo, pokusao sam sve ovo da resim preko VBA coda, jedino mi je nesto nejasno sta ako se dva razlicita broja pojavljuju isti broj puta, koji od njih prkazati?
[ 3okc @ 17.05.2010. 18:41 ] @
Citat: FOX028: sta ako se dva razlicita broja pojavljuju isti broj puta, koji od njih prkazati? Standarni prilaz za ovakve slučajeve je da se daje 'prva pojava'. [ FOX028 @ 17.05.2010. 18:44 ] @
ako je po standardu onda sam za najveci broj ponavljanja resio problem, na redu je najmanji broj ponavljanja
[ 3okc @ 17.05.2010. 18:52 ] @
Najveći broj ponavljanja vrlo efikasno rešava jedna jedina f-ja (MODE) što je nekoliko puta samo ovde pomenuto tako da ne vidim potrebu da se dodatno rešava i u VBA.
[ FOX028 @ 17.05.2010. 19:10 ] @
tacno 3okc ali lakse je uvek koristiti jednu funkciju kojaje napravljena u VBA ngo gomilu slozenih funkcija
evo resenja za oba problema pozzz [ Ivek33 @ 17.05.2010. 22:05 ] @
Kao prvo mislim da ovdje trebamo razdvojiti dvije ključne riječi (za ostale i buduće čitaoce teme)
- pojavljuje - ponavlja Neki broj se može pojaviti ali se ne mora ponoviti. U ovom primjeru važan je BROJ "ponavljanja" nekog broja bez obzira na njegovu vrijednost. Citat: FOX028: lakse je uvek koristiti jednu funkciju kojaje napravljena u VBA ngo gomilu slozenih funkcija - koji broj se ponavlja najmanje puta u range A1:A22 (NIZ) - koji broj se ponavlja najviše puta u range A1:A22 (NIZ) Ovaj primjer bi mogao komparirati sa npr: zamisli da igraš Loto i želiš vidjeti koji je broj izvučen najviše puta a koji najmanje puta u rasponu 1-39 ![]() Zato sam ja sada u ovaj primjer na tvoj VBA kod umetnuo dva broja (broj 11) koji nije ni MIN ni MAX ali se ponavlja 2x btw: VBA kod je napredna stvar (korisna za znalce) u odnosu na funkcije/formule, i treba voditi računa da ne znaju svi programirati, osim ako nije nužno rješenje s obzirom na problem ![]() Moje osobno mišljenje je; VBA samo kada je nužno i ne može bez formule i funkcija ili pak neka automatizacija (na kraju krajeva, cijeli život se uči i uvijek ima problema) @3okc, drugi dio problema sam riješio upravo sa MODE a tvoja formula riješava prvi dio pitanja, problem "ponavljanje najmanje puta". Interesantan je ovaj 1000000 (milion) koji si upotrijebio ![]() FREQUENCY i neka rješenja sam viđao na forumu i na "excelancije" ali je nisam znao konkretno formulirati u jednoj tako dugačkoj formuli (mislio sam da može i preko INDEX/MATCH) btw: Na forumu u starijim temama viđao sam formule slične konfiguracije koje ste ti i @jpeca postali ali ih nisam mogao nikako ukomponirati u jedinstvenu formulu, a što kažeš bolje je raditi sa imenovanim skupom jer se čovjek izgubi u silnim range oznakama adresa btw:mislim da bi bilo dobro temu preimenovati u naslov "najveći i najmanji broj ponavljanja u rasponu podataka" ili slično radi pretrage, možda je prikladniji problemu evo screenshot konačnog rješenja problema [att_img] Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|