Keresés

Hirdetés

Új hozzászólás Aktív témák

  • Mutt

    aktív tag

    válasz m.zmrzlina #15663 üzenetére

    Range(oszlop1&":"&oszlop2).Columns.count-1

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz terencehill #15685 üzenetére

    Hello,

    Ez tényleg érdekes. Röviden a SZÓRÁS (angol változatban a STDEV) függvény helyett használd a SZÓRÁSP (STDEVP) függvényt.

    A szórás függvény a súgó szerint egy statisztikai sokaság mintájából kiszámítja annak szórását.
    Miközben a szórásp függvény a teljes sokaság szórását számolja.

    Minél több értéked van a két függvény eredménye annál közelebb lesz egymáshoz.

    üdv

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz pero19910606 #15692 üzenetére

    Hello.

    Szerintem álltsd át Windows-ban a területi beállításokban a szám és időformátumokat magyarra (Control Panel -> Regional settings).

    Ha nem akarod. hogy a Windows-ban minden magyar területi beállátassal menjen, akkor pedig Excel 2010-ben a File -> Options -> Advanced részben módosítsd a "Use system separator" beállításokat.

    Végső megoldásként a számformátumot is módósthatpd pl. erre #\ ###\ ###\ ##0 (1234567890-ből 1 234 567 890 lesz, a tizedesjegyekkel nem jó).

    üdv

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz Geryson #15764 üzenetére

    Hali.

    Ha a D-oszlopban a cellák egymás alatt folyamatosan ki vannak töltve akkor így is lehet
    =A10+B10+C10+OFFSET($D$1;COUNT($D:$D)-1;0)

    Magyar Excelben az OFFSET-et ELTOLÁS-nak hívják, a COUNT-ot pedig DARAB-nak.

    üdv.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz Mutt #15767 üzenetére

    Ha nem összefüggő a D-oszlopban a tartomány akkor ez műkődik:

    {=A10+B10+C10+OFFSET($D$1;MAX(IF(D:D>0;1)*ROW(D:D))-1;0)}

    [ Szerkesztve ]

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz poffsoft #15771 üzenetére

    Hello,

    valami elállítódott az excelemben...

    Próbáld meg az alábbiakat:
    1. Indítsd el safe módban az Excelt (Start menü -> Futtatás -> excel /safe vagy Shift-et nyomva indítsd).
    Ha ekkor nem csinálja, akkor vmilyen beépülő okozza.
    2. Nézd meg hogy nincs-e esetleg makró, ami ezekhez a kombinációkhoz rendelve (Fejlesztőeszközök -> Makrók -> Egyebek)
    3. Ha van Skype-od akkor Eszközök -> Beállítások -> Gyorsbillentyűket kapcsold ki, vagy nevezd át.

    üdv.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz poffsoft #15773 üzenetére

    Valószínű hogy ha megoldod az elállítódott billentyűparancsokat, akkor ez is meg fog oldódni.

    Alternatív megoldás lehet, hogy a gyorsparancsok eszköztárra tedd ki a Fájl lap -> Kilépés parancsát és használd ezt a teljes bezáráshoz.

    Egy másik megoldás lehet a Fájl -> Beállítások -> Speciális -> Megjelenítés részben "Az összes ablak megjelenítése a tálcán" opció kikapcsolása.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz poffsoft #15779 üzenetére

    Nézd meg, hogy ha az XLSTART mappában nincsene fájlok akkor is furcsán viselkedik-e az Exceled. Átmenetileg vedd ki innen az összes fájlt.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz Vladek83 #15769 üzenetére

    Az A1 cella tartalmaz érvényesítési listát (pl.: alma, körte), most ha elfogy valamelyik, akkor üres cellát kell, hogy adjon, viszont szeretném továbbra is a listából kiválasztani az adott gyümölcsöt

    Remélem jól értettem, hogy mire van szükséged. Itt megnézheted, hogy mire jutottam.

    A megoldás nem egyszerű, de itt vannak a lépések. Én Validation-ként neveztem el a lapot, amelyen ezeket kell csinálnod:
    1. Az eredeti lista (pl. alma, körte stb. ABC sorrendben). Az elemek A2-es cellától indulva vannak felsorolva.
    2. Az A1-es cella legyen üres.
    3. Jelöld ki az A1:Axx cellákat (xx az utolsó sor ahol van még elemed) és ezt a tartományt nevezd el, én "original"-nak hívtam.
    4. B1 cellába másold be ezt a képletet: =DARAB2(A:A)
    vagyis megszámoljuk, hogy hány elemet vittél be az A-oszlopba, ezt még használni fogjuk később.
    5. B2-be írd be ezt:
    =HA(C2="";"";DARABTELI(ELTOLÁS($C$2;0;0;$B$1);"<="&C2))
    ez a függvény majd abban segít hogy az érvényesítésnél ABC sorrendbe tesszük a megmaradt elemeket
    6. B2-beli függvényt húzd le (másold) legalább annyi sorig ahány elemed van.
    7. C2-be menjen ez: =HA(HIBÁS(HOL.VAN(A2;[B]Data!A:A[/B];0));A2;"")
    ez megkeresi hogy a Data fülön (a képletben ezt javítsd a saját névre) ahol kiválasztod a termékeket, már megtalálható-e valamelyik eleme
    8. C2-beli függvényt húzd le (másold) legalább annyi sorig ahány elemed van.
    9. D2-be kell ez:
    =HAHIBA(FKERES(KICSI(ELTOLÁS($B$2;0;0;$B$1);SOR()-1);ELTOLÁS($B$2;0;0;$B$1;2);2;0);"")
    ez a képlet ABC sorba rendezi azokat az elemeket, amelyeket még nem használtál a Data fülön
    10. D2-beli függvényt húzd le (másold) legalább annyi sorig ahány elemed van.
    11. E1-be tedd ezt: =DARABTELI(D:D;">""")
    egyszerűen megnézzük hogy hány elemet kell majd az érvényesítésnél használni

    Már csak 1 képlet maradt! Amit a Képletek -> Névkezelőben kell megadnod. A neve legyen mondjuk "valasztas".

    12. A hivatkozásba pedig menjen ez:
    =HA(Validation!$E$1=0;original;ELTOLÁS(Validation!$D$2;0;0;Validation!$E$1))
    Ez kiválasztja a maradék elemeket, vagy ha már mindent elhasználtál akkor az eredeti listát.

    Kész is vagy, már csak a Data fülön kell az érvényesítést használnod. Válaszd a lista opciót és forrásnak ezt írd be: =valasztas

    Vége.

    Ps.
    Ahogy látod többször használom a dinamikus tartományokat (ELTOLÁS függvény kombinálva a DARAB függ-nel), amelyek főleg érvényesítésnél tudnak jók lenni.
    Ezen az oldalon nagyon profin leírják, hogy még miként lehet érvényesítésnél dinamikus tartományokat használni.

    [ Szerkesztve ]

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz klambi #15790 üzenetére

    A HÉT.NAPJA függvénynek van paramétere, hogy melyik nappal kezdődik a hét, alapból vasárnap, de átállíthatod hétfőre. A lényeg a 2 (vagy 11).

    =HA(HÉT.NAPJA(A1;2)>5;"hétvége";"hétköznap")

    [ Szerkesztve ]

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz Kloden #15853 üzenetére

    Hello,

    Már javasolták a HOL.VAN és INDEX opciókat, itt láthatod műkődés közben amit összeraktam (főleg HOL.VAN és ELTOLÁS-t használva).

    A fájlban az Órarend munkalapon van amiben keresünk, A-oszlopban vannak a hetek, a B-ben pedig az időpontok, a C-G oszlopokban a napi (hétfő, kedd, sb.) tanórák.

    Két megoldással is készültem:
    Az első nagyon egyszerű, mivel az aktuális hetet megjeleníti és elrejti egy egyszerű feltételes formázással a ki nem választott tantárgyat. A képernyő mentésen ezt látod felül.

    Ide elég kevés függvény kell:
    1. C1 cellában az aktuális hét sorszáma: =HÉT.SZÁMA(MA())
    2. C2 cellában van egy függvény: =HOL.VAN(C1;Órarend!A:A;0) , ezt egyszerűen fehér alapon-fehér betűszínnel elrejtettem, de megmondja, hogy az adott hét az Órarend táblának hanyadik sorában kezdődik.
    2. E2-ben van egy egyszerű adat érvényesítés (data validation).
    3. C4-ben ez van: =ELTOLÁS(Órarend!C$1;$C$2+SOR()-3;0)

    A C4 függvényt másold C4:G12 tartományba, ezzel eléred hogy mindig az aktuális teljes hetet fogod itt látni.
    A végső simítás már csak hogy elrejtsük feltételes formázással azon cellákat, amelyek nem egyenlőek E1-el.

    Én még itt kavartam egy kicsit, vagyis amikor nincs kiválasztva egy tantárgy, akkor mindent mutasson, így a függvényem: =ÉS($E$1<>C4;$E$1<>"")
    Ha ez a függvény igaz, akkor a cella betűszíne a háttérszínre állítódik.

    Készen is van.

    A második megoldás a képernyőn alul látható, amely szövegesen kiírja hogy melyik napon, melyik órában van a kiválasztott tantárgy. Ennek a megoldása már sokkal bonyolultabb, mivel az Excel számokban érzi jól magát és szövegekkel dolgozni sokkal nehezebb.

    Kell egy segédszámolás, hogy tudjuk melyik nap/melyik óra érintett. Ezt a számolást én a H17:M26 tartományban végeztem.
    1. H17-ben ez a függvény: =HOL.VAN(C1;Órarend!A:A;0)+1
    2. I17:M17-ben számok 1-től 5-ig vannak (1 hétfőt jelenti, 2 keddet stb).
    3. H18:M26-ban számok 8-tól 16-ig vannak az időpontok.
    4. I18-ban egy összetett függvény van: =HA($E$1="";(I$17+$H18/100);HAHIBA(HOL.VAN($E$1;ELTOLÁS(Órarend!C1;$H$17;0);0)*(I$17+$H18/100);""))
    Ezt 2 részből áll:
    - a második része (a HAHIBA-tól kezdődő) ugyanazt csinálja, mint az első megoldásban, vagyis az aktuális hét egy adott időpontját kiírja és ha az megegyezik a kiválasztott tantárggyal (ami E1-ben van), akkor ad egy számot. Ez a szám a tantárgy poziciója (pl. 2,09; amely azt jelenti hogy a második napon 09 órakor van a tantárgy).
    - az első része akkor ugrik be, amikor nincs kiválasztva E1-ben tantárgy.
    5. Az I18-ban lévő függvényt másold át I18:M26 tartományra.

    A segédtábla kész, esetleg rejtsd el majd

    Jöhet a kiíratás, hogy mikor vannak találatok.
    D16-os cellába tettem egy hosszű függvényt: =HAHIBA(VÁLASZT(INT(KICSI($I$18:$M$26;SOR()-15));"Hétfő";"Kedd";"Szerda";"Csütörtök";"Péntek")&" - "&INT((KICSI($I$18:$M$26;SOR()-15)-INT(KICSI($I$18:$M$26;SOR()-15)))*100)&" óra";"")

    Ennek a magja a KICSI(tömb;k) függvény, amely a tömbből a k-adik elemet adja vissza.
    Esetünkben a tömb a segédtábla, amelyben vagy üres mezők vagy poziciókat jelölő számok (pl. 4,12) vannak.
    A függvény többi része ezt a számot alakítja át. Előbb veszi az egész részét és az annak megfelelő napot kiírja (pl. 4 - Csütörtök), majd az időponthoz veszi a maradék részét (0,12) megszorozza 100-al hogy egész legyen.

    Vége.

    [ Szerkesztve ]

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz Kloden #15866 üzenetére

    Hello,

    Adatok érvényesítésével tudod megoldani, az Adatok csoportban van az Érvényesítés.
    Itt egy video hozzá.

    A listának több módon lehet megadni az elemeit:
    1. pontosvesszővel felsorolod a választható elemeket a forrásba
    validation

    2. kijelölsz egy tartományt, amely tartalmazza az elemeket (pl =A1:A11)

    üdv

    Amit elfejtettem a második leírásnak a végén, hogy a D16-ban lévő függvényt húzd le addíg amennyi találatot megakarsz jeleníteni (én D26-ig tettem, vagyis az első 10 találatot fogja mutatni).

    [ Szerkesztve ]

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz lappy #15870 üzenetére

    Szia,

    Feltettem az eredeti Excel fájlt ide. Beleírtam pár kommentet.
    A videót nem tartottam meg, így csak a http://megaswf.com/file/2533440 link maradt.

    üdv.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz petro3355 #15871 üzenetére

    Hello,

    Alapból nem lehet ilyet beállítani, de van rá 2 megoldás:

    1. Feltételes formázással (conditional formatting). A képlet egyszerű:
    =MARADÉK(SOR();2)

    Ennek előnye, hogy könnyedén megváltoztathatod, hogy ne minden második, hanem pl. minden harmadik sor legyen eltérő.

    2. A 2007 is ismeri a Táblázat funkciót, amely az összefüggő adatok kezelésében tud segíteni. A tábla stílusát lehet könyedén változtatni; van köztük váltakozó sort használó formátum. Ime egy Youtube video róla.

    üdv.

    [ Szerkesztve ]

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz kymco #15875 üzenetére

    Szia,

    Ezt függvénnyel nem tudod megoldani, makró kell hozzá.

    A makrót a munkalap Change eseményére kell tenned, mivel ez fut le cella módosításkor.

    Itt egy egyszerű példa:
    Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Row > 1 And Target.Column = 2 Then
    Range(Target.Address).Offset(, 3) = Now()
    End If

    End Sub

    Ahol
    - a Target.Row > 1 azt jelenti, hogy az első sort figyelmen kívül hagyjuk (általában itt van a fejléc)
    - a Target.Column = 2 megmondja, hogy csak a második oszlopot figyeljük (ez nálad biztosan más)
    - a Range(Target.Address).Offset(, 3) -al adjuk meg, hogy az éppen módosított cellától jobbra 3-al lesz majd ahova az időbélyeget (a most függvény aktuális értékét, nem a függvényt!) tesszük.

    üdv.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz WildBoarTeam #15878 üzenetére

    Hello,

    Ahogy már mondták így látatlanban sokat nem tudunk mondani, de azért az Excel tud adni egy standard megoldást. Az Űrlapok adatbevitelben tudnak segíteni, régebben az Adatok menüben volt, de most már nincs kint az alapértelmezett eszköztáron így neked kell testreszabással kirakni.

    Egyszerűen használható, tudsz vele egyből menteni és visszakeresni korábbi rekordokat.
    Viszont adatellenőrzésre (érvényesítés/data validation) nem alkalmas.

    Békés és boldog karácsonyt!

    üdv.

    [ Szerkesztve ]

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz poffsoft #15888 üzenetére

    Hello,

    Ha csak ennél a fájlnál viselkedik, akkor ne engedd futtatni a makrókat a fájlban.

    Ha safe módban indítod az Excelt akkor is így viselkedik? Nyomj Shift-et amikor indítod az Excelt vagy a /safe kapcsolóval indítsd parancssorból.
    Ha ekkor minden rendben akkor az XLSTART mappában lévő fájlol vmelyike a bűnös, mozgasd el innen a fájlokat és így probáld ki az Excelt.

    Üdv.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz D5 #15889 üzenetére

    Hello,

    Ha jól értem akkor kvázi egy függvény táblát akarsz csinálni, amely megad egy adott értékhez egy másikat.
    Ha létezik egyértelmű képlet amely segítségével számolható az eredmény, akkor 3 megoldás is van:
    1. Az egyik oszlopban felsorolod a bemeneti értékeket (10%,20% stb), majd mellette a képlettel elvégzed a transzformációt.
    2. Használod az Excel Adattábla opcióját (Adatok fül Adateszközök csoportjában van).
    3. UDF (user defined function) létrehozása VBA-ban és annak használata.

    Ha nincs zárt képlet a transzformációra, akkor marad a Célértékkeresés, amely viszont egyszerre csak egy bementi és kimeneti adattal boldogul, így nem fogsz tudni vele igazán haladni.

    Ha többet megosztasz velünk, akkor lehet hogy konkrét megoldásokat is tudunk adni.

    Üdv.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz Zenebohoc #15886 üzenetére

    Hello,

    Megmagyarázhatatlan méretnövekedést okozhat az, hogy egy formázást az Excel nem csak a kijelölt adatokon, hanem egy egész oszlopon (annak is mind az 1millió során) vagy az egész sor 16ezer oszlopán végrehajtja mégha nincs is bennük érték.
    Próbáld meg levenni a formázást az üres cellákról:
    1. Kezdőlap fülön Szerkesztés csoportban az Irányított kijelölés opciót (gyorsabb ha F5-öt nyomsz majd Irányított opciót) indítod.
    2. Üres cellák opciót kiválasztod, majd Ok.
    3. Kezdőlapon Szerkesztés csoportban az Összes tőrlése opciót használod.
    4. Menj el az utolsó használt sor alá, jelöld ki a sort. Majd Ctrl+Shift+le nyillal jelöld ki az összes maradék sort.
    5. Itt is használd a 3-as pontban leírt összes tőrlését.
    6. Menj el az utolsó oszlop után és Ctrl+Shift+jobbra nyillal jelöld ki a többi oszlopot.
    7. Innen is törölj mindent.
    8. Más névvel mentsd a fájlt.

    Üdv.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz D5 #15898 üzenetére

    Hali,

    Ez esetben a következő makró tud neked segíteni:

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim vLastRow As Integer
    Dim wSheet As Integer

    If Target.Address = Range("Input").Address Then
    'ha az utolsó lapon vagyunk akkor létrehozunk egyet
    If ActiveSheet.Name = ThisWorkbook.Sheets(Sheets.Count).Name Then
    wSheet = ActiveSheet.Index
    Sheets.Add After:=Sheets(Sheets.Count)
    Sheets(wSheet).Activate
    End If

    'megnézzük az utolsó munkalapon az utolsó használt sort
    vLastRow = Application.WorksheetFunction.CountA(ThisWorkbook.Sheets(Sheets.Count).Range("A:A")) + 1

    'az utolsó sor alá A és B oszlopba beszúrjuk a kezdő és végértéket
    ThisWorkbook.Sheets(Sheets.Count).Range("A" & vLastRow) = [input]
    ThisWorkbook.Sheets(Sheets.Count).Range("B" & vLastRow) = [output]

    End If
    End Sub

    A kódot a munkafüzetbe kell tenned, ahol van az adatsorod. A bemeneti (változó) cellád nevezd el "input"-nak, az eredményt pedig "output"-nak. Ezek után ha a bemeneti cellád módosítod, akkor a kód az utolsó munkafüzeten (és annak is az A-oszlop utolsó sorában) elkezdi gyűjteni a bemeneti és kimeneti adatokat.

    A fájlt feltettem ide: http://www.filedropper.com/fuggvenytabla
    Az Adatmentés fülön van ami neked kell.

    Az első fülön egy másik megoldás van, amellyel egy már létező táblázatból tudod kikeresni az értékeket.
    Ez most nálad ne biztos, hogy műkődne, de hátha ebből is tudsz vmit hasznosítani.

    üdv.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz repvez #15902 üzenetére

    Hello,

    Pont az előbbi hozzászólásomban van egy ilyen megoldás, amely a metszéspontban (M4 és N4 cellában választható) lévő eredményt adja meg. 2 megoldás is van:

    1. FKERES függvény használata,úgy hogy a visszatérési oszlop értékét számolod (én HOL.VAN-t használtam)
    2. ELTOLÁS függvénynél pedig a sor- és oszlop-mozgásokat számolod ki.

    A minta fájl letölthető innen: http://www.filedropper.com/fuggvenytabla

    Az első munkalapon van a példa és megoldása.

    üdv.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz repvez #15913 üzenetére

    Szia,

    Ezek a képletek fognak jól műkődni:

    =OFSZET($L$3;HOL.VAN($D$3;$L$4:$L$12;0);HOL.VAN($C$3;$M$3:$Q$3;0))

    Az eltolás (ofszet) úgy műkődik, hogy egy referencia céllától (esetedben a keresendő táblázat origójától L3-tól) adott SOR-t és OSZLOP-ot mozog. Tehát előbb le-fel és utána balra-jobbra lehet innen mozogni. A fenti két HOL.VAN kiszámolja, hogy mennyit kell le, majd jobbra menni.

    Másik megoldás a VKERES-sel:

    =VKERES($C$3;$M$3:$Q$12;HOL.VAN($D$3;$L$4:$L$12;0)+1;0)

    Tehát itt előbb megnézzük, hogy melyik oszlopban (pl. alacsony) kell lemenni hány sort (mivel az első sor maga a fejléc ezért +1-el kell lejjebb mennünk.

    .. vagy FKERES-sel

    =FKERES($D$3;$L$3:$Q$12;HOL.VAN($C$3;$M$3:$Q$3;0)+1;0)

    .. vagy INDEX-el

    =INDEX($M$4:$Q$12;HOL.VAN($D$3;$L$4:$L$12;0);HOL.VAN($C$3;$M$3:$Q$3;0))

    Itt a logika hasonló az ELTOLÁS-hoz, csak itt egy tömbből (ez az adatsorod fejléc nélkül, vagyis M4:Q12 tartomány) az adott SOR és OSZLOP elemét választjuk ki.

    Végül egy elvetemült megoldás:

    =INDIREKT("S"&HOL.VAN($D$3;L4:L12;0)+CELLA("sor";$L$3)&"O"&HOL.VAN($C$3;$M$3:$Q$3;0)+CELLA("oszlop";$L$3);0)

    Ez R1C1 formátumban kiszámolja a metszeti cella kordinátáit és visszaadja az ott lévő értéket.

    A sok megoldás közül javasolt az FKERES/VKERES vagy INDEX-es megoldás, mivel azokban nincs volatile függvény így kicsit gyorsabbak és kevesebb erőforrást használnak. Az ELTOLÁS, INDIREKT és CELLA függvényeket a munkalap minden egyes változásakor az Excel újraszámolja (kivétel ha ez az opció ki van kapcsolva).

    üdv.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz RAiN91 #15907 üzenetére

    Hello.

    O2-be mehet ez a képlet és húzd le:
    =SZUMHA(M:M;M2;N:N)

    Azonban ennek az a hátránya, hogy ismételni fogja az értékeket minden Mephisto-nál, így többször fogod látni ugyanazt a számot.

    Ha csak egyszer szeretnéd látni, akkor lehet használni KIMUTATÁST (Pivot), vagy egy ilyen képletet is:
    =HA(DARABTELI($M$1:M2;M2)=1;SZUMHA(M:M;M2;N:N);"")

    Ez két részből áll:
    - a második rész a már korábban leírt SZUMHA
    - az első rész pedig megnézi, hogy volt-e már pl. Mephisto vagy sem. Itt fontos hogy a DARABTELI-ben egy abszolút hivatkozással kezdünk, amit relatívval folytatunk!

    Végül pedig ha nem volt még Mephisto, akkor kiírja a SZUMHA eredményét, ha pedig volt akkor nem ír ki semmit ("").

    üdv.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz MTbc #15935 üzenetére

    Hello,

    Ha a lenti megoldás is jó, akkor a HELYETTE (SUBSTITUTE) függvényt használd.

    B2-ben: =HA(HIBÁS(SZÖVEG.KERES("VTSZ: ";$A2));"";HELYETTE($A2;"VTSZ: ";""))
    C2-ben: =HA(HIBÁS(SZÖVEG.KERES("SZJ: ";$A2));"";HELYETTE($A2;"SZJ: ";""))

    üdv

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz lacid90 #15975 üzenetére

    Hello,

    Hogyan lehet egy cella értékét eltárolni úgy, hogy lenullázás után is valahol megmaradjon az értéke.

    A munkalap SelectionChange és Change eseményére kell tenned makrókat.
    A Change csak akkor fut le amikor a cella értéke már megváltozott, itt a korábbi értéket már nem látod, ezért érdemes amikor a cellát kiválasztod (ez a SelctionChange) megjegyezni a korábbi értéket.

    Feltöltöttem egy lehetséges megoldást ide
    http://www.filedropper.com/15975backup

    Próbáltam több logikát is beépíteni, amit a kommentek alapján akár te is ki tudsz ütni.
    1. Nyit egy új munkalapot (Backup névvel) és oda menti az eredeti értéket, vmint a módosult cella címét.
    2. Csak akkor ment, ha a cella tényleg megváltozik, ha ugyanaz kerül be akkor nem ment. Ha erre nem tartasz igényt akkor töröld ezt a részt:
    vEredeti <> Target.Resize(1, 1).Value
    3. Nem ment akkor sem, ha üres cella volt eredetileg. Ha ez sem kell, akkor ezt vedd ki:
    And vEredeti <> ""
    4. Ha egy cellában egy képlet van, akkor a képletet másolja és nem az eredményét. Ha ezzel nem akarsz élni, akkor a SelectionChange-ben csak ez legyen:
    vEredeti = Target.Resize(1, 1).Value
    bFuggvenytTartalmaz = False

    Hátrányok:
    1. Érvényesítést (Data Validation-t) használó celláknál nem megy.
    2. Több cella egyidejű módosításakor csak a tartomány bal felső sarkában lévő cellára megy (ennek kikerülésére a második lapon próbáltam egy másik megoldást is csinálni, de az sem 100%-os).
    3. Nem teszteltem túl, ezért lehet benne hiba.

    Itt a kód, ha a fájl már nem lenne letölthető:

    Option Explicit
    Public vEredeti 'ez tartalmazza majd az eredeti értéket
    Public bFuggvenytTartalmaz As Boolean 'ez akkor lehet hasznos ha függvényből jön a cella érték

    Private Sub Worksheet_Change(ByVal Target As Range)
    Const vBackupSheet As String = "Backup"
    Dim vLastRow
    Dim wsNew As Worksheet
    Dim wsCurrent As String

    'ha az eredeti és az új érték eltér és eredetileg nem üres volt a cella akkor módosítunk
    If vEredeti <> Target.Resize(1, 1).Value And vEredeti <> "" Then

    'megnézzük hogy létezik-e a munkalap ahova a korábbi értékeket mentjük
    On Error Resume Next
    Set wsNew = Worksheets(vBackupSheet)
    If Err Then
    wsCurrent = ActiveSheet.Name
    Set wsNew = Sheets.Add
    With wsNew
    .Name = vBackupSheet
    'ha akarod akkor a lenti sorral rejtetté tudod tenni a lapot
    '.Visible = xlSheetHidden
    End With
    Sheets(wsCurrent).Activate
    End If

    'megnézzük hogy melyik az utolsó sor a backup munkalapon (a B oszlopban mindig lesz érték)
    vLastRow = Application.WorksheetFunction.CountA(ThisWorkbook.Sheets(vBackupSheet).Range("B:B")) + 1

    'ha már nincs a munkalapon több üres sor akkor leállunk a naplózással
    If vLastRow > ThisWorkbook.Sheets(vBackupSheet).Rows.Count Then
    MsgBox "Nincs több hely a mentésre!", vbOKOnly, "Hiba"
    Exit Sub
    End If

    'adunk egy fejlécet a backup munkalapnak
    If vLastRow = 1 Then
    ThisWorkbook.Sheets(vBackupSheet).Range("A" & vLastRow) = "Eredeti érték"
    ThisWorkbook.Sheets(vBackupSheet).Range("B" & vLastRow) = "Módosított cella"
    vLastRow = vLastRow + 1
    End If

    'mentjük az eredeti értéket és hogy melyik cellából jött
    If bFuggvenytTartalmaz Then
    ThisWorkbook.Sheets(vBackupSheet).Range("A" & vLastRow) = "'" & vEredeti
    Else
    ThisWorkbook.Sheets(vBackupSheet).Range("A" & vLastRow) = vEredeti
    End If
    ThisWorkbook.Sheets(vBackupSheet).Range("B" & vLastRow) = Target.Resize(1, 1).Address
    End If

    End Sub

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    'ha függvényt tartalmaz a cella, akkor a függvényt másoljuk, különben az értékét
    If Range(Target.Address).Resize(1, 1).HasFormula Then
    vEredeti = Target.Resize(1, 1).Formula
    bFuggvenytTartalmaz = True
    Else
    vEredeti = Target.Resize(1, 1).Value
    bFuggvenytTartalmaz = False
    End If

    End Sub

    üdv.

    [ Szerkesztve ]

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz lacid90 #15981 üzenetére

    Hello,

    A megadott adatok alapján faragtam a kódon és felraktam egy mintát ide.

    A kód pedig így néz ki, továbbra is egy Backup munkalapra menti a módosításokat:

    Option Explicit
    Public vEredeti 'ez tartalmazza majd az eredeti értéket

    Private Sub Worksheet_Activate()

    'ha megnyitjuk a lapot akkor egyből jegyezzük meg hogy mi van a B1 cellában
    vEredeti = ActiveSheet.Range("B1").Value

    End Sub

    Private Sub Worksheet_Change(ByVal Target As Range)
    Const vBackupSheet As String = "Backup"
    Dim vLastRow
    Dim wsNew As Worksheet
    Dim wsCurrent As String

    'ha a C1 cella értéke 0 vagy üres
    If ActiveSheet.Range("C1").Value = 0 Or ActiveSheet.Range("C1").Value = "" Then

    'megnézzük hogy létezik-e a munkalap ahova a korábbi értékeket mentjük
    On Error Resume Next
    Set wsNew = Worksheets(vBackupSheet)
    If Err Then
    wsCurrent = ActiveSheet.Name
    Set wsNew = Sheets.Add
    With wsNew
    .Name = vBackupSheet
    'ha akarod akkor a lenti sorral rejtetté tudod tenni a lapot
    '.Visible = xlSheetHidden
    End With
    Sheets(wsCurrent).Activate
    End If

    'megnézzük hogy melyik az utolsó sor a backup munkalapon
    vLastRow = Application.WorksheetFunction.CountA(ThisWorkbook.Sheets(vBackupSheet).Range("A:A")) + 1

    'ha már nincs a munkalapon több üres sor akkor leállunk a naplózással
    If vLastRow > ThisWorkbook.Sheets(vBackupSheet).Rows.Count Then
    MsgBox "Nincs több hely a mentésre!", vbOKOnly, "Hiba"
    Exit Sub
    End If

    'adunk egy fejlécet a backup munkalapnak
    If vLastRow = 1 Then
    ThisWorkbook.Sheets(vBackupSheet).Range("A" & vLastRow) = "Eredeti érték"
    vLastRow = vLastRow + 1
    End If

    'mentjük az eredeti értéket és hogy melyik cellából jött
    ThisWorkbook.Sheets(vBackupSheet).Range("A" & vLastRow) = vEredeti
    End If

    End Sub

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    'ha az A1 cellára lépünk, csak akkor jegyezzük meg a B1 értékét
    If Target.Address = "$A$1" Then
    vEredeti = ActiveSheet.Range("B1").Value
    End If

    End Sub

    Ami pluszt beletetettem, hogy a munkalap megnyitásakor már megjegyzi az eredeti értéket, mivel előfordulhat az az esete hogy éppen az A1 cellában állsz és az értéket felülírod mozgás nélkül.
    Fontos, hogy a makró csak akkor műkődik ha az A1 cellába mindig visszamész, vagyis ha mindig a szerkesztősorban változtatod a cella értékét akkor nem fog műkődni mert a cellából nem mész el.

    üdv.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz -Mike- #16000 üzenetére

    Hello,

    Többen is dobtak be jó megoldásokat, én is csináltam egy változatot rájuk. Innen letölthető.

    A tökéletes DARABTELI (COUNTIF) megoldás helyett azonban egy array (tömb) képletet használtam, mivel rövidebb annál. Pl. a skandinávnál (7 szám esetén már elég látványos).

    DARABTELI változat:
    =DARABTELI(C2:I2;$J$1)+DARABTELI(C2:I2;$K$1)+DARABTELI(C2:I2;$L$1)+DARABTELI(C2:I2;$M$1)+DARABTELI(C2:I2;$N$1)+DARABTELI(C2:I2;$O$1)+DARABTELI(C2:I2;$P$1)

    Array változat:
    {=SZUM(DARABTELI(C2:I2;$J$1:$P$1))}

    Az array változat pont úgy működik mint a normál, csak nem egy értéket, hanem egy tömböt add vissza.
    pl. {0;1;1;0;0,0;0} ami azt mondja hogy a második és harmadik húzott számot eltaláltuk, a többit nem.
    Ezeket már csak össze kell adni a végeredményhez.

    A skandinávnál mivel lehet a gépi és kézi-húzásban is találatunk, ezért ott lehet számolni mindkettőre a találatokat. Vagy a képleteket összevonva egy oszlopban (a példámban S) számolni és kiválasztani a jobbat.

    A Jóker-en biztos van rövidebb megoldás, de rövidítve leírom hogy mit alkottam:
    1. Összefűzöm (a &-jel lehet használni az ÖSSZEFŰZ függvény helyett) előbb az utolsó 2 számot, majd összehasonlítom a szintén összefűzött 2 referencia (tipp) számokkal. Az eredmény vagy IGAZ vagy HAMIS lesz (1 vagy 0 számokkal).
    2. Az eredményt szorzom 2-vel, hogy tudjam ha 2 találatom van. Az eredmény lehet 0=2x0 vagy 2=2x1.
    3. Összefűzöm a 3 utolsó számot és a 3 refernciát, szintén összehasonlítom és az eredményt szorzom 3-al.
    4. Ezt végigcsinálom 6-ig.
    5. A kapott számokból kiválasztom a maximumot, így tudjuk meg hogy mennyi volt a maximális egyezés.

    üdv.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz Dumamatyi #16003 üzenetére

    Hello,

    Feltételes formázással (Conditional formatting) tudod megtenni a színezéseket. Mindegyik esetben a MA() [TODAY()] függvényre lesz szükséged. A példákban a B1-es cellában van a határidő, ezen a cellán állva kell beállítatni a feltételes formázást a lenti függvényeket használva és a hozzájuk tartozó kitöltési színt kiválasztva.

    ...adott határidő lejárata előtt 1 hónappal sárgává...
    =$B$1-MA()<31

    ...határidő lejáratakor...
    =MA()>=$B$1

    üdv.

    [ Szerkesztve ]

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz Excelbarat #16004 üzenetére

    Hello,

    ..már a 2013-as office-al csináltad? vagy miért .xlsb a kiterjesztés?
    2010-es Excelben készült, az .xlsb a bináris formátuma az újabb Exceleknek (hasonló mint a régi .xls).
    Előnye hogy kisebb helyet foglal és gyorsabban is dolgozik vele az Excel, tartalmazhat makrót is. A hátránya viszont hogy zárt formátum, tehát más nem MS Office csomagok nem 100%-osan támogatják.

    ...hiába csinálom tömbfüggvényként nem jön össze 1 sornál...
    Pedig jól csinálod tehát CSE (Control + Shift + Enter) a bevitele; én is csak az első sorra vittem be aztán lehúztam a többi sorra és csinálta rendesen.
    Nem tudom nálad miért nem akarja magától.

    üdv.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz Csontoshun #16008 üzenetére

    Hello,

    Ahogy poffsoft írta az FKERES (Vlookup) függvény kell neked.
    pl. K5-be ez mehet =FKERES(I5;B:G;6;0)

    Az alábbi módon műkődik:
    - a B:G tartomány első oszlopában (ez ugyebár az B oszlopban lévő index) megkeresi azt a sort ahol az I5 cellával egyező érték van,
    - ebből a sorból a 6-ok értéket adja vissza (ez a G oszlopban lévő számok),
    - a 0 a végén azt mondja meg hogy csak pontos egyezésnél ad vissza értéket.

    üdv.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz zup #16015 üzenetére

    Hello,

    A SZORZATÖSSZEG (SUMPRODUCT) fügvénnyel tudod ezt megoldani. Az I5-be ezt írd:
    =SZORZATÖSSZEG(($A:$A=$H5)*1;($B:$B=I$4)*1;$C:$C)

    ..vagy ha vérprofiként másoknak is akarsz imponálni, akkor ezt:
    =SZORZATÖSSZEG(--($A:$A=$H5);--($B:$B=I$4);$C:$C)

    Az egyedüli "hátránya", hogy akkor is nullát kapsz ha az adott kombináció nincs az oszlopban.

    A másik megoldás a fenti hátrányt kiküszöböli, de kell hozzá egy plusz oszlop (amit akár el is rejthetsz).
    A megoldás vmelyik keresés (FKERES vagy HOL.VAN) függvény használata, azonban ezek csak 1 feltétel szerint tudnak keresni, ezért a keresési feltételeket össze kell vonnod egy külön oszlopban.
    pl. a D-oszlopban egy egyszerű összefűzése az A és B oszlopoknak megteszi.
    Erre a keresési feltételre lehet már pl. egy HOL.VAN (MATCH) függvényt tenni és az eredményt INDEX vagy ELTOLÁS (OFFSET) függvénnyel kirakni.
    =INDEX($C:$C;HOL.VAN($H5&I$4;$D:$D;0))

    Itt már menni fog, hogy azon kombinációk amelyek nem szerepelnek ott a #HIÁNYZIK (#N/A) értéket kapod, ezt pedig már tudod formázni a HAHIBA (IFERROR) vagy hasonló függvényekkel.

    A kész fájlt letöltheted innen.

    üdv.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz psg5 #16030 üzenetére

    Hello,

    Innen tudsz letölteni egy univerzális naptárat Excelben.

    Ha érdekel, akkor itt elmagyarázzák hogy ez hogyan műkődik.

    üdv.

    A http://chandoo.org/wp/ blogot mindenkinek, aki az Excelt jobban meg akarja ismerni merem javasolni.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz zup #16047 üzenetére

    Hello,

    A konkrét példádra egy kicsit faragni kell a függvényeken, pl. ezt csinálja ami neked kell:

    =HA(SZORZATÖSSZEG(--($A:$A=$F5);--($B:$B=G$4);--($C:$C="Igen"));"Igen";"Nem")

    üdv.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz Excelbarat #16053 üzenetére

    Hello,

    Innen leszedheted.

    A fájl arra készült, hogy egy adott, heti órarendből a kiválasztott tantárgyat kiemelje.

    üdv.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz Regirck #16059 üzenetére

    Hello,

    Szövegfüggvényekkel át tudod alakítani az adatokat, hogy számolni tudjon vele az Excel,
    pl. az E3-as cellára ez visszaadja amire szükséged van:

    =HAHIBA(KÖZÉP(E3;SZÖVEG.KERES("-";E3)+1;HOSSZ(E3)-SZÖVEG.KERES("-";E3))-BAL(C3;SZÖVEG.KERES("-";E3)-1);0)

    Ennek a lényeg a SZÖVEG.KERES("-";E3") ami megadja hogy hanyadik karakter a kötőjel.
    Ezek után már csak ki kell keresnünk ami ez után van (ezt a KÖZÉP függvénnyel tettem) és ki kell vonni belőle a kötőjel előtti értéket (a BAL függvényes részt).

    Szóval egy napra megvan a függvény és már csak a maradék 6 napra kell másolni és kész is vagy.
    Nem másolom be ide, mivel nagyon hosszú.

    Azonban van egy másik javaslatom: használj makrót; egy UDF (User Defined Function) nagyon meg tudja könnyíteni a munkát. A makró elég rövid:

    Function NapiOrak(Adat As Range) As Integer
    Dim cella As Range
    Dim Ido 'itt fogjuk tárolni a szétszedett időt
    Const Elvalaszto As String * 1 = "-" 'állítható elválasztó

    NapiOrak = 0

    For Each cella In Adat
    'ha a cella értéke OFF vagy ÜRES akkor nem számoljuk (0 óra)
    If cella.Value <> "OFF" And cella.Value <> "" Then
    'az aktuális cellát az elválasztó alapján felbontjuk
    Ido = Split(cella, Elvalaszto)
    'halmozzuk a számolt órákat, a felbontott idő felső és alsó értékét vesszük csak
    NapiOrak = NapiOrak + Ido(UBound(Ido)) - Ido(LBound(Ido))
    End If
    Next cella

    End Function

    Ezt használva az I3-ban a képleted már csak ennyi lesz:

    =NapiOrak(B3:H3)

    D13-ban pedig

    =NapiOrak(D3:D12)

    Feltettem ide a mintát.

    üdv.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz Geryson #16061 üzenetére

    Hello,

    A 16049-es hozzászólásomban adok 2 megoldást ilyen esetre.

    Az egyik a SZORZATÖSSZEG (SUMPRODUCT) függvény használata. Ez segédoszlop nélkül is műkődik.
    Nagyvonalakban vmi ilyen kell neked:
    =SZORZATÖSSZEG((dátum oszlop=dátum feltétel)*1;(pénznem oszlop = EUR)*1;árfolyam oszlop)

    A másik pedig valamelyik kereső függvény (FKERES, HKERES, KERES vagy HOL.VAN) egy segédoszlop (vagy sor) használatával.

    üdv.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz Geryson #16066 üzenetére

    Hello,

    Ez azt jelenti, hogy többször is szerepel ugyanaz az érték (dátum és EUR kombináció) a listádban.

    Megoldás, hogy elosztod azzal az értéket ahányszor szerepel. Ezt a DARABHATÖBB (COUNTIFS) függvénnyel tudod, vagyis:

    =SZORZATÖSSZEG((Forrás!A:A='2013'!B3)*1;(Forrás!H:H="EUR")*1;Forrás!K:K)/DARABHATÖBB(Forrás!A:A;'2013'!B3;Forrás!H:H;"EUR)

    vagy a SZUMHATÖBB-et is használhatod a SZORZATÖSSZEG helyett:

    =SZUMHATÖBB(Forrás!K:K;Forrás!A:A;'2013'!B3;Forrás!H:H;"EUR")/DARABHATÖBB(Forrás!A:A;'2013'!B3;Forrás!H:H;"EUR)

    üdv.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz whitehand #16071 üzenetére

    Hello,

    C3-ba ezt kell írnod:

    =C2+90

    Esetleg a cella formátumát át kell majd állítanod dátum formátumra.

    üdv.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz mutyi #16124 üzenetére

    Hello,

    A logaritmikus ábrázolás mellett van pár egyéb megoldás is azon esetekre amikor a számok között túl nagy eltérés van.
    .
    Mintaként feltöltöttem ide egy ilyet.

    Ezeken az oldalakon be is mutatják, hogyan műkődnek:
    http://peltiertech.com/WordPress/broken-y-axis-in-excel-chart/

    http://tushar-mehta.com/excel/newsgroups/broken_y_axis/tutorial/index.html
    http://www.andypope.info/charts/brokencolumn.htm

    üdv.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz csongi #16148 üzenetére

    Hello,

    2007-től felfelé már van ÁTLAGHA (AVERAGEIF), ami szintén műkődik:

    =ÁTLAGHA(tartomány;">0")

    üdv.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz Delila_1 #16121 üzenetére

    Hello,

    Az IF-es megoldás mellett CASE-el is meg lehet oldani.

    Select Case ActiveCell
    Case "o", "ts", "ti", "tu", "u"
    ActiveCell.Offset(0, 2).Select
    End Select

    üdv.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz csferke #16166 üzenetére

    Hello,

    ...viszont olyan cella is amelyben legördülő listából kellene kiválasztani...
    Az alap INPUTBOX-al nem tudod ezt megoldani, de készíthetsz egy sajátot is. Ehhez kell egy Userform amire egy ComboBox-ot kell tened. Ez képes legördülő listákat kezelni.

    A minta fájlomat feltettem ide.

    A makró lényege lent látható:

    Private Sub UserForm_Initialize()
    Dim vErvenyesitesTipusa

    Me.Caption = Title
    Me.lPrompt = Prompt

    On Error Resume Next
    'az érvényesítés 0 és 7 közötti értéket vagy hibát vehet fel
    vErvenyesitesTipusa = ActiveCell.Validation.Type

    'attól függően hogy melyik érvényesítés van kicsivel másabb lesz a beviteli lap
    Select Case vErvenyesitesTipusa
    Case 3 'xlValidateList = legördülő lista
    Me.cbBevitel.RowSource = ActiveCell.Validation.Formula1 'a combobox-nak megadjuk az érvényesítés tartományát
    Me.cbBevitel = ActiveCell.Value 'kitesszük a korábbi értéket

    Case Else
    Me.cbBevitel.ShowDropButtonWhen = fmShowDropButtonWhenNever 'letiltjuk a legördülő nyilat
    Me.cbBevitel = ActiveCell.Value 'kitesszük a korábbi értéket

    End Select

    End Sub

    Remélem a minta segít a megoldásban.

    üdv.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz Gandalf80 #16176 üzenetére

    Hello,

    ...egy legördülő listából válassza ki a megfelelő települést a felhasználó?

    Megoldható az ELTOLÁS (OFFSET) függvénnyel.
    Ha C2-ben van a kiválasztandó irányítószám és A és B oszlopokban az irányítószám és a település, akkor ezt a függvényt használd az érvényesítés (validation) forrásának:

    =ELTOLÁS($B$1;HOL.VAN(C2;$A:$A;0)-1;0;DARABTELI($A:$A;C2))

    Ennek a megoldásnak az a hátránya, hogy az igénylőnek akkor is ki kell választania az értéket a legördülő listából, amikor csak 1 találat van.

    Ezért csináltam 2 makrót használó megoldást is neked, amely ezeket ki tudja küszöbölni.

    Az egyszerűbb megoldásnál (F2 és G2-es mező) a fenti megoldás van makróval kiegészítve, ami ha
    - nincs találat kiírja azt vagy
    - egyértelmű találatnál a keresett értéket és
    - ha több találat van akkor pedig kírja hogy válasszanak.

    Ennek a program kódja:
    Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Address = Range("F2").Address Then
    'megszámoljuk hány találatunk van
    Select Case WorksheetFunction.CountIf(Range("A:A"), Range("F2"))
    Case 0
    'F2-es cellától jobbra kiírjuk a választ
    Range("F2").Offset(, 1).Value = "Nem található település"
    Case 1
    Range("F2").Offset(, 1).Value = WorksheetFunction.VLookup(Range("F2"), Range("A:B"), 2, False)
    Case Is > 1
    Range("F2").Offset(, 1).Value = "Válassz a listából!"
    End Select
    End If

    End Sub

    A másik megoldás (F10 és G10-ben), annyival több hogy több találat esetén fel dob egy ablakot, amiből választhat a felhasználó.

    Feltettem ide a mintát.

    üdv.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz Excelbarat #16221 üzenetére

    Hello,

    Nem teljesen ide tartozik (ámbár ha az 500 adatsorból számolhatóv vhogy hogy éppen hányat kell megjeleníteni, akkor segíthet!), de a grafikonokat nem csak fix adatokból, hanem dinamikus tartományokból is lehet rajzolni.

    Nekem pl. van egy heti riportom, amely ahogy halad előre az év egyre több adatot tartalmaz. A grafikonra az újabb adatok a dinamikus tartományoknak köszönhetően mindig felkerülnek maguktól.

    Felraktam ide egy mintát, ahol pl. ki lehet választani hogy mely heteket jelenítsen meg a grafikon. Egy ilyen grafikon egy dashboard kezdete is lehet.

    üdv.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz macimeister #16229 üzenetére

    Hello,

    Ilyet makróval lehet megoldani, mivel a MOST() [NOW()] függvényt az Excel mindig újraszámolja.

    A 15876-os hozzászólásban van egy kész megoldás.

    A Target.Column = 2 helyett neked Target.Column = 1 kell mivel ez jelenti az A-oszlopot.
    A Range(Target.Address).Offset(, 3) helyett pedig Range(Target.Address).Offset(, 1) kell mivel ez lesz a B-oszlop.

    üdv.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz macimeister #16233 üzenetére

    Hello,

    Ez alkalmas lehet egy excelbe amiben tudom követni a havi villanyfogyasztást?
    Természetesen ezzel is megoldható ez, mivel ahogy mondtad nem szabályos időközönként jönnek majd az adatok.

    Kerestem neten már kész táblázatot, de nem adott érdemlegest.
    Ezt neked kell felépítened, mivel te tudod hogy mit akarsz elérni.

    pl. Én is vezetem a közműveket, mondjuk én havonta 2x fixen írom fel az adatokat és abból számolok egy 30 napra eső fogyasztást, így nekem nem bonyolult a táblázatom.
    A-oszlopban a dátumom van, B-ben az aktuális leolvasás, C-ben az előző leolvasához képesti fogyás (ez egyszerű kivonás) és a D-ben a 30 napra kalkulált fogyás amely a dátumokat is figyeli.

    üdv.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz Excelbarat #16235 üzenetére

    Hello,

    A 2. kérdésedet megválaszolták; a nem használt sorokat/oszlopokat egyszerűen elrejtettem.

    Az 1. kérdésedre a válaszom, hogy nem igazán tudod felgyorsítani ezzel sem a grafikon rajzolást.
    Ami azonban még is tud segíteni:
    Tudsz saját grafikon sablonokat létrehozni, így ha mindegyik grafikon úgyanúgy nézhet ki, akkor ez már segítség, csak a forrásokat/adatosorokat kell változtatnod.

    üdv.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz gepesz13 #16244 üzenetére

    Hello,

    Képernyő lopáshoz én az ingyenes Greenshot progit használom.
    Ezzel könnyedén tudsz képernyőrészletet menteni, a Print Screen gombra rátelepül.

    üdv.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz bozsozso #16260 üzenetére

    Hello,

    ...xls-t szeretnék dbf-be konvertálni...
    Ha van Access-ed is, akkor Accessbe beolvastatod (import) az Excelt, majd a beolvasott táblát megnyitva exportálhatod dbf-be.

    üdv.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

  • Mutt

    aktív tag

    válasz csferke #16283 üzenetére

    Hello,

    Ezzel a képlettel (Delilától kaptam) az A oszlop adja az adatokat de nem veszi figyelembe az utolsó bejegyzés utáni üres sorokat.
    =OFFSET(Kupci!$A$2;0;0;COUNTA(Kupci!$A:$A)-1;1)

    Hogyan tudom megadni ezt a tartományt, listanevet (KupciNaziv), hogy ez szerepeljen a legördülőben az érvényesítéshez?

    A névkezelőben a fenti függvényhez rendelj egy nevet. A Formula fülön a Name Manager opcióval tudod ezt megtenni. A példámban a "lista" nevet adtam neki.

    Az(oka)t a cellá(ka)t ahol az eredeti képletet használtad módosítsd, hogy a forrás ezentúl "=lista" legyen.

    Ez a módosítás már műkődik a makróval további módosítás nélkül.

    üdv.

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

Új hozzászólás Aktív témák