Kezdőlap › Fórumok › Excel témák › Egyedi értékek kinyerése
- This topic has 14 hozzászólás, 3 résztvevő, and was last updated 3 months, 2 weeks telt el by
Miklos.
-
SzerzőBejegyzés
-
2025-08-04-23:39 #11477
Sziasztok!
Milyen megoldást ajánlotok, arra feladatra, hogy van egy táblázat, miben random cellákban értékek helyezkednek el szöveg és számok formájában vegyesen, azaz adatok. A HA(VAGY függvényt használtam a teszt feladatra, de mivel a sorok és az oszlopok száma is tetemes, ezért olyan megoldásra van szükségem, ami nem igényel ennyi macerát.
Csatolok munkafüzetet.Köszönöm a lehetőséget.
Attachments:
You must be logged in to view attached files.2025-08-05-13:24 #11480Szia!
A feladatot nem írtad le, de a munkafüzetből ki lehet találni.
A fekete hátterű értékeket kell megkeresni egy tartományban és ha megvan, visszaadni az oszlopszámát.
Te ugyan sor-t írtál a VAGY-os megoldásba, de a képlet oszlopszámokat ad vissza.Ez a HA(VAGY megoldás valóban elég reménytelen.
Én készítettem egy megoldást, de csak akkor működik, ha a keresendő értékek nem ismétlődnek az oszlopokban.
Ez egy tömbképlet:=SUMPRODUCT((B8=$B$2:$K$4)*COLUMN($B$2:$K$4))A B8-ban lévő értéket keressük (512) a B2:K4 tartományban.
Először megnézi, hogy bármelyikkel egyenlő-e és az eredmény tömböt, ami TRUE/FALSE tömb) megszorozza a cellák fizikai oszlop értékeinek tömbjével. A kapott tömbben egy helyen lesz egy oszlop érték, a megtalált adat pozíciójában, a többi nulla lesz
Ezt összeadva magát a fizikai oszlop értéket kapjuk.hangsúlyozom ég egyszer, hogy ez csak ismétlődéseket nem tartalmazó tartományban fog jól működni.
csatolom.
Imre
Attachments:
You must be logged in to view attached files.2025-08-05-21:04 #11482Szia!
Egyedi értékre tökéletes. Én így módosítottam: =SZORZATÖSSZEG((B8=$B$2:$K$4)*OSZLOP($B$2:$K$4))-1 és akkor az oszlop számot kapom meg.
Valójában az is érdekelne, hogy milyen megoldás van arra, ha a tömb soraiban, vagy oszlopaiban több azonos érték van, és azt szeretném kiíratni , listázni?
2025-08-06-00:37 #11483Szia!
Ha lehet, mindig add meg azt is, hogy melyik Excel verizót használod.
Mert ha egy keresett érték többször előfordul, akkor további lehetőségek merülnek fel:
– Több oszlopban benne lehet, de csak egyszer, kellene az oszlopok listája
– Egy vagy több oszlopban benne lehet, de oszlopon belül is ismétlődhet. Az oszlopon belüli ismétlődéseket is listázza vagy azt egynek tekintse?
– Érdekelhet, hogy melyik oszlopban fordul elő először
– ilyesmiEzekre összeraktam lehetséges megoldásokat, de ez már csak Excel 2024-ben vagy 365-ben fog működni.
Például az oszlopok listája, ahol előfordul a B8:=TEXTJOIN(" ,";TRUE;LET(oszlopok;TOCOL((B8=$B$2:$K$4)*COLUMN($B$2:$K$4));FILTER(oszlopok;oszlopok>0)))Csatoltam az Excel fájlt.
Imre
Attachments:
You must be logged in to view attached files.2025-08-06-07:17 #11486Szia verax, Imre!
13 verzió.
2025-08-06-17:48 #11491Szia Imre!
Tehát, van egy tömb aminek a cellái tartalmaznak adatokat vegyesen, azaz számokat és szövegeket is, viszont az egyszerűség kedvéért minden át van konvertálva szöveg formátumba. A jelenlegi a 03-07 verzióban fut, mivel a telefonos app abban kezeli a függvényeket, és a makrókat.
A sima keres funkcióval a cellákban található szavakra lehet rákeresni, és kiadja az előfordulásuk számát a tömbben.
Én azt szeretném elérni, ha van rá mód ebben a verzióban, hogy az általam bevitt adathalmazok, amik egy külön lapon helyezkednek el egyedileg, hogy ezek az egyedi rekordok szerint legyenek listázva egy harmadik lapra dátum és óra szerint sorrendbe. Illetve, ha ez megoldható, akkor, ha ismétlődik a rekord a bázis lapon beírás közben, akkor ajánlja fel a már rögzített rekordot, és ha a rekord módosításra kerül bármelyik része, azt újként rögzítse.
A bázis lap amire rögzítve vannak az adatok, úgy néz ki értelemszerűen, hogy függőlegesen vannak a napok-első sor, és vízszintesen az órák-fejléc, negyedórákra bontva, így 4 cella tesz ki egy órát.
Gondolkoztam a kétdimenziós kereséssel, de az csak számokkal működik, mert a keresendő számsor utolsó 4 karakterének egyezése kell a pontos találathoz, és ha teljes egyezést akarok találni, akkor növelem mindig egy számmal a keresést. Pl.: d21005642223 esetén elég a 2223-at beírni, de ha van a tömbben d21004222364, akkor azt is találatként kezeli, ezért a 2223 helyett 42223 keresek, és az sem jó, ezért a 642223 fog teljes egyezést mutatni ami kell nekem. És akkor ezt már lehet rögzíteni. Ez működik akkor, ha kizárólag ID-t keresek és indexelem a hozzátartozó sorok adatait.Remélem érthetően leírtam.
Nagyon hasonlóra gondoltam, amit ezen a linken elkészítettél Imre. Azzal a különbséggel, hogy én a rekordot keresem listázásra sor és oszlop szám megjelöléssel, vagy tükrözéssel, és nem a feltétel utáni rekordot.
https://excel-bazis.hu/forumok/topic/ertekek-osszes-elofordulas-keresese-eredmeny-listazasa2025-08-06-23:06 #11492Sziasztok! Szia Miklós!
Én úgy tudom, hogy az Excelnek nincs v13.0 verziója.
Excel 2007 = v12.0
Excel 2010 = v14.0
Lehet hogy Excel 2013-at használsz?
De mindegy is… még az Excel 2013 sem rendelkezik azokkal a függvényekkel, amelyekkel hatékonyabban kezelhetjük az adattömböket, ennél fogva azok hiányát a VBA nyelvű programozással lehet pótolni. Ott viszont már semmi akadályt nem jelenthet a keresendő adatok többszöri ismétlődése sem.üdv’
verax2025-08-06-23:41 #11497Sziasztok!
Ezzel eldőlt, hogy az én függvényes megoldásom nem fog működni.
A 03-07 verziót sem értem, de hátha kiderül, hogy az mi.Miklós!
Ezúttal nem csatoltál fájlt, de a leírásból kiderül, hogy valami egészen mást szeretnél, mint amit kérdeztél. Illetve az még lehet, hogy a kérdésed, egy általad kitalált lehetséges megoldás első lépése lenne. Mármint hogy listázza az előfordulások oszlopszámát. Mindegy én el voltam vele, a második választ már egyedül találtam ki, tanultam belőle.Ez a sorbarakásos rekord átírás/módosítás dolog egyértelműen makró irányába viszi a dolgot, amit meg kell előzzön egy sokkal pontosabb feladatleírás.
Előbb-utóbb biztosan megszületne valamilyen megoldás, de részemről ez már meghaladja az ingyenes segítség határait. Főleg, hogy ha jól sejtem, nem készítesz makrókat Excelben, tehát nem tudnál önállóan hozzátenni (javíts ki, ha tévedek)Lehetséges, hogy a ChatGPT-t vagy valamelyik másikat lehetne addig nyüstölni, amíg valamit össze nem hoz neked.
Verax, te jössz, ha neked belefér időben
Imre
2025-08-07-00:13 #11511Azok a tömbképletek nem fognak működni 2013-ban, amiket én a második megoldásban adtam neked.
Imre
2025-08-07-07:38 #11515Szia Imre!
a 03-07 az 97-2003-as verziót jelent, csak elírtam. 🙂
Igaz önállóan nem tudok makrót írni, különben nem lógnék itt:). Viszont régebben foglalkoztam vele, és videókból írogattam egysmást. Jelenleg is van egy formom ami adatbevitelre adatbázisként működik, úgy hogy a rekordok sorba vannak rögzítve cellákra osztva, pl.: veznév kernév szdát,stb.
Ez a makró vissza tudja hívni az ID-t és törölni, vagy módosítani tudja.
Még az is megoldás lehet, hogy hozzádobok pár oszlopot, és a napot és időt külön oszlopba rögzítem.Különben nagyon hasonló makróra gondoltam, amit ezen a linken elkészítettél. Azzal a különbséggel, hogy én a rekordot keresem listázásra, és nem a feltétel utáni rekordot. Teszteltem, a 2-t kivettem és tesz a dolgát.
https://excel-bazis.hu/forumok/topic/ertekek-osszes-elofordulas-keresese-eredmeny-listazasaIgen, az a továbbgondolás része lenne, ha szükséges részemre.
Nyilvánvaló, hogy egyedi elképzelés létrehozása egyedi tárgylás és megegyezés az alapja.2025-08-07-11:40 #11519Szia!
Csatolt minta nélkül nem fogunk tudni tovább lépni.
Amit eddig értek:– 2013-as Excelt használsz, de a munkafüzet régi Excel formátumban van (xls)
– Egy bázis munkalapra te viszel be adatokat soronként. Ennek formátuma értelmezésem szerint egy mátrix, ahol az első oszlopban dátumok vannak, a többi oszlop fejlécben az idő negyedóránként. Az nem derül ki, de gondolom egy napról lehet szó, azaz max 24×4 idő oszlop.
– Egy rekord adat tartalmát nem ismerjük, de valahol van benne egy ID, gondolom ez a lényeg, ez biztosítja az egyediséget?
– Én úgy értem, hogy a felvitt rekordok nincsenek időrendi sorrendben.Na, innen jön az, hogy mit szeretnél, és ez nekem nem egyértelmű
– A bázis táblából készüljön egy másik munkalapra egy új tábla, ami Egyedi rekordokat tartalmaz, időrendben
– Nem írtad le, hogy ennek a táblának milyen formátumban kellene lennie? Olyanban, mint a bázis tábla?
– Itt már nem értem az időrendet. Az első oszlopban lévő dátum szerint növekvő? De akkor mi van az időkkel az oszlopokban?
– És ha egy napon belül több negyedórában is van érték, akkor mi is van?
– Ha a bázis lapon az ID beírásakor kiderül, hogy ez az ID már létezik, akkor valahogy jelenjen meg a már létező sor,
amit lehessen szerkeszteni és ezután visszaírni új rekordként.
– Hová? A bázis táblába?
– Melyik táblában kel figyelni, hogy vane már ilyen ID?
– Ez csak makróval oldható meg, és űrlappal, ami különben van neked valami hasonlóról írtál.És még bizonyára számtalan pontosításra van szükség, amit írogatással végtelen idő tisztázni.
Csatolt munkafüzettel kicsit előrébb lehetünk.De konkrét makró írásra a fórum keretein belül nekem most nincs szabadidőm.
Imre
2025-08-07-15:48 #11520Szia!
Ok, készítek két külön munkafüzetsablont, amit ellátok magyarázattal, hogy értsd, mert a válaszod alapján összemostad a két variációt amit leírtam.
2025-08-13-00:56 #11530Sziasztok!
Egy időre hátrább léptem, hogy ne „beszéljünk” egyszerre.
Miklós!
Ha eddig nem tetted meg, talán érdemes lenne ismerkedned az adatbázisok világával is – mert ez a feladat adatbázisért kiált. És akkor rögtön kezdem is egy szabály ismertetésével. Adatbázisban nem módosítunk rekordokat (egyetlen mezőben sem), adatbázisból nem törlünk rekordokat (sorokat). Mindig új rekordban rögzítjük a szükséges változtatásokat.
Én ezt az „utat járom”, még akkor is, amikor a táblázatkezelővel oldom meg az egyszerű adatbázis feladatot.De ha továbbra is ragaszkodsz az eredeti elképzelésedhez, szerintem – ha Imrének nincs is rá ideje – fogunk tudni segíteni.
üdv’
verax2025-08-25-17:24 #11559Sziasztok!
Lehet, hogy nem voltam elég érthető, de ilyesmire gondoltam, amit készítettem.
A lényege, hogy a tartományon belül ami alapján ki kell nyerni az adatokat azok feltételek változnak. A változáskor az azok a tételek mentésre kerülnek, másik adatbázisokba, amik kikerültek, vagy bekerültek újként.A lényege, amit mostanáig elértem, hogy az aktuális tartomány szerint tudok szűrni, majd ezt a szűrt tartományt egy újabb feltétel szerint lehet tovább szűrni, vagy akár egyből az egyedi rekordok alapján lehet szűrni és elmenteni.
A lényege, hogy pl.: a Favágás-ra évre, hónapra, hétre, napra le tudjam szűrni a bevitt adatokat.
Nem ezzel foglalkozom, csak példaként alkottam ezt a feltételt, de a naptár a saját szerzeményem, mert nekem így kényelmes és áttekinthető, az elterjedthez képest.Mivel többféle szűrőt kell kreálni, és fontos az xls formátum megtartása, ezért még az Akárhány szintű legördülő lista makró nélkül verzióba való beágyazásba is gondolkodom.
Igaz gépre jó lenne a makros verzió, ha lenne rá mód.Imre, valóban nem fut a Makro a telefonon, csak úgy emlékeztem, mert elég régen alkalmaztam azt a formot, és azt is arra használtam, hogy a kikeresett tételeket leszűrje, majd kinyomtassa.
Megfogalmazódott bennem egy gondolat: Mire a kérdéshez érkezel, már rég találkoztál a válasszal, akár több formában is.
Ez akkor fogalmazódott meg bennem, amikor megtaláltam a letöltött Lista szűrése másik lista alapján formot, ami évekkel ezelőtt történt.Várom a hozzászólásokat, vagy kritikákat.
Köszi.Attachments:
You must be logged in to view attached files.2025-08-26-13:04 #11561Sziasztok!
Így oldottam meg a nyűgömet.
Van egy feltétel lap amibe rögzítem az új adatokat, az most teljesen mindegy, hogy hogyan.
Ezek az adatok egyedi értékeket képviselnek, így a tartomány folyamatosan változik.
Biztos mindenki ismerte, de én most jöttem rá, hogy a névtartományba így _1_ lehet számot kreálni, hogy sorszámkén nézzen ki.
Működése: a főlap aktív celláit érvényesíteni kell, a tartományból kiválasztom a kívánt tételt, a főlapon elhelyezett cella (A2) indirekt módon behívja a kiválasztott adatot. Az aktív cellába, csak az a tétel fog megjelenni ami ki lett választva. Ezek után lehet tovább töltögetni a táblázatot.
A szűrő az A:A oszlopban leszűri a képlet alapján a kitöltött sorokat -> Szűrő -> Dátumszűrők -> Egyéni szűrő -> <>0 választásával.
A leszűrt adathalmazt k lehet menteni az eredmény táblába, ahol csak azok a sorok lesznek aktívak, amiben vannak adatok. Ezeket az adatokat így már tovább lehet bontani órára, napra, tételre.Eredetileg azt szerettem volna, hogy az indirekt hivatkozás az aktív cellába legyen, és a kiválasztott érték a legördülő menüben cserélődjön ki a sorszám hivatkozású szövegre.Gondolom nem lehet ezt függvénnyel megoldani.
Ha van valakinek jobb ötlete szívesen várom.
Attachments:
You must be logged in to view attached files. -
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
