Calc/Excel - oszlopban hány fajta érték található? - MEGOLDVA!

Fórumok

Biztos trivilális a megoldás, és ott van az orrom előtt, de most nem találom. Hogyan (melyik függvénnyel) tudom megszámolni Libre/OpenOffice Calc vagy Excelben, hogy egy adott oszlopban(vagy intervallumban) hány egyedi érték (hány fajta adat, pld. a,a,b,c,d,a,c esetén 4db a válasz) található?
Excelban az irányított szűrővel kissé macerásan meg tudom megoldani: átmásolom csak az egyedi értékeket egy új helyre, és ott összeszámolom őket - de elég sok adatra és táblára kellene ezt megtennem, ami ezen a módon agyrém , csak van ennél egyszerűbb megoldás is :)

Előre is köszönöm.
------

Mint lentebb írtam, a (magyar nyelvű) megoldás:

=SZUM(HA(GYAKORISÁG(HOL.VAN(B2:B10;B2:B10;0);HOL.VAN(B2:B10;B2:B10;0))>0;1))

Hozzászólások

Statisztikai függvények közt keresgélj! (csak subs... bosszant, hogy nem jut eszembe, pedig használtam ilyet... ugy húsz éve:( )

Köszi!

1. Nézegetem... elsőre azért aggaszt, az első megoldás az, amit én csináltam eddig (advanced filter), a másik (függvényes) is elég riasztó... mostmár csak arra kell rájönnöm, hogy hogyan vannak magyarul a függvények :)

2. Na, ebből Libre/OpenOffice lesz (remélem azok is tudják már), mert a frequency függvény csak 2007-től van, így az Office 97-mel nem sokra fogok menni :) - azért nem gáz, hogy egy ilyen - szerintem alapvető - funkció nincs benne alapból? (vagy nekem túl nagyok az igényeim?)

De köszi mégegyszer!

Ne kattints ide!

Libre/Openoffice tudja, Gnumeric is, szerintem amióta csak ismerem őket, tudják. És ugyan nem akarom én itt az Excel-t fényezni, de az is időtlen idők óta tudja. Eszerint a dokumentum szerint már az Excel 4.0 is tudta (pedig az nem 2007 után volt :-P ).

Az Excel függvények angol magyar megfelelői pedig itt.

Azért majd olvasd el sarkanyolo linkjét. Szerintem kicsit agyrém, hogy erre az egyszerű feladatra egyelőre csak workaround létezik (mert ez minden csak nem elegáns megoldás). Nekem, ha minden igaz, a 3. verzió kell, igaz egyelőre még nem sikerült működésre bírnom, valamit elrontok.

De a te általad linkelt sem az az egyszerű menet... :D - én kis naív azt hittem annyi lesz a dolgom, hogy cella=függvény(tartomány) és kész.

(Lehet, hogy korábban is létezett a frequnecy függvény, ezért elnézést. Én az említett link alján rákattintottam a használatára, és ott láttam egy jelzészerűséget, hogy Office 2007-től. Nem ellenőriztem le, hogy van-e a 97-ben, de majd engedélyezem javascripteket :-P, és megnézem a függvények magyar neveit, hogy megtaláljam. Kifakadásom oka a hozzászólásom első részében található :) )

Ne kattints ide!

Azért két alap függvény és egy tömbfüggvény egymásba ágyazása nem a táblázatkezelők hekkelésének csúcsa. Az Excelben az esetek zömében (alapeset) arra van szükség, hogy a FREQUENCY egy tömbben megszámolja bizonyos tartományokba eső értékeket. Amit tökéletesen tud. Ahhoz más függvény sem kell. Amit te kérdezel, az egyszerűen ritkán szükséges, ezért nincs rá külön függvény. Lehet minden vacakra külön függvényt írni, csak akkor többezer függvényből kéne válogatni, az meg más jellegű problémákat okozna. A"workaround" meg annyira nem bonyolult, ha valaki ért a táblázatkezeléshez. Ha nem, akkor okozhat nehézséget a megértése, de az egyik táblázatkezelő hibájának sem róható fel szvsz. Ráadásul meg sem kell érteni, ha nem akarja valaki, a mellékelt linken szájbarágósan leírják a használatát. (Igen, elolvastam sarkanyolo linkjét, nem szoktam csak úgy reagálni, anélkül, hogy megnézném, miről szól egy thread. Nem volt ott semmi extra látnivaló, le volt írva több megoldás a kérdésedre. Egyiket sem nevezném workaround-nak.)

Kérhetek segítséget, mert már hülyét kapok, főleg azért, mert ezzel nem nekem kellene foglalkoznom, hanem a szotfverszállítónknak, csak éppen rossz amit küldtek, így most küzdhetek sql-el, meg ilyen excel vackokkal, hogy határidőre produkáljak adatokat... ezért vagyok picit "morcosabb" :)

Igazából - újra megnéztem - nekem sarkanyolo linkjén a második példa kell (mert összefüggő adathalmazra kell, nincs bennük hézag), ami nem olyan rémes:

=SUM(IF(FREQUENCY(MATCH(B2:B10,B2:B10,0),MATCH(B2:B10,B2:B10,0))>0,1))

ezt átültettem "magyarra":

=SZUM(HA(GYAKORISÁG(HOL.VAN(B2:B10,B2:B10,0),HOL.VAN(B2:B10,B2:B10,0))>0,1))

de erre nekem mind az excel 97, mind a LibreOffice 4.0 hibát ad, és nem tudom, mit rontok el.

Előres is köszi!

Ne kattints ide!

Hosszas bénázás után meg van a megoldás! (sikerült mindig bent hagynom egy vesszőt :), mindig máshol :) ), köszönöm mindenkinek!!

=SZUM(HA(GYAKORISÁG(HOL.VAN(B2:B10;B2:B10;0);HOL.VAN(B2:B10;B2:B10;0))>0;1))

Ui:
Viszont a képlet felvitelét sima enterrel is elfogadta. Vagy ez a ctrl+shift+enter hova értendő? Az adatok felviteléhez? Az picit bonyolult lenne, mert kész táblázatok vannak. Mindegy, sikerült, így már csak érdekességként kérdezem.

Ne kattints ide!

Nem néztem meg, bevallom, itt halottam először róla. Nem munkaköröm az excelben bűvészkedés, saját célra meg sosem volt szükség rá. Utoljára makrókat meg programot Quatroban csináltam, ma már el sem tudom képzelni, hogy hogyan (valami egész komoly cucc volt a vizsgafeladat, de az ugyanúgy misztikum ma már számomra, mint a c-ben írt "nc-like" file/sector kezelő-szerkesztőm :) )

De majd utánanézek, bár így elsőre olyan érzésem van, hogy az a feladatra picit ágyúval verébre eset. Nekem szekciónkét összegző (nem részösszesen) soraim vannak, és azokba kell egy "fajta darabszám" értéket is beszúrni. Lehet, hogy megy a pivottal is egyszerűen, de számomra a képletmegoldás szimpatikusabbnak tűnik. De azért köszi mindenkinek a tippet, ha lesz több időm, akkor elmélyedek benne.

Ne kattints ide!

Ahhoz képest, hogy nem munkaköröd, jó sokat bűvészkedtél, nagyjából feleslegesen.
De ha már step-by-step screenshotolt leírást készítettem Neked itt: http://hup.hu/node/132092#comment-1727456, még csütörtökön, légyszi nézd meg a kedvemért azt a 4 kattintást, ami megoldja a feladatodat, ne érezzem időpocsékolásnak az időt, amit én rászántam ;)

Üdv,
Marci

(Picit hosszú lett, elnézést!)
Az az igazság, hogy tegnap, miközben a postomat írtam, megnéztem több videót is, meg megpróbáltam a Te linkedet is megnézni (úgy ahogy, sikerült, de nem pont úgy, de ahogyan te szántad). Fentebb egyik hozzászólásban jeleztem, hogy Office 97 van ami elérhető (ill. most 2000), ebből le lehet vonni bizonyos következtetéseket, lényeg, hogy abszolút nem uptodate rendszerekkel van dolgom. A linkedet is csak .mht-ként letöltve, böngészőbe betöltve tudtam megnézni. Gond volt az is, hogy a korábbi rendszereken egészen máshol van a funkció (az összes tutorial, amit elsőre megnéztem + a Tied is Office 2007+ -os)

A "hosszas bénázás" annyit jelentett, hogy a topik nyitásának napján munkaidőben (Win XP/Office 97+LibreO 4.0) szórakoztam vele, de mivel más dolgom is volt (sql szelektek agyalása, ami szintén nem munkaköröm), így nem volt kapacitásom egy teljesen idegen irányba elindulni: gőzöm sem volt, mi az a pivot tábla, bár mint utólag kiderült, semmi misztikum nincs benne - annyi "energiám" volt, hogy az excel súgóban beírtam a keresőbe a "pivot" szót, de mivel nem talált semmit, így folytattam a munkám többi részét, amit már tudtam, hogyan működik (a gagyi workaround - irányított filter - is kb. egy kijelölés, 3-4 kattintás, és már "olvasható" az eredmény, igaz elég csúnya módszerrel). Meg mivel már volt szimpatikusnak tűnő megoldás, a képlet (hogy miért ez a szimpatikusabb? - talán maradi vagyok, ezt az utat ismertem, stb...), aminek többek szerint is működnie kell, nem akartam elindulni egy ismeretlen irányba. Másnap szabadság (ami alatt csak be kellett mennem, pont ezen kimutatások miatt, szerencsére csak pár órára) - meg közben másfél hónapos csecsemő nevelés :) - így néha leültem 1-2 percre a gép elé, és próbáltam beírni a képletet. A korábban jelzett pontosvessző gondra én is gondoltam, ki is cseréltem, de sosem az összeset (picit tele volt már a fejem (pld. gyereksírással), és a végét pld. remekül elnéztem, mert azt hittem az egy érték (0,1) holott két paraméter, utólag már fogom is fejem, hogy lehettem ekkora állat!. Amikor meg ezt is kijavítottam, akkor meg a közepén maradt bent egy vessző, és úgy sem volt jó :), ráadásul már szinte egyesével tartottam szép lassan nyomva a CTRL+SHIFT+ENTER-t, hogy biztos azt rontom el :D. Mindez persze nem volt ilyen vészes, kb. 3 vagy 4 darab 1 perces próbálkozásom volt csak az jó 2 napig tartott :), mire tegnap aztán sikerült mindenhol kicserélnem a vesszőt pontosvesszőre.
Tegnap miközben írtam, mint jeleztem, nézegettem ezt-azt (a linkedet is), de a saját verziómban később találtam meg a funkciót (Adatok -> Kimutatások/Kimutatás diagram menüpont), így a kipróbálás még várat magára (talán majd ma, ha elmennek sétálni :) - bár túl szép az idő, hogy én is gép előtt rohadjak, lesz arra még lehetőségem a következő napokban bőven), ezért nem tudok még konkrét véleményt mondani. Azt láttam, hogy kimondottan az én problémámra készült a link, KÜLÖN KÖSZÖNET!!, és elnézést, hogy nem "csaptam le rá" azonnal! De az az igazság, hogy még mielőtt fogalmam lett volna a pivot tábláról olvastam a többi hozzászólást (awk-s, meg a többi), és bevallom azok picit elrémítettek, mert bonyolultabbnak tűntek, mint egy képletet beírni (még ha kilométer hosszú is, mert van copy-paste). És nem elképzelhetetlen, hogy majd a pivot tábla bővebb ismerete után is ez marad a véleményem, hogy most erre a feladatra egyszerűbb a képlet (már ha sikerül az ember fiának rendesen beírnia :) )

Viszont most már tudom, hogy létezik ilyesmi, nem is valami ördögtől való dolog, csak szerencsétlen az elnevezése abban az esetben, ha az ember sosem hallott még róla.

Miközben ezt a litániát beírtam, lehet célszerűbb lett volna kipróbálni...., sebaj, lehet, hogy adtam táptalajt egy kis flame-re :D, meg Poli sincs már, hogy alapvető, pici problémákról oldalakon keresztül írjon.

Ne kattints ide!

Sehova, hülyeséget mondtunk. Illetve féligazságot. Ha csak egy cellába viszed be a képletet (és most pontosan ez a helyzet), akkor nem kell, elég a sima enter. De a GYAKORISÁG fv. tömbfüggvény, egyszerre lehet vel egy tartományba outputot írni, akkor kell CTRL+SHIFT+ENTER.

Darabteli(tartomány, feltétel) (bár csak akkor jó ha tudod mit akarsz megszámolni)
Vagy pivot táblát csinálsz...
*-------------------------------*
* Ami nem öl meg, az erősít..*
*-------------------------------*

=DARABHATÖBB(B6:B14;"=a"), ahol b6:b14 az általad felvázolt adatsor.
Libreoffice 4.2.1.1.

---------------------------------------------------------------------------
Környezetvédelmi nyilatkozat: Ez a hozzászólás kizárólag reciklált elektronok felhasználásával íródott.

Ez tetszene, csak nem értem a működését :) - illetve hogyan adjam meg tetszőleges oszloptartalmakra. Feltétel, hogy a "=a" helyén a = legelső mező értéke, tehát ezt minden képletbe be kellen írni egyesével?
Egyébként kipróbáltam egy kb. 50 tételt tartalmazó oszlopon, és ha jól számoltam, akkor rossz értéket adott vissza. De még megnézem mégegyszer. Vagy azért írtál verziót, mert abban már javították (nekem LibreOffice 4.0-m van)

Ne kattints ide!

Úgy tűnik, hogy egyenként meg kell adnod a számlálandó adatokat, ha numerikus adatokkal dolgozol akkor az adattömb->gyakoriság fv segíthet, de az is kéri az osztályokat.

Gyanúm, hogy a pivottábla a nyerő, itt úgy találod meg, hogy adatok->kimutatástábla
---------------------------------------------------------------------------
Környezetvédelmi nyilatkozat: Ez a hozzászólás kizárólag reciklált elektronok felhasználásával íródott.

Sajna nem úszod meg a dolgot, ha nem tudod mit kell megszámolni, erre jó a pivot tábla, akkor már tudod mennyi különböző elemed van, és onnantól a pivot táblából veszed a feltételt, a tartományt pedig az eredeti táblából "Darabteli(tartomány, feltétel)"

Ugye az is világos, hogy az egyedi értékeket is valahova irnod kell (új lapra) és a végeredményt is ide kell irnod (pld a = 4 db) és innentől schmittesen :D (c-c, c-p)

Ha sok oszlopon, ill. táblán kell ugyanezt ismételni akkor makrót írsz.

*-------------------------------*
* Ami nem öl meg, az erősít..*
*-------------------------------*