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.
Az első megoldásra én is gondoltam, de sajna ez nekem nem megfelelő megoldás, mert elég sok hivatkozás is van a fileban, amit azért érdemes frissíteni. Sokat haszálom a ctrl H , tehát csere funkciót is, tehát itt is veszélyes, ha nem automatikus az újraszámolás.
Egy munkahelyi fájlról van szó. Ebben nem szerepelt randbetween függvény.
Az sem lehet, hogy azért lassú, mert olyan sok a számolnivaló a fileban, hiszen amíg magyar excelem volt, addig pergően működödtt.
A randbetween függvény két paramétere a 12420 és a 33573 az oszlopod egy részében, egy másik részében a 12420 helyett nagyobb értéket adsz. A kétféle értékkel megadott függvényt váltakozva másolod le az oszlop hosszában. :)
Az Eszközök/Beállítások menü Számolás fülén kapcsold ki az automatikus számolást, a csak kérésre gombot jelöld. A munka befejezése után állítsd vissza.
Közben F9-cel bármikor lekérdezheted az új értékeket, akkor egyszerre számolja ki az képleteket tartalmazó cellákat.
Namost az a helyzet, hogy rendben van a 1934-1991 közötti random évszám, de olyat kellene csinálni, hogy az évszámok nagy része 1991 felé közelítsen, tehát főként újabbak legyenek ezek az évszámok ( valami BIAS, vagy mi ). Van erre is lehetőség, vagy nincs? Köszi újra.
Pl. valamilyen gamma eloszlású véletlenszámot kellene levonni 33603-ból
= 33603-INT(INVERZ.GAMMA(VÉL();alfa;béta))
alfa*béta a gamma eloszlás várható értéke, ezzel tudsz játszani
Az lenne a problémám, hogy nagyon lassú az excelem. Most lett újratelepítve és angol nyelvű. Egy viszonylag nagyobb fájlal dolgozom benne. Minden egyes műveletnél, pl egyetlen egy cella ctrl C és ctrl V beillesztésénél újraszámol. Ez nagyon lelassítja, hisz egy újraszámolás akár 20 mp ig is eltarthat. Ez miinden egyes műveletnél 20 mp idő, nagyon lassú, még a formázások után is újraszámol.
Tudnátok ebben segíteni? Válaszotokat előre is köszi
Az A oszlopban számok összevissza, általában 0-1-2-3 tetszőleges sorrendben, párszáz egymás alatt.
Egy halmazmegfelelőséget szeretnék ráilleszteni. Vagyis lenne egy számsor (amik tulajdonképpen az 1+2, 2+3, 3+1-es halmazok úniói) a 12-23-31-12-23-31-12-23-31-12. Tehát ez 10 egymást követő szám (=halmazok), de mindig csak ez a 3 követi egymást ebben a sorrendben (* erre még kitérek). Ezt szeretném összehasonlítani az A oszlop elemeihez.
A B oszlopban 1-es értéket adjon eredményül, ha az A oszlop cellájában lévő érték eleme a hasonlítandó számsornak (=halmazúniónak), itt a számjegymegefelelőség a lényeg, pl ha A2=2, és a vizsgálandó számsor 12-23-31-12-23...., akkor van megfelelőség, mert a 12-ben (ez a sor első eleme!) benne van az 1-es.
--------------
* :
És most jön a neheze... mert változtatni kell a hasonlítandó számsor kezdetét ha volt előzőleg találat. Ekkor az előző értéktől függően kell kezdődnie.
Tehát találat után azzal a számmal kezdődjön a hasonlítandó számsor, amiben nincs benne az előző találati szám.
A fenti példánál maradva ha A2=2 és ugyebár itt volt a 12 miatt találat, akkor a számsor az eddigi 12-23-31-12-23.... helyett a 31-12-23-31-12... kezdetű legyen (amivel az A3 cellát hasonlítjuk), mert a 31-ben nincs benne a 2-es szám.
---------------
Ha nincs találat akkor az A oszlop következő celláját kell összehasonlítani a hasonlítandó számsor 2. elemével, ha itt sincs találat, akkor az A oszlop következő celláját a hasonlítandó számsor 3. elemével stb. Amint találat van, akkor a *-os részben leírtak szerint változik a hasonlítandó számsor.
Itt egy példa, adott: A oszlop elemei
(az aláhúzottat hasonlítom az adott sorban az A oszlop elemével)
AB megj:
1. 1 első üresen marad, mert nincs előző cella ami a sorrendet határozza meg
2. 2 1 a hasonlító sor A1=1 miatt: 23-31-12-..., van találat a 2~23 miatt, B2=1
3. 1 1 a hasonlító sor A2=2 miatt: 31-12-23-..., van találat a 1~31 miatt, B3=1
4. 2 1 a hasonlító sor A3=1 miatt: 23-31-12-..., van találat a 2~23 miatt, B4=1
5. 2 a hasonlító sor A4=2 miatt: 31-12-23-..., nincs találat 2~31 miatt, B5=üres
6. 3 a hasonlító sor A5=2, nem volt találat miatt: 31-12-23-..., nincs találat 3~12 miatt, B6=üres
7. 3 1 a hasonlító sor A6=3, nem volt találat miatt: 31-12-23-..., van találat 3~23 miatt, B3=1
8. 3 a hasonlító sor A7=3 miatt: 12-23-31-..., nincs találat 3~12 miatt, B3=üres
9. 2 1 a hasonlító sor A8=3, nem volt találat miatt: 12-23-31-..., van találat 2~23 miatt, B3=1
10.
11.
12.
13.
14.
stb.
Remélem érthetően fogalmaztam.
Van erre megoldás? Valami makró vagy akármi :) az se gond ha plusz oszlopokat kell beszúrni, legfeljebb majd utána nem képletként, hanem értékként mentem és az oszlopot törlöm. Manuálisan nekiálltam, de az az érzésem, hogy sose fogok a végére jutni. Rengeteg ilyen (és hasonló) hasonlítást kéne csinálni.
sajnos nincsenek egymás mellett vannak közte oszlopok és ez bekavar tehát, van két oszlop AG es AJ kb 150 sor tele számmal. csináltam 3. oszlopot AK névvel ahol pl a 4 sorban müködik a =MIN(AG4;AJ4) függvény ezt akarom kiterjeszteni az AK7 től az AK 168ik soráig eredményként ami az AG7 től a AG168ig terjed és persze AJ7 és AJ168 min értékeit tartalmazza
Egyből elnézést is kérek a - nyilvánvalóan - elemi kérdésemért!
Hogy a fenébe tudom visszafelé kideríteni, a számból, a dátumot??!! Mert odafelé megy. Kíváncsi lennék, hogy mikor van 40248!
Remélem, legalább "odafelé" helyes ösvényen jártam: 2009.06.11. (39975)-hez hozzáadtam 273-at (39 hét), kijött a fenti szám, de szeretném naptári alakban látni!
Nem tudtam, hogy a két cella nem egymás mellett van, a leírásból nem derült ki. Ha csak két cellát akarsz összehasonlítani, a pontosvessző jó. A kettőspont az tartományt jelent. Mit jelent az, hogy nem tudod másolni a képletet? Mi történik, ha megpróbálod?
ok ez a MIN függvény jó, annyira javitottam ki hogy a kettospont beszámitja a két oszlop közötti értékeket is és kijavitottam pontosvesszore mert vannak közte oszlopok amik értéke nem kell!
viszont ezt a képletet alkalmaznom illetve másolnom kell vagy 200 sor értekeire és nem tudom másolni:-( kettösponttal adjam be a cellák szélsöértékeit?
Ez függvénnyel nem fog menni, pontosan a körkörös hivatkozás miatt. A függvénynek bemenő paramétere a B oszlop. Ha azt felülírod az eredménnyel, akkor a függvény egyik paramétere elvész, és értelmetlenné válik az egész.
Ezt a problémát képletekkel csak úgy lehet megoldani, ha az eredmény egy harmadik oszlopba kerül. Pl. C-be teszed az A és B közül a kisebbet. Aztán visszamásolod a C tartalmát a B-be, de az értékek irányított beillesztésével.
sziasztok , tud vki segiteni? adott egy excel tábla számokkal kb 50 db egy oszlopban 2db oszlop A es B van két oszlop. az B. oszlopban teljesulnie kéne annak a feltételnek hogy ha az A oszlopban lévo szám kissebb mint a B.ben akkor a A oszlopban lévő szám legyen a Bben probáltam IF ill. HA fügyvénnyel körkörös hivatkozással nem jo magyar excel 2003 van köszi
Hát az attól függ... Megmondom, mi a gondom. Ahogy most látom, szóban forgó feladatra makrót írni nem tűnik nagy kihívásnak. Úgy saccolom, kb. 20-25 percet venne igénybe teszteléssel együtt. De csak akkor, ha teljesen képben lennék.
Mondok egy konkrét példát, hogy megértsd. A feladat egy része így szól: "Az összesítés az adatsorok alatt történik, tehát egy újabb lap esetén az új adatsort az utolsó adatsor és az összesítő sor közé kell beszúrni."
Beszúrás előtt a makrónak meg kell keresni az összesítő sort, hogy a beszúrást megfelelően pozicionálni lehessen. Ha az összesítő sor alatt semmi más nincsen a munkalapon, akkor egyszerű dolgunk van: van egy egyszerű algoritmus, ami kiadja az utolsó használt sor pozícióját, és ez egyúttal az összesítő sor pozíciója is. De ekkor sem mindegy, hogy az összesítő sor felépítése milyen. Minden oszlopban tartalmaz adatot? Vagy csak néhányban? Van olyan oszlop, amelyikben biztosan tartalmaz adatot?
Ha pedig az összesítő sor nem a legalsó, akkor ez az algoritmus nem használható, másikat kell találni. Például lehet az összesítő sornak egyedi színe, lehet az első cellájában valami egyedi érték, egyedi megjegyzés, és ezek alapján is meg lehet találni.
Nem akarom túlmisztifikálni a dolgot, de azt meg kell értened, hogy a megfelelő algoritmus kiválasztásában minden részlet számít. Ehhez vagy látnom kell a táblázatot, vagy neked kell részletesen leírnod a felépítését. Esetleg mindkettő, ha nagyon bonyolult esettel állunk szemben. Ha elküldöd a táblázatod emailben, megcsinálom neked ezt a makrót. Ez az egyszerűbb út. Ha nem küldöd el, mert titkos adatokat tartalmaz, vagy akármi, akkor a dolog bonyolultsága attól függ, mennyire hatékonyan tudjuk a részleteket megbeszélni.
Ha nem értesz "makrónyelven", akkor még az is ott van, hogy nem tudod módosítani, ha esetleg később szükségessé válik.
Az összesítő lapon minden újabb lapról két adat kerül egy újabb sorba, s ebből az egyik adatoszlop összesítésre kerül. Az összesítés az adatsorok alatt történik, tehát egy újabb lap esetén az új adatsort az utolsó adatsor és az összesítő sor közé kell beszúrni.
A makróval kapcsolatos ismereteim még szegényesebbek, nem tudom mennyire bonyolítanák el a dolgot.
Köszi szépen! A biztonság kedvéért külön excelfájlban csináltam meg ezeket a műveleteket, aztán értékként visszamásolom. Nem merem megkockáztatni, hogy valamit felülírjon.
Más téma:
van A és B oszlop
az A-ban 1-től 3-ig vannak számok, a B-ben 12, 23, 31 (csak ez a 3 szám), tulajdonképpen a 12 az 1 és 2-t, 23 az 2 és 3-t stb. takar.
Szóval a 12, 23, 31 két halmaz únióját jelenti, és azt kéne vizsgálni, hogy az A oszlop cellája (értéke) eleme-e ennek az úniónak. Ha igen, akkor 1-et kell eredményül adnia, ha nem eleme, akkor üresen hagyni.
példa (C az eredmény (keresett függvény) oszlopa):