Az „Excel” fórum célja, hogy keretet adjon az Excel felhasználók széles táborának tapasztalataik megosztására, és lehetőséget a segítséget kérőknek. Az alábbi összefoglaló azért készült, hogy segítse a helyes kérdésfeltevést.
– Írd le szabatosan a problémát. Úgy fogalmazz, hogy ne csak te magad, de a szakértő is megértse, mire szeretnél választ kapni.
– Írd le, hogy milyen verziójú Excellel dolgozol. (Vagy ha nem – ill. nem csak – Excel, akkor micsoda?)
– Írd le, hogy milyen úton indultál el, és hol akadtál el rajta.
– A kérdés megértése szempontjából sokat segíthet, ha feltölteszt egy képet, amin látszik, hogy mit szeretnél, vagy illusztrálja azt.
– Még jobb, ha feltöltesz egy minta munkafüzetet valahová (pl. data.hu). Feltöltés előtt távolítsd el belőle a nem publikus adatokat.
– Ha a feladat jellege olyan, célszerű az "előtte" és "utána" állapotokat bemutatni. (Miből kellene csinálni mit?)
– Ha VBA kódon kell javítani, másold be a releváns kódrészt. Rövid kód mehet hozzászólásba, hosszú kód inkább ide: http://pastebin.com/
– Ha valami nem úgy működik, ahogy kellene, add meg a rendellenes viselkedés jellemzőit, a hibaüzenetet, és a hibát okozó programsort.
Miért kellene a BC oszlop számait összehozni. Azokat induláskor úgy kezdték el írni és ha jön egy új szám, csak folytatják a cellában. B oszlopban magánszámok, C oszlopban céges számok.
Tényleg rövidebb. De sokkal körülményesebb. Előkeresni az A oszlopból a megfelelő Miszámunkat, majd ennek a sorából egy másik cellában szöveg.keresezni… Hát nem semmi. Azt már meg sem emlitem, hogy elötte a BC oszlop celláit is össze kell hozni. Persze ha összeszedném magam, tudnék még ennél is komplikáltabb megoldást csinálni :)))))
A Redim A(2 to 5) azt jelenti, hogy az új tömbödnek az első indexe amire hivatkozhatsz, az a kettes lesz, vagyis a tömböd 4 elemet (2-3-4-5) fog tartalmazni.
A Redim(5) viszont azt jelenti, hogy az első indexed az Option Base utasítástól függően 0 vagy 1, tehát a tömbben 6 ill. 5 elem helyezhető el.
A Dim tömb utasítást egyébként ugyanigy tudod használni.
A második verzió azért sokkal-sokkal rövidebb szerintem
Szöveg.keres feladata: megkeresni az adott cellában a hívott számot. Ha a B oszlopban megtalálja, akkor magánszám, ha a C oszlopban, akkor céges a szám, ha nem találja, akkor nincs még felvéve a listába.
Az adattábla lehet majd a következő lecke szerintem.
Értem én. Nálunk is csináltak valami hasonlót egy rövid ideig. De aztán elhalt. Mivel nem sok értelme volt. Mondjuk annyi különbség azért volt, hogy a főnökségnek se voltak túlzott reményei a módszer hatékonyságával kapcsolatban. Úgy tudom, egy APEH intézkedést gondoltak így hatástalanítani.
Valamit rosszul láthatok, mert szerintem a számlista ugyanolyan hosszú, ha a magán és céges hívások el vannak különítve egymástól, mint ha nem lennének. De ha nem így lenne, 1 millió hosszúságú akkor se lenne, már pedig annyit az excel könnyedén kezel.
Nálam a szöveg.keresnek nincs funkciója, és őszintén megvallva, a tiedben sem látom, hol lenne szerepe.
A szumhatöbb is jó természetesen. De pivot sokoldalubb elemzést tesz lehetővé. Arról nem is beszélve, hogy az adattábla kezelése is egyszerűbb.
E$25 helyett írhatsz akár E$125-öt vagy amennyi sorod várhatóan lesz.
Ha csak a kiadott azonosítókig húzod le, akkor mindig beírja a B oszlopba az E oszlop megfelelő adatát.
Ha túlhúzod, akkor a B oszlopba az E oszlop utolsó adata kerül, ami azonnal megváltozik, ha egy új azonosítót kiadsz a C,D oszlopokban és melléírod a termék nevet az E oszlopba.
Szerintem nem teljesen érted a lényegét. Vannak a céges telefonok, amit a kollégáim használnak. Engedélyezve van magánhívás is de azt ki kell fizetni. Vannak alap feltételek, amiket nézünk. 4-nél többször hívta vagy 4-nél több sms-t küldött. Megkérdezem a kollégám, hogy amit Ő hívott a céges telefonjáról számot az a munkáltató érdekében volt vagy magánhívásnak minősül. Ő erre besorolja valamelyik kategóriába. Én ezt folyamatosan gyűjtöm. Magán hívásnak minősül az, ami nem a munkájából adódóan hívott. Céges hívásnak amit a munkája miatt hívott. Pl.: nekem mondjuk a UPC csak magánhívás lehet. De az informatikus kollégának céges hívás mert a cég miatt hívta.
Igen, csak ez akkor egy lényegesen hosszabb telefonszámlista lenne.
Amit most csinálnak, az a telefonszámhoz tartozó két oszlopban tudja kezelni a magán, céges kérdést - más kérdés, hogy én csak a magánt kezelném, a céges már egy kicsit "Nagy Testvéres".
Kiválogatni pedig, ahogy látod, a szöveg.keres-sel lehet egy adott cella tartalmából.
Nem mondom, hogy egyszerű a képlet, de azért még elviselhető hosszúságú szerintem.
Rendben, a Te telefonlistáddal dolgozunk (továbbra is tlista).
Akkor annyit kellene módosítani a korábban leírtakon, hogy a
A híváslistát kiegészíted a következővel:
D1 cellába beírhatod: magán/céges
D2 cellába képlet =HA(HIBÁS(FKERES(A2;tlista!A:A;1;0));"Nincs ilyen céges szám a listádban!";HA(HIBÁS(SZÖVEG.KERES(B2;FKERES(A2;tlista!A:B;2;0)));HA(HIBÁS(SZÖVEG.KERES(B2;FKERES(A2;tlista!A:C;3;0)));"Nincs ez a hívott szám a listádban!";"céges");"magán"))
Ez megmutatja, ha egy céges számot még nem vittél fel a listádba (tlista), ha egy hívott szám nincs benne még a listádban, ha pedig megtalálta, akkor beírja, hogy céges, vagy magán volt a szám.
Ezt így szűrve megláthatod azt is, hogy melyik céges szám hiányzik, illetve melyik céges számról hívták az adott számot.
Valami nem stimmel a magyarázatoddal. A H-oszlopban nem a Termék1-t és Termék2-ket számoltad meg hanem a sorozatjaikat. Ha a termék db-kat akarod megszámolni, és nem a B-oszlop kitöltésével (ami pedig szerintem egyszerübb lenne, mint a CDE oszlopoké), akkor az F-oszopba számold ki a soronkénti termékdarabok számát a D-C+1 képlettel, majd H-ban szumha-val a Termék1 és Termék2 darabszámát:
=szumha(e1:e1000;"Termék1"f1:f1000) és ugyanezt a Termék2 vel is.
Ezt most hogyan szűröd ki, gondolom kézzel - fejjel.
Úgy gondolom, ez akkor működhet, ha a magánszámokat a hozzájuk tartozó céges párjukkal együtt tároljuk a listában. Tehát nem elég megjelölni, hogy magán, azt is tudni kell, melyik hívónál magán.
Ez egy kicsit bonyolítja a helyzetet, de megoldható.
Azt szeretném hogy van mondjuk 1-től 1000-ig "vonalkód" kinyomtatva. Ahogy jön egy termék időbrendben arra rakom a kódot. De nem tudom hogy mikor melyik termék jöhet és mennyibe van csomagolva ezért kell használnom intervallumokat. "A oszlopban" van a "vonalkód" ami folyamatosan töltődik fel 1000-ig ahogy érkezik az árú. "C és D oszlopban" van a kezdő és záró érték aminél megadom, hogy egy termék mettől meddig kapta meg a sorszámot. A "H oszlopban" meg összesítem, hogy hány darab van az adott termékből. A "B oszlopot" semmire nem használom. Vagyis ha van rá ötlet akkor arra használnám, hogy oda automatikusan beírja hogy Termék1 vagy Termék2 függően hogy a C,D,E oszlopba mi van írva és onnantól meg darabteli() meg heppyhour :D
Ami most meg tudok valósítani, hogy soronként egyesével beírogatom a B oszlopba, hogy Termék1 Termék2 stb... és azt darabteli()-vel megszámolom. De nincs túl nagy lelkesedésem több száz sort kitöltögetni manuálisan :D
Tudom, hogy a Termékenkénti Egyedi ID lenne a legjobb de sajnos itt nem valósítható ez meg.