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.
Én az egyes neveket végigkeresném a három oszlopban és a nevekhez tartozó helyezéseket adnám össze. Az így kapott összegek alapján rendezném sorba a végső listát, a legkisebb lesz az első. Egyenlőség esetén természetesen holtverseny van.
Azt, hogy beépített fv-kel hogyan oldható meg a feladat azt nehezen látom, de lehet, hogy ez csak az én tudásom korlátait mutatja. :-)
A valódi listád is olyan mint a képen lévő, hogy van név ami csak két oszlopban van ami csak egyben szerepel és egy név sem szerepel mindháromban? Vagy minden név szerepel mindhárom oszlopban csak a példa egy kicsit pontatlan?
Üdvözlünk fiatal barátunk! :-) Az algoritmus, az amire gondoltál, a szabály, ami meghatározza,hogy a befutás sorrendjében ki hány pontot kap. Ez nem exceles dolog, hanem a játékhoz tartozik. Ilyen van a forma1- ben is pl.
Ha a szabály megvan, akkor már csak számolni kell vele excelben és meghatározni az összesített eredményt.
Az jó ha magadtól jössz rá sok mindenre, mert az tartós, fejleszti az elmét, de érdemes néha kérdezni is, mert az sokat rövidít, és nem biztos, hogy mindenre neked kell rájönni! :-)
Boccs hogy sokára írtam, csak nem ültem egész nap itt :) Sajnálom, de annyira azért sajnos még nem értek az excelhez, hogy értsem, hogy mit jelent az algoritmus, de ha erre gondolsz:
úgy gondoltam, hogy a 200 értéket tartalmazó oszlopokban az első helyen álló "kap 200-at, utána lévő 199-et", stb.
Boccs ha nem erre gondoltál, elég rég használom az excelt bonyolultabb dolgokra is, de magamtól szoktam rájönni a dolgokra, és ezért az idegen szavak értelmezése kimaradt... :/
Ha illene tudnom, mi az (15 éves létemre) akkor is bocsi :|
Ha még aktuális a kérdésed akkor lehet ez egy megoldás. Lehet, hogy nem lesz mintapélda egyetemi programozás jegyzetekben de működik:
Private Sub Worksheet_Change(ByVal Target As Range) Dim listavege As Long listavege = Range("F1048576").End(xlUp).Row If Target.Row = 5 And Target.Column = 4 Then valasz = MsgBox("Az adatok be fognak kerülni a gyűjtőlistába." & Chr(10) & _"Folytatja?", vbYesNo) If valasz = vbNo Then Exit Sub Range("F" & listavege + 1).Value = Range("D5").Value Range("G" & listavege + 1).Value = Range("D8").Value End If End Sub
A munkalap Change eseményéhez van rendelve és annyit tud, hogy ha a D5-ös cellának megváltoztatod az értékét akkor felugrik egy MsgBox és rákérdez, hogy akarod-e hozzáadni a listához D5, D8 cellák értékét. "Igen" esetén beírja az értékeket a következő üres sorba "Nem" esetén pedig kilép.
Lenne egy érdekes problémám, ami lehet hogy valójában könnyedén megoldható, de nekem mégsem az...
Van egy táblázatom (a képen: a példákat egyenlőre csak beírtam...) ahol van 4 oszlop. Ezekben az oszlopokban sorrendeket fogok állítani fentről lefelé; elsőtől az utolsóig haladva. A negyedik oszlopba azt szeretném, ha az excel egy függvénnyel, amit végighúzhatok az oszlopon, összesítené az előző három oszlopban található tulajdonneveket egy végső sorrendbe.
Például, ha a "példa 1" mindháromszor első, akkor ő kerüljön az első helyre, ha meg például kétszer második, és egyszer első, és a "példa 2" kétszer első és egyszer második, akkor a "példa 2" legyen az első és a "példa 1" pedig a második, és így tovább...
Viszont így az a probléma is felmerülhet, hogy valamelyik név ugyanannyi "pontot" kap, azaz ugyanott végez, hogy azzal mit fog csinálni...
Ha készítesz egy sablon munkafüzetet, amiben a megfelelő számú munkalap van, akkor azt egy utasítással le lehet másolni, és így kvázi létrehozni az új munkafüzetet.
Ha Workbooks.Add metódust akarsz, akkor még legalább egy lépés, hogy elmented más néven (így tudsz neki nevet adni), és több lépés, hogy új munkalapokat szúrj be. Ezek szerintem nem elkerülhetők. Lásd Boraka kódját.
Egy szerintem általatok rutinműveletnek tűnő, ám számomra annál sürgősebb probléma kapcsán fordulok hozzátok.
Mivel a komplett problémát nehézkes lenne írásban magyarázni, ezért egy egyszerű iskolapéldán keresztül szemléltetem, mellékelten pedig csapolok egy képet is:
Eddig ugye semmi probléma, a számítás egyszerű függvénnyel megoldható.
Én viszont azt szeretném, hogy egy külön táblázatban egymás alá gyűjtse a fizetendő összegeket, hogyha én változtatok a gyümölcs mennyiségén az input cellában. Valahogy így:
x kg gyümölcs - "x kg gyümölcs esetén számolt összeg" y kg gyümölcs - "y kg gyümölcs esetén számolt összeg" z kg gyümölcs - "z kg gyümölcs esetén számolt összeg" stb...
- Én olyasmin gondolkodtam, hogy be kellene vonni az accest majd az ott kapott adatbázist visszaimportálni excelbe. Ez akkor lenne az ideális ha automatikusan történne. Accesben viszont nem vagyok otthon kb semennyire, de ha elmondjátok hogyan kell, meg tudom csinálni.
- Az is elképzelhető, hogy makrót kell írni, de ott is hasonló a helyzet.
Éppen ezért arra kérlek benneteket, hogy a lehető legegszerűbb megoldást mondjátok nekem, ami persze neketek is kevesebb vesződséggel jár.