Hozzászólások
-
SzerzőBejegyzés
-
Írd be a Function sor után, az első Dim elé, hogy
Application.Volatile
Ezzel azt kéred, hogy váljék volatil függvénnyé, és bárhol bármi megváltozik, kalkuláljon újra.
Imre
Persze!
Tök rendben van, köszi!
Én is szoktam mindig tanítani haladó tanfolyamokon.Imi
Szia Delila!
A feladat gördülő összegzés készítése valami olyan képlettel, ami automatikusan az előte lévők adott tartományát összegzi.
A te képleted statikus, tehát minden oldalon kézzel módosítani kellene.A feladat nem oldható meg (szerintem) Excel natív képlettel.
Elvileg LAP() és INDIREKT() működne, de kiderült, hogy az INDOREKT nem kezeli a 3D hivatkozásokat.
Azóta utánajártam és valóban nem.Imre
Szia!
Erre nincsen képletes megoldás.
Makróval, felhasználói függvényt (UDF) lehet írni rá.
Csináltan egy gördülő összegző függvényt, amit egy kicsit módosítva a saját problémádat is megoldhatja.
Cserébe viszont makrós lesz a fájl.Szóval a szóban forgó fájlba a makró szerkesztővel beszúrsz egy új modult, majd abba bemásolod ezt:
Function RunningTotalSheets(source As Range) As Double Dim sourceAddress As String Dim i As Integer Dim result As Double sourceAddress = source.Address result = 0 For i = 1 To ActiveSheet.Index result = result + WorksheetFunction.Sum(Worksheets(i).Range(sourceAddress)) Next i RunningTotalSheets = result End Function
Azt teszi, hogy a paraméterben kapott tartományt kummulatíve összesíti az elsőtől az aktuális lapig.
Próba:
1. Átmész Excelbe, megcsinálod an N darab lapot az „A” oszlopban az adatokkal.
2. Az első lapon egy üres cellába elkezded írni, hogy „=Runni…”, látod majd, hogy felajánlja az UDF nevét, TAB-al elfogadod, és az egy db paraméterbe bekattintod az egész „A” oszlopot
3. Átmész a 2. lapra és megcsinálod ugyanezt, vagy átmásolod az előző lapról a függvényes cellát. Itt már az első két lap összesenje jön az „A” oszlopokból, stb…Ha az eredeti problémára szeretnél fókuszálni, és az elsőtől az aktuális-1-ig szeretnél Max értékeket összeadni, akkor:
1. A For ciklust Activesheet.Index-1-ig kell futtatni
2. Az összegző sorban a Sum-ot Max-ra változtatodVigyázz, hogy először csak a 2. lapon adható ki, nem tettem bele hibakezelést.
Remélem sikerül,
Imre
Szia!
A VBA editor natívan ezt nem tudja.
Csak az eszköztáron felül, a végén, a kérdőjel után mutatja, hogy a kurzorod melyik sorban van.Léteznek add-in-ok vagy bonyolult makró kódok erre a célra.
https://www.automateexcel.com/vba-line-numbers/
https://stackoverflow.com/questions/40731182/excel-vba-how-to-turn-on-line-numbers-in-code-editorVagy kimásolod egy notepad++-ba pl.
Imre
Szia!
A SendKeys-el szoktak lenni problémák, ahogy az egész VBA csinál érdekes dolgokat néha 🙂
Nem hallottam még konkrétan erről, de gondolom gugliztál már a témában, én nem ezzel kezdeném….A kérdésem az, hogy az
Application.Quit
miért nem jó neked?Imre
Sziasztok!
Igen, ezt kb. így szokták csinálni, ahogy Delila írta.
Én egy kicsit rövidebb formát preferálok:=HA(SZÁM(SZÖVEG.KERES("mit_keres";miben_keresi));"Megvan";"Nincs meg")
A SZÖVEG.KERES fv visszaadja, hogy hányadik karakternél kezdődik a keresett szöveg (ami egy szám), vagy hibát ad.
Imre
Az attól függ, hogy most tudsz-e makrózni.
Ha még soha, akkor elég sok mindent kell megtanulni és megérteni ahhoz, hogy meg tudd csinálni.Ráadásul ott van még az a probléma is, hogy ha bonyolult céget kell feldolgozni, és a makró elkészítette a dupla munkalapot és a felképletezést, akkor mi lesz a továbbiakban, amikor ugyanazt a fájlt egy egyszerű cég feldolgozásához használják?
Mert gondolom, hogy a bonyolult cég esetén a két területi munkalap képletei eltérnek az egyszerű cég képleteitől.Emiatt lehet, hogy az lenne a jó, ha az eredeti, egyszerű cégekhez tartozó felképletezett munkalap marad érintetlen, és a szétbontást két új munkalapra kell megcsinálni dinamikusan makróval. Továbbra is kérdés, hogy mi legyen ezzel a két munkalappal, miután a felhasználó megnézte, kimásolta, bármit tett az eredményekkel?
Lehet manuálisan törölni, vagy valami eseményre (pl nyomógomb) makróval törölni. (Mert ugye nem szeretnéd megtartani.)Imre
Szia!
Nagyon jól sejted, ez programozós megoldás lesz.
Pláne, ha előfordulhat, hogy a jövőben további ilyen cégek is lesznek.Kb ilyesmi:
Ha megváltozik a cégválasztós cella tartalma, akkor induljon egy makró, ami megnézi egy külön, erre a célra készített táblában, hogy egyszerű vagy bonyolult cégről van-e szó.
Ha egyszerű, akkor mondjuk nem kell csinálni semmit, mert azt már összeraktad.
Ha bonyolult, akkor viszont ezt a szétválasztást kell megcsinálni.De ha egy kicsit tovább gondolom, akkor az a kérdésem, hogy ezidáig hogyan működött.
Ha jól értem, akkor képletekkel.
És a szétválasztást is meg tudtad csinálni képletekkel a másik Excelben.Mi lenne, ha csinálnál egy táblázatot, ahol a cégnevek mellett lenne jelölve, hogy egyszerű vagy bonyolult
egy rejtett vagy nem rejtett cellába egy FKERES-el kikeresnéd, hogy 0 vagy 1.
És a képletekbe beírnál egy IF-et, és ez alapján működne.
A másik földrajzi terület képletei üres eredményt hoznak, ha egyszerű, és kitöltött eredményt, ha bonyolult cég lett kiválasztva.
Tehát benne tartanád az eredeti fájlban ezt a másik lapot is.Csak egy gondolat, hogy ne kelljen makró.
Imre
P.s: Mi van, ha bejön egy harmadik földrajzi terület? Harmadik lap? 🙂
Ha a nyilacskákat eltünteted, akkor a szűrés is törlődik, és minden sor látszani fog.
Ha ez az igény, akkor mondjuk az A1-et kijelölöd és utána Ctrl+Shift+L kombináció, vagy Adatok szalagon megkeresed a szűrés törlése gombot, ami egy tölcsér és egy piros X mellette.A probléma még az a fájllal, hogy a fejléce csak a K oszlopig van kitöltve, ezért ha megint szűrni akarsz, akkor a nyilacskák bekapcsolásával (Nagy tölcsér vagy Ctrl-Shift-L) nem a fejlécbe, hanem az első sorba teszi a nyilacskákat.
Emiatt van az, hogy előbb ki kell jelölni az első sort, és utána bekapcsolni a szűrő gombokat, ami miatt egy csomó üres cella is tartalmazni fogja a nyilakat.
Ki kellene tölteni a többi fejlécet…Ennél többet nem tudok javasolni.
Imre
Továbbra sem értem, hogy mi a kérdésed.
A fenti táblázat szűrve van a „Q” oszlopban „Drávucz Ervin Ferdinánd” névre.
Ha kikapcsolom a szűrőket, akkor visszajön az összes sor, 61-ben lesz vége.A fejlécben lévő nyilacskákat szeretnéd eltüntetni?
Nem tudom már mit kérdezzek…
Szia!
Egy kicsit kifejthetnéd, hogy miről van szó, mielőtt azt gondolnám, hogy a bekapcsolt autoszűrések közöl párat ki akarsz kapcsolni.
Vagy épp ezt szeretnéd, csak nem akarod végig kattintgatni, hanem mondjuk egy lista alapján?Csak találgatok…
Imre
Szia!
Többféle megoldás is lehetséges, de a felesleges munkát és időt elkerülendő, előbb pontosítsuk a dolgokat, ha már nem töltöttél fel minta adatokat.
– A Munka2-re ugyanazokba az oszlopokba akarod másolni az adatokat, ahová a Munka1-en beírtad?
– A Munka2-n lévő gyűjtő tartomány az első sorban kezdődik? Van fejléce?Meg lehet csinálni úgy, hogy minden begépelt cella azonnal átkerül a gyűjtő lap első szabad sorába, ugyanabba az oszlopba, de én inkább azt javasolnám, hogy miután beírtál egy sornyi adatot a Munka1-re, egy gomb vagy bill. kombinációra tegye át a Munka2 első szabad sorába.
Imre
Szuper!
Bár nem derül ki, hogy melyiket próbáltad ki, de azért örülünk! 🙂
Szia!
Igen, a PowerQuery átalakításai között van ilyen, csak ki kell választani, és az aktuálisan kijelölt oszlopra csinálja meg.
És ha megnézed a hozzá tartozó M parancsot, akkor még „each” is lesz benne. 🙂A lekérdezések és kapcsolatok különben elvileg a Lekérdezések listáját (is) mutatja, szóval lehet, hogy használod, csak nem tudod hogy azt? 🙂
Imre
Szia!
Bocsánat, ma vettem észre ezt a kérdést, valahogy elsiklottam felette.
Hát, a PQ hibakezelése létezik ugyan, de nem egyszerű, nem lehet olyan könnyen debug-olni, mint egy hagyományos nyelvet.Én a következőt próbálnám:
A mappából történő lekérdezés során van egy opció, hogy hibás fájlok kihagyása. Ha ezt bejelölöd, akkor elvileg csak azok lesznek a végeredményben, ahol nem volt hiba, és nem áll meg futás közben.
A betöltés elvileg tartalmazza egy külön oszlopban, hogy mely fájlokból jöttek az egyes darabok. Innen hiányozni fog az az egy vagy több, ami hibás volt. (Ezt még nem próbáltam, csak hangosan gondolkodom.)
Ha csinálsz még egy mappából történő lekérdezést, akkor annak az elején megadja a mappa teljes tartalmát, ahol ott lesz az összes fájl. Ezt a lekérdezést és az előzőt a fájlnevek oszlop alapján egy különbség képzéssel össze tudod hasonlítani, és megkapod a hiányzó fájlt vagy fájlokat.
Nem írtam le mindent lépésenként, feltételezve, hogy ismered a PowerQuery-t..
Remélem ez megoldás lehet.Imre
Szia!
Én igazából kérdeznék.
Mi okoz neked nehézséget a megoldásban?A függvény nevét ismered, gondolom egy új oszlopban alkalmazni is tudod, majd visszateszed értékként
Azt gyanítom, hogy nem csak ennyit szeretnél.
Ha ez a feladat túl gyakran merül fel, akkor Delila megoldása tökéletes, ha maga az adatfájl tartalmazhat makrókat, és meg is tudod oldani a használatot.A feladat makró nélkül automatizálható PowerQuery-vel is, az megint egy másik dolog
Szóval mi is a kérdésed pontosabban?
Imre
- A hozzászólás módosításra került: 2 years, 7 months telt el-horvimi. Indok: spelling
Szia!
Ez eseménykezelő makró nélkül nem oldható meg.
Imre
2021-08-07-20:06 Hozzászólás: [Resolved] Private Sub Worksheet_Activate makró futtatása egy másik munkalapról #8719Bocsánat, hogy ezt írom, de anélkül nem lehet internetről sem tanulni, amíg az alapokkal valahogy tisztába nem kerülsz.
A kód, amit leírtam, a Munka1 és Munka2 munkalapokkal dolgozik, és kipróbáltam mielőtt elküldtem
Valószínűleg nálad nem ezek a lapok nevei, ekkor ad ilyen hibát.
Bele van írva fixen, idézőjelekbe foglalva a munkalap neve, és az address után az is látszik, hogy a Munka1-en a B3 cella értékét figyeli, és ha az változik, csak akkor hívja meg a másik munkalapot módosító valami rutint. Tehát oda kell tenni a legördülő listát.imre
2021-08-06-19:33 Hozzászólás: [Resolved] Private Sub Worksheet_Activate makró futtatása egy másik munkalapról #8716Eseménykezelő
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If Sh.Name = "Munka1" And Target.Address = "$B$3" Then Call valami End If End Sub
Modulban, hogy mit kel csinálni
Sub valami() Sheets("Munka2").Range("A2").Value = "hello" End Sub
Hát egyedül nem könnyű.
Ajánlom figyelmedbehttps://videotanfolyam.pentaschool.hu/courses/excel-automatizalas-makrok-alapjai
Imre
- A hozzászólás módosításra került: 2 years, 9 months telt el-horvimi.
2021-08-06-11:32 Hozzászólás: [Resolved] Private Sub Worksheet_Activate makró futtatása egy másik munkalapról #8714Ebben az esetben munkafüzet eseménykezelést kell használnod.
1. Projekt ablakban dupla klikk a „ThisWorbook” objektumon
2. Jobb oldalon felül bal oldalt General helyett Workbook
3. Jobb oldalon felül jobb oldalt lesznek a Workbook események.Neked a SheetChange esemény kell. Paraméterben megkapod, hogy melyik lapon (Sh) melyik cella (Target) változott.
Ha az 1-es lapon tehát változik a lista értéke, akkor a futtathatsz bármit, ami a másik lapon csinál valamit. Ilyenkor célszerű a SELECT-eket kerülni, de az sem baj persze.
Imre
Szia!
Rögtön tisztáznék néhány kérdést:
– mit jelent, hogy többen használjátok!
Konkurensek egyszerre többen?
– Hol vannak a fájlok? Helyi hálózat szerver vagy esetleg felhő?
– Mi a gond a manuális sorszamadassal?
– Mit értesz utánkövetésen?Ez hasonló modell, mint a megrendelés vagy a számla.
Van egy külön tábla a megrendelések főbb adatainak, és a megrendelés azonosítója alapján egy másik táblaban vannak a megrendelés részletei.
Ez az ajánlat modell is hasonló.
Best practice az, hogy elsőként az ajánlat főbb adatait tartalmazó rekord születik meg, ami tartalmaz egy egyedi kulcs oszlopot pl. Sorszám)
Ennek a.sorszamnak az ismeretében lehet elkezdeni a megrendelés részleteinek elkészítését mondjuk egy sablon megnyitásával, amiben már a design és a képletek benne vannak, a többit kell manuálisan megadni.ide szintén manuálisan meg lehet adni az előbbi táblaban felvett új sorszámot.Ha előbb az ajánlat részleteit csinálod meg, akkor a végén kinyithatod az ajánlatokat nyilvántartó munkafüzetet, és mindkettőben megadhatod a következő szabad sorszámot.
Mindezt automatizálási makroval lehetne.
Szokták még olyat, hogy a két táblát egyik irányba összekötik.
Az ajánlat rekord végén van egy link, ami atnavigal az ajánlat részleteire. Ehhez persze tudni kell az útvonalatIndulásnak ennyi
Imre
2021-08-05-18:01 Hozzászólás: [Resolved] Private Sub Worksheet_Activate makró futtatása egy másik munkalapról #8708Szia!
Hát, nagyrészt értem, amit szeretnél. Nem biztos, hogy teljesen.
Kicsit olyan, mint a róka fogta csuka.
Addig értem, hogy egy listából kiválasztasz egy elemet, és az ugye az adott cellára Change esemény lesz, és erre egy másik lapon szeretnél egy vagy több listaforrást frissíteni makróval.
Ami ezután jön, az nem világos, hogy egy másik legördülő menü forrásást készíted elő ezzel vagy ugyanazét?A kérdésedre:
– A munkalapok Activate eseménykezelőjét átrakhatod egy modulba (Sub bármi) és az Activate kezelőkben csak egy Call van erre a subra.
Ezáltal egy másik munkalap eseménykezelőjében is lehetne Call-al hívni.Az kicsit nehezíti a dolgot, ha „majdnem” ugyanaz a makró fut le a többi munkalapon…
Imre
Szia!
Ez azért van, mert Amerikában tizedes pont van, nálunk pedig tizedes vessző.
Te magyar Excel-t használsz, ezért a pontokat nem érti, de próbálja értelmezni.A magasság oszlopban csak egy cserét kell csinálnod, ahol kicseréled a pontot vesszőre.
A testsúlynál nehezebb a helyzet, mert ott amit tudott, dátumként értelmezett úgy, hogy hónap és év ponttal elválasztva.
Ha megnézed ezen cellák valós tartalmát pl. a szerkesztőlécben, akkor az adott hónap és év elsejét mutatja.
Utólag már elég nehéz visszanyerni az eredeti értéket.Próbáld meg azt, hogy mielőtt beilleszted az adatokat a weboldalról, azt a területet, ahová tenni fogod, szöveges típusra állítod az Excelben. Ha ezután illeszted be (Ctrl-V), akkor mindkét oszlopban jók lesznek az adatok, pontokkal.
Mindkettőben le tudod cserélni a pontokat vesszőre, és nézd meg, hogy ezután megy-e már az átlagszámítás.
Van egy függvény, amivel meg lehet nézni, hogy szám van-e egy cellában
=SZÁM(A2)
Ez IGAZ vagy HAMIS eredményt ad ettől függően.Imre
Nagyon szívesen
Persze.
Keresés-Csere az egész munkafüzetben.1. Ctrl-H
2. Mit Mire
3. Egyebek gombot megnyomod
4. Hatókört munkafüzetre állítod.Automatikus ilyen nincsen
Imre
Szia!
Megoldódott valahogy?
Nagyon különös a dolog, nem találkoztam még ilyesmivel.Kérdéseim:
– Csak ebben a munkafüzetben nem megy a laptörlés?
– Csak azt a lapot nem tudod törölni, amelyiken a CSV adatok vannak?
– Hogyan importálod? (PowerQuery vagy esetleg a régi importáló, ami a Szövegből oszlopok varázslóval indít?)Imre
Nem elég, ha figyelsz rá, mert ha megnyitáskor az Excel számként érzékeli, akkor már vége van.
A vezető nullákat még csak-csak vissza tudod tenni, de a végére nem tudod visszatenni a hiányzókat, mert már elveszítetted.
Emiatt megnyitás helyett importálni érdemes.Különben ez a feladat (is) tipikusan PowerQuery automatizációs megoldásért kiált, főleg, ha rendszeresen előfordul.
Egyszer megcsinálod az átalakítást, hozzáveheted a másikat is, megcsináod az összehasonlítást, és kész.Legközelebb csak megadod, hogy mely két fájlban lévőket kell összehasonlítani.
Milyen Excel verziót használsz?Imre
Szia!
Banki kivonat
Gondolom, hogy ahol csak 16 karakteres, ott az utolsó 8 az mind nulla.
Azt is gondolom, illetve remélem, hogy a kötőjeleket nem tartalmazó számlaszámok szöveges formátumban kerülnek az Excelbe, és megvan mind 16 karakter.
Erre nagyon figyelj! Ha megnyirtsz egy CSV-t, amiben 15 karakternél hosszabb számok vannak, ÉS az Excel külön cellába teszi a számlaszámot, akkor a 15. karakter után csak nullák lesznek, mert számmá alakítva nem tud 15 számjegynél többet megjeleníteni.
Próbáld ki, ha begépelsz egy cellába 16 vagy több számjegyet, akkor a 16. karaktertl mind nulla lesz, ha esetleg nullával kezdődne, azokat pedig levágja.
Ezért első feladat, hoyg a CSV-ből szövegesen kinyrni a számlaszámokat.Ezután én a következő logikán mennék:
– Ha a hossza 16 karakter, akkor kiveszek balról 8-at, ahhoz hozzáfűzök egy kötőjelet, és utána mehet jobbról 8, majd egy újabb kötőjel, és végül 8 db nulla
– Ha 24 hosszú, akkor Bal, Közép, Jobb, és közé fűzögeted a kötőjeleket.Imre
Szia!
Örülök, hogy sikerült.
Az UNPIVOT-os részt használod?Ha egy táblázat oszlopára abszolút hivatkozást akarsz csinálni (jobbra másoláskor nem másszon el az oszlpnév), akkor így kell rá hivatkozni:
Táblázatnév[[oszlopnev]:[oszlopnev]]
Pl.
=SZUM(Táblázat1[[Oszlop2]:[Oszlop2]])
Imre
Lehet, hogy a te gépeden csinált egy kapcsolati fájt és azt keresi…
Szia!
Sajnos nekem ebben semmilen tapasztalatom nincs.
De azért ötletem lenne:– Megnézném, hogy tudok-e új csatlakozást csinálni PowerPivot-ból
– Megnézném tudok-e csatlakozni egyáltalán bármivel a kiszolgálóhoz arról a gépről. Én PowerQuery-vel próbálnámAztán mennék a ha ige, ha nem ágakon tovább.
Imre
Ha jól gondolom, akkor a függvénnyel egy új oszlopba megcsinálod az átkódolt változatot, és azt kijelölve futtatod a makrót.
Ahogy megy a ciklus, a name változóba teszi az éppen soron következő cellát a kijelölésben.Ha a lementett PNG-nek az eredeti nevet szeretnéd adni, ami ugye egy oszloppal balra, a kijelölés mellett van, akkor próbáld ezt:
.savetofile ThisWorkbook.Path & Application.PathSeparator & val.offset(0,-1).Value & ".png", 2
Ha meg úgy is jó, akkor hagyd úgy..
Imre
Ha nincs O365, akkor saját URL enkódoló függvény kell.
Erre itt találsz példát:https://stackoverflow.com/questions/218181/how-can-i-url-encode-a-string-in-excel-vba
Imre
Szia!
A QR kódot nem a VBA program gyártja le, hanem egy Google webszolgáltatást hív meg, annak átadja az URL-ben a paramétereket, majd visszaolvassa az eredményt.
Tehát nincs ráhatás a QR kód generáló működésére, de lehet, hogy további paraméterekkel lehet rá hatni.
Egy másik megoldás lehet, hogy a cellában lévő szövegeket URL enkódolni kell, mielőtt kiküldöd az API-nak.
Erre Office 365-ben és lehet, hogy 2019-ben is van egy ENCODEURL függvény. A magyar neve most nincs meg, de valószínűleg valami hasonló…VBA-ban úgyis csak az angol játszik.
ha van O365-öd, akkor próbáld meg ezt:Name = val.Value helyett
Name = Application.WorkSheetFunction.EndodeURL(val.Value)Nézd meg mi lesz
Imre
Szia!
Csak most láttam ezt a kérdést.
Egy kicsit pontosíthatnád ha még aktuális..
Abból ne indulj ki, hogy a fórumozók ismerik a PowerQuery tanfolyam feladatait, mivel az egy fizetős kurzus…Minta adatok nélkül nem tudjuk, hogy
– Milyen szerkezetű a terv és a tény adatod
– Van-e még egyéb tábla?
– A terv és tény táblákat külön tartod vagy egybefűzöd?
– Mit csináltál eddig, és hol akadtál el?
– Egyáltalán milyen eszközzel akarod megoldani? Ha mértékről beszélsz, akkor talán PowerPivot?
– sorolhatnám még…Imre
–Szia!
Ránéztem egy kicsit, azt hiszem értem, hogy mit akarsz.
Mivel a sárga, zöld és narancs színű celláknak más a feltétele, így ugyanazzal a képlettel nyilván nem lehet megcsinálni, de talán arra gondoltál, hogy az azonos színűekben legyen azonos képlet.Szerintem meg lehet csinálni egy strukturális átalakítással, és néhány egyéb változtatással, amennyiben ez lehetséges.
A struktúrális változás az lennem hogy a második munkalapon lévő táblát (adatok) UNPIVOT-álni kellene, és rendes dátum oszlopot tenni bele.Ezután el tudom képzelni, hogy SUMHATÖBB függvénnyel megoldható lenne a történet.
Most csak a kérdés, hogy te el tudod-e képzelni egy másik munkalapra létrehozni egy átstruktúrált adathalmazt PowerQuery-vel?
Csatoltam egy megoldást, amiben a Munka1-en a te adataid alá lemásoltam az első két sort, és oda beképleteztem a három különböző feltétellel, és ugyanazt hozta, mint a te sima minta SZUM függvényed.
Úgyhogy szerintem jó.Előtte pedig megcsináltam a PowerQuery-vel az UNPIVOT-ot a Munka2-re.
Szóval ha csak használni akarod, akkor a képletekben a cellacímeket át kell módosítani, hogy az első adatsorból dolgozzanak,
(egy sárga, egy zöld, egy narancs) és utána ha megvan a színkódolás, akkor „csak” C/P.Imre
Attachments:
You must be logged in to view attached files.A link szövegesen, idézőjelek között van megadva, ezért darabokra szedhető és dinamikusan is összerakható.
Ha az utcák fájl elérési útja adott, akkor ahhoz kel hozzáfűzni a megfelelő lapnevet a városnév cellából.=HYPERLINK("[C:\Users\DELL\Documents\Excel_Bazis\dandras\utcák.xlsx]"&B4&"!A1";"utcák")
Csatolom a város fájlt, abban benne is van, kipróbáltam.
Az útvonalat kell módosítanod benne értelemszerűen.
Imre
Attachments:
You must be logged in to view attached files.Szia!
Hyperlinket össze lehet rakni függvények is.
Próbáltad?Imre
Megnyitottam, azon az egy cellán nem volt beállítva a „Sortöréssel több sorba” tulajdonság.
Bekapcsoltam, és megjavult.Imre
Szia!
Kérdés, hogy nem vagy-e szűrt állapotban, mart akkor nem működik.
Ha nem, akkor nézd meg az Excel beállításaiban (Fájl -> Beállítások -> Speciális -> Kivágás, Másolás, Beillesztés opciók -> Beillesztési opciók megjelenítése (vagy ilyesmi) legyen bepipálva.Nem tudom mi köze a kettőnek, de ezek szerint van, kipróbáltam, és ha ki van kapcsolva, akkor nekem sem jelent meg.
Ja, és mi történik, ha jobb gombbal húzod a kitöltő fogantyút?
Imre
2021-06-02-10:11 Hozzászólás: [Resolved] [Resolved] Ismétlődő értékek módosítása feltétel alapján #8619Örülünk 🙂
2021-06-01-14:18 Hozzászólás: [Resolved] [Resolved] Ismétlődő értékek módosítása feltétel alapján #8614Nem, az egészre kell kicserélni.
A DARABTELI-t kiveszed, és helyette a SZORZATÖSSZEG-től kezdődő teljes képletet kell írni, és annak eredményét hasonlítani össze eggyel.
Értelemszerűen a megfelelő paraméterekkel.SZORZATÖSSZEG(–(AZONOS(O17;$O$17:O17)))=1
Próba magyarázat
Az azonos fv egyesével megnézi, hogy az O oszlop aktuális eleme hányszor fordul elő pontosan az O oszlopban az elejétől az aktuálisig. Az eredmény egy tömb lesz, ami IGAZ/HAMIS értékekből áll.
A Dupla mínusz ezeket 1/0 értékekre cseréli. Tehát annyi egyes, ahány egyezést talált.
A SZORZATÖSSZEG ezt a tömböt összegzi, és így az egyesek összege darabszámot fog adni.Imre
2021-06-01-12:52 Hozzászólás: [Resolved] [Resolved] Ismétlődő értékek módosítása feltétel alapján #8612Először is JÉZUSOM!
Valóban a „09132” és a „9132” két különböző azonosítónak számít nálatok?
Tehát a fenti képen az első oszlopban mindkettő előfordulhat, és különbözőt jelent?És a keresési oldalon is különbözőt jelent?
A leírásod szerint ez van, ami eléggé elképesztő, ha ezek azonosítók.
Na mindegy, a DARABTELI viszont azonosnak tekinti őket, úgyhogy valóban nem lesz jó.Ebben az esetben a pontos egyezőséget vizsgáló egyik függvényt lehet bevonni, ami az AZONOS (EXACT) néven fut.
A képlet nem annyira triviális, mert egy tömbképlet, de most teljesen nem tudom elmagyarázni, csak próbáld ki a fenti DARABTELI-s képletet erre cserélni:=SZORZATÖSSZEG(--(AZONOS(A1;$A$1:A1)))
EZ MEGSZÁMOLJA, HOGY HÁNYSZOR FORDULT ELŐ AZ ELEJÉTŐL AZ AKTUÁLIS SORIG PONTOSAN AZ AKTUÁLIS SORBAN LÉVŐ ELEM.
Próbáld ki!
Imre
Szia Attila!
Hát, ilyet még nem láttam, hogy soronként más pénznem.
Ez jön valahonnan, vagy soronként lett beállítva manuálisan a pénznem?
A cellában ugye csak a szám van, és a formátumkód mondja meg, hogy hogy nézzen ki.
Szóval ezt az én eddigi tudásom szerint natív Excel formulákkal nem lehet megcsinálni, csak makróval.
Azzal ki lehet olvasni a cellában lévő szöveget, és abba szerepelni fog a pénznem is. (ActiveCell.Text)Informatikailag ez teljesen problémás, ezzel csak bajt okozunk magunknak vagy másoknak. Emiatt van szinte mindig külön oszlopban a pénznem.
Na, de van jó hírem is!
Utánanéztem, és találtam rá megoldást, szóval a világban előfordul máshol is ilyesmi 🙂
Igaz, hogy 2002-es bejegyzés, de működikA csatolt fájlban visszatöltöttem, kíváncsi vagyok, hogy nálad is működik-e.
Makrós munkafüzetbe kellet menteni, ezért zip-eltem.
De nem igazi VBA kódot tartalmaz, hanem Excel 4 makró függvényt abból akorból, amikor még az Excelben nem volt VBA, a makrók is függvényekkel dolgoztak. Ez még az előző évezredból való bőven 🙂Leírtam benne a teendőket és ki is próbáltam, nekem működott.
Imre
Attachments:
You must be logged in to view attached files.Szia!
Ahogy látod, RAR csatolmányra nincs felkészítve a rendszer. Zip jöhet, de egy kisebb példához a sima Excel XLSX is megfelel.
Látatlanban: Ha egy cellában van az összeg és a mértékegység, akkor az szöveges típusú lesz. Ez furcsa, de ha keveredve van, akkor már majdnem mindegy.
Ha 3 karakteres a pénznem, ahogy kellene (HUF és EUR), akkor csak az utolső 3 karaktert kell vizsgálni egy HA (IF) fügvénnyel.
Gondolom minden sornak van dátum értéke is, s ehhez még megvan egy másik táblában a napi árfolyam is, amit egy FKERES (VLOOKUP) függvénnyel tudsz kivenni.Imre
Csináltál benne egy ablaktábla felosztást.
Így két részre osztotta a munkalapot, mindkettőben függetlenül lehet görgetni vízszintesen.Ha rámész a függőleges osztóvonalra az egérrel, megváltozik, akkor a bal egérgomb nyomva tartása mellett tudod vontatni az osztóvonalat.
Húzd ki a bal vagy a jobb oldalra teljesen. Akkor eltűnik.Imre
Szerintem még van itt egy apró figyelmetlenség.
Miután kijelölted a teljes munkalapot, a JOBB OLDALI egérgombbal kell kattintani valamelyik betűn (fejléc) és utána választani a Felfedés parancsot.
Ha bal oldalival teszed, akkor új kijelölés lesz azon az oszlopon, amire kattintottál.Imre
Nos, akkor még egyszer fussunk neki, mert a leírásod alapján azt nem próbáltad, amit írtam. Lehet, hogy igen, csak nem tetted a felsorolásba.
1. Ablaktábla rögzítés kikapcsolása
Ha ez be volt kapcsolva, akkor már jó jel.
2. A teljes munkalap kijelölése a tetején, ahol a „A” betű és az 1-es szám találkozik, oda kell kattintani.3. Jobb klikk bármely oszlop fejlécen -> Felfedés.
Ha ezzel nem jön elő, akkor nem tudom….
Ha előjön, akkor örülünk, de fogalmam sincs, mitől tűnt el…Hacsak nem valahogy mégis tőled 🙂Pl. elrejtett állapotban tetted fel az ablaktábla rögzítését.
Imre
Kedves Imre!
Én azt látom, hogy az ablaktábla rögzítés (Feese Panes) be van kapcsolva.
Ha ezt kikapcsolod, akkor vagy egyből megjelennek, vagy még egy teljes munkalap kijelölés után kell egy jobb klikk-> Felfedés (Unhide…)próbáld meg, írj, hogy mi lett!
Imre
Szia!
Hát, nézegettem egy darabig, mire leesett, hogy mit szeretnél, vagy legalább is meg tudom kérdezni:
Szerintem azt akarod, hogy ha változtatod a tetején a dátumot egy hónappal későbbire, akkor a hónapok csökkenően lekövetik a képlet miatt, és a hónapokhoz tartozó értékek is kövessék a hónapok neveinek lefelé csúszását.Ha csak hónap és Összeg oszlop van, akkor ezt nem lehet natívan megcsinálni, csak eseménykezelő makróval, ami valljuk be, így „abszolút kezdőként” kicsit korai lenne.
Ha meghagyod a másik oszlopot (C) is, ahol a C5-től kezdődően eggyel balra és eggyel feljebbi cellára címzel, majd a dátum változásakor ezeket eggyel balra másolod értékként, akkor működhet.
Imre
Kedves Cassis!
Kérlek, hogy nyiss egy új topic-ot! (Jobbra fent találsz hozzá gombot.
Olvasd el figyelmesen az ott javasoltakat!Köszönöm,
Imre
Örülünk?
Szia!
Ha 365 van, akkor ne küzdj ezzel!
A Szűrő fv mindent tud, amit akarsz.Imre
Szia!
ha jól gondolom, akkor dinamikusan szeretnéd, azaz ha megváltozik a szeméy neve a fenti cellában (B2), akkor fusson le a szűrés, és hozza át a megfelelő sorokat az adott oszlopokból.
Ilyesmit natívan csak Office 365-ös Excel tud a SZŰRŐ függvénnyel.
Ha neked nem az van, akkor a következő lehetőségeid vannak:
1. tanulmányozod ezt a cikket, amit 2014-ben írtam: https://excel-bazis.hu/tutorial/dinamikus-szures-keplettel
2. Makrót használsz, ami vagy gombnyomásra vagy a B2 cella változására lefuttatja az irányított szűrést, aminek feltételtartományát a kiválasztott név adja.Imre
Kedves János!
Új téma/kérdés = Új topic.
Pláne ha már le van zárva az a topic azzal, hogy meg van oldva. [Resolved]
A kérdező érdeke is, mert egy korábbi kérdéshez jött hozzászólást a moderátor látja (én) és még azok, akik abban a témában hozzászóltak, és megjelölték követésre.Ha új topicot nyitsz, akkor a fórum minden előfizetője megkapja, hogy új kérdés jött.
Szóval kérlek, hogy nyiss egy újat.
A konkrét munkafüzetet nem kel feltölteni, de egy nem valós adatokat tartalmazót nem lenne rossz.Még mindig nem teljesen értem, de megkísérlem visszamondani.
– Van egy munkafüzeted egy munkalappal.
– Ezen megadod a dátumot (Ma fv),
– Megadod, hogy mennyi tisztítószerrel indulsz, mennyit használtál, mennyi maradt (vagy csak annyit, hogy mennyi maradt?
– Megadod azt is, hogy melyik mosógépen mi történt az adott napon? (Ez nem egyértelmű)Gondolom van kialakítva valami forma, sablon a kitöltéshez.
Azt szeretnéd, hogy ha ezt a munkafüzetet legközelebb megnyitod, akkor a mosógépek adatai legyenek üresen, de a tisztítószerek adatai mutassák az előző napon még megmaradt mennyiségeket, mint kiindulási adatot?
Ezt ugyanazzal a munkafüzettel nem nagyon lehet megcsinálni, esetleg valami makróval, ami a megnyitáskor kitöröl minden mosógép adatot, és az előző tisztítószer maradványt átírja kiindulási adatként.
Az előző napi mosógép adatok elvesznek? Elég furcsa, ha valóban ezt szeretnéd. Kinyomtatod a lapokat, és nem kell fájlban? Vagy egyáltalán nem kell, hogy mi történt a gépekben?Nyiss egy új témát, próbáld meg még egy kicsit jobban megfogalmazni, és ha lehet, tölts fel egy olyan minta munkafüzetet, amit szabad.
Imre
Szia!
Új topic-ot kezdj lszi!
Itt így senki nem fogja meglátni!Egy kicsit gondold át a kérdés megfogalmazását is, mert nem világos.
– Egy munkafüzetben gyűlnek balról jobbra a munkalapok?
– Tehát beszúrsz egy új munkalapot a végére, és azon történjen meg pár dolog automatikusan?Olyan nincs, hogy utoljára kitöltött munkalap, csak ha valahogy meg tudod mondani, hogy melyik az. Például ha mindig a végére teszel egy újat, akkor az előző lesz az utoljára kitöltött.
Imre
Szia!
Bar Chart Racing-nek hívják, jópofa!
Ez vagy egy erre való célprogrammal készült, vagy esetleg PowerBI-al, az már tudhat ilyesmit.
Az Excelben a PowerView is alkalmas különben ilyen animált, általában idősoron futó megjelenítésre.A forrás adattábla felépítése a lényeg, hogy tartalmazzon minden szükséges dimenziót.
Ha jól látom, itt van ember, párt, akciók száma, mindez szerintem napi bontásban lehet.
A dátumokat aztán hét-re osztva kérik az X tengelyenUtánanéztem, és igen, egy un. Custom Visual-t kell betölteni és felkonfigurálni az adatokkal, és ennyi.
Itt van két tutorial:
https://www.youtube.com/watch?v=tks7FDn6vKs&ab_channel=PavanLalwani-POWERBI
https://www.youtube.com/watch?v=sA9FsqB-J6M&ab_channel=AbhishekAgarrwalHa jól tudom, a Google datastudio is tud ilyet.
Imre
- A hozzászólás módosításra került: 3 years telt el-horvimi.
Örülünk! 🙂
Szia!
Mit csinálsz, ha van két egyforma nevű ember az első lapon?
Ha ez kizárható, akkor elég egyszerű a megoldás, főleg, ha a nevek az első oszlopban vannak.Egy sima FKERES függvénnyel le tudod kérdezni a névhez tartozó bármelyik adatot.
Imre
Hát, akkor örülünk! 🙂
Szia!
Tanulmányozd a TEXTJOIN és a UNIQUE függvényeket a GoogleSheets-ben!
Ezek nemrég bekerültek az Excel 365-be is, de a Sheets már évek óta tudja.A UNIQUE fv egy tartományból kigyűjti az egyedi tételeket egy tartományba, ami ott kezdődik, ahová a képletet írod.
A TEXTJOIN pedig egy tartomány celláit összefűzi. Megadhatsz elválasztójelet is, és azt is, hogy az üreseket figyelmen kívül hagyja-e.Csináltam egy próbát:
Az A-C oszlopba írogattam értékeket
Volt olyan sor, ahol mindhárom ki volt töltve, volt, ahol csak kettő, és volt, ahol tettem ismétlődést is.
Aztán a D1-be beírtam ezt a képletet, mjajd lehúztam:=textjoin(,TRUE,UNIQUE(A1:C1))
A UNIQUE egyedi listát csinál, és ezeket a TEXTJOIN összefűzi elválasztójel nélkül (ezért az első paraméter egy üres vessző), az üresek kihagyásával (ez a második paraméter, ami TRUE)
Ezt kerested?
Szia!
Megmondom őszintén, nem lettem okosabb. De te is érzed, ahogy írtad is 🙂
Szóval a Google sheets az válasz az egyik kérdésemre.
A hosszú leírás talán válasz a negyedikre, bár nem értem.Próbálom másképp kérdezni.
1. Az összefűzendő adatok egy munkalapon vannak egy sorban, egymás mellett, ahogy a mintában írtad?
2. Több különböző is lehet közöttük?
3. Lehetnek közöttük üresek is?
4. Az a cél, hogy ezekből egy egyedi listát készíts, majd fűzz össze egy cellába?- A hozzászólás módosításra került: 3 years, 1 month telt el-horvimi.
Szia!
Több kérdésem is lenne:
1. Melyik Excel verziót használod?
2. három oszlopod van a valóságban is?
3. Van olyan is, hogy 3 különböző van egy sorban, vagy két azonos és egy eltérő?
4. Mi az összefűzés célja?Azért kérdezek, mert egyrészt pontosan szeretném megérteni, amit szeretnél, másrészt elég sokszor kiderül, miután az ember tornázik egy csomót, hogy a valódi feladat jelentősen más, mint ami a mintában látható.
Imre
Szia!
Sikerült összeraknom egy tömbképletet, ami működni látszik, de néhány dolgot tisztázni kell.
Veled kapcsolatban:
1. Milyen verziójú Excel-t használsz?
2. ismered-e a tömbképleteket?
3. Ismered-e a névtartományokat?A modellel kapcsolatban:
1. Jól látom-e, hogy a Consumption lap fejlécében az értékek ugyanolyan sorrendben vannak, mint a Prices lap első oszlopában?
2. Ez a két rész bővülhet, szűkülhet-e a jövőben?
2. A profit képletben a prices lap melyik oszlopát használnád? (Rubel buy/sell vagy Dollár buy/sell), tehát a 4-ből melyiket?Ha várható változás, akkor karbantartási feladat is adódik.
A képlet így néz ki:
=SZORZATÖSSZEG(INDEX(consuption_data;HOL.VAN(B22;buildings;0););TRANSZPONÁLÁS(INDEX(Prices!$B$3:$B$41;SORSZÁMLISTA(39;1;1;1))))
Szívesen megmutatom és elmagyarázom, hogy hogy működik és hogy kell karbantartani, egy konzultáció keretében.
Ha érdekel, levelezzük le.Imre
Szia! (Ez egy köszönés) 🙂
Azt hiszem értem mit szeretnél.
Ugyan a csatolt fájlt nézve szerintem a Main lap B22 alapján szeretnél elindulni, és az eredményt az E21, E22 cellákba szeretnéd, de ez részletkérdés…Ez egy elég összetett művelet, egy képletet nem nagyon lehet rá írni.
Egyik lehetőség a makró.Másik, ha a segéd számításokat (kereséseket) teszel bel.
A „Consumption” lapon a tetejére lehetne tenni két sort, amibe a fejléchez tartozó árakat lehetne kikeresni a „Prices” lapról
Az egyikben a dollár ár, a másikban a rubel ár. Ha scak az egyik kell, akkor csak egy sor
Meg még egy üres sor a fejléc elé.Így a „Consumption” lapon előáll egy olyan, hogy a keresett érték a main lapon kiválasztott tétel sorának és a tetején lévő ár sornak a szorzatösszege lesz.
A nehézséget a Main lapon kiválasztott tétel sorának hivatkozása jelenti. Ez elég bonyolult.
Lehet próbálni INDIREKT függvénnyel, vagy esetleg ELTOLÁS függvénnyel.Imre
Szia!
Online Excelben nincs VBA.
Még még sok egyéb sincs, de most ez a lényeg…Imre
Szia!
Te csináltad a programot?
Kicsit zavaros a kérdésed, próbálom tisztázni.Azt írod, hogy gombnyomásra tetszőleges sort szeretnél átmásolni.
Ez mit jelent? Azt, amelyiken éppen áll a cellakurzor?A program a kettes sor adatait másolja a „Kiadólista” lapról a „Totalkiadas” lap első üres sorába.
Egy sort másol, fixen a kettes sorból az A:G tartományt.Én azt gyanítom, hogy nem jól fogalmaztad meg a kérdést. Talán tetszőleges számú sort akartál írni?
Akkor is az a kérdés, hogy ez mit jelent? Hogy derül ki a tetszőlegesség?
Esetleg azt szeretnéd, hogy a „Kiadólista” lapról minden sort hozzá akarsz fűzni a Totalkiadas” lap végéhez?Imre
Szuper, örülünk! 🙂
Azt hiszem igazad van.
-11-et kell csak visszamenni.Kipróbáltad?
Szia!
Szóval az utolsó 12 adatra van szükséged dinamikusan.
Ezt az ELTOLÁS (OFFSET) függvénnyel meg lehet csinálni. Valószínűleg az INDEX és az INDIREKT is használható lenne,
én az ELTOLÁS-sal oldottam meg.
A logika nagyjából a következő:A B oszlopban vannak az adatok, a fejléce az 1. sorban van.
Egy olyan tartományt kell kijelölni, ami az utolsó sortól visszafelé 12 sorral kezdődik, és 12 sor maga, 1 oszlop széles.
Azért így írom le, mert ezek az ELTOLÁS fv paraméterei.
A fő pont az utolsó sor megtalálása.
Kihasználjuk, hogy az 1. sorban kezdődik az oszlop, így ahány érték van benne, annyi sor van.
Ezt a DARAB2 (COUNTA) függvénnyel lehet megnézni.A tartomány tehát így áll össze:
=ELTOLÁS($B$1;DARAB2($B:$B)-12;0;12;1)
Lefordítva: A B1-től lefelé menjen annyit, ahány kitöltött érték van a B oszlopban, majd onnan menjen fel 12 sort és nulla oszlopot.
Innen jelöljön ki egy 12 sor magas és 1 oszlop széles tartományt.Ez egy tartomány hivatkozás, ami önmagában nem működik, be kell ágyazni valamilyen aggregáló függvénybe, mint pl. neked a DARABTELI.
Az első képlet a 10-nél nagyobbak számát adja vissza az utolsó 12 hónapból:
=DARABTELI(ELTOLÁS($B$1;DARAB2($B:$B)-12;0;12;1);"<10")
Én ilyenkor az ELTOLÁS függvényt el szoktam nevezni a névkezelőben, és a képletekben a nevet használom.
Ha a 40 diagramod 40 Excel fájlban van, akkor ez így kész.
Ha laponként, akkor a névkezelő már kicsit problémás, akkor legyen a beágyazott függvény..Csatoltan a fájl, a névkezelőben az elnevezett képlet.
Imre
- A hozzászólás módosításra került: 3 years, 1 month telt el-horvimi.
Attachments:
You must be logged in to view attached files.Szia!
Ha lapvédelmet kapcsolsz, akkor a sor és oszlop csoportosításról le kell mondanod, az autoszűrő használatáról viszont nem.
Ha bekapcsolod a lapvédelmet (pl. Munkalap neve jobb klikk -> lapvédelem…), akkor feljön egy ablak, aminek az alsó részében azok a a műveletek vannak felsorolva, amiket a védelem ellenére mégis lehet csinálni. A vége felé ott az „Autoszűrő használata”, csak be kel pipálni.Kipróbáltam, a többi művelet közül egyik sem engedélyezi a sor és oszlop csoportosítást.
Viszont a már meglévő csoportok ki-be csukogatását lehet engedélyezni
A fenti kód pedig azért nem jó, mert jelszóval védeni/feloldani egyszerre csak egy munkalapot lehet.
Erre szoktunk ciklust írni, ami végigmegy minden munkalapon.
Valami ilyesmi kellene:Private Sub Workbook_Open() Dim s As Worksheet For Each s In Sheets s.Protect Password:="Demo", AllowFiltering:=True, userinterfaceonly:=True s.EnableOutlining = True Next End Sub
Imre
- A hozzászólás módosításra került: 3 years, 1 month telt el-horvimi.
Megnéztem, nagyjából ugyanaz a megoldás, mint amit én javasoltam, csak egy kicsit másképp.
Lényeg, hogy megoldódott.Imre
A CSV ugye alapból nem ad nagy méretet, tiszta adat.
Az Excelben már van némi overhead.
Emellett az Excel nem adatbázis kezelő.
Ha több év adatait akarod kezelni, akkor az már más kategória szerintem.
Megpróbálhatod első lépésben az eredmény Excel-t XLSB-ben elmenteni és megnézni mekkora lesz.Következő lépés lehet, hogy Nem munkalapra gyűjtöd, hanem PowerPivot adatmodellbe, ami egy idő után amiatt is indokolt lehet, ha elkezded súrolni az Excel sorszám korlátját egy munkalapon.
Egy 35MByte-os Excel különben eléggé hétköznapi méretnek számít.
Imre
Kati!
Bedobnád a linket, hadd okosodjunk itt is?
Végülis az egészet ezért csinálom.Köszi
Ha nem töltesz fel minta táblát, akkor nekem további időt kell szánni arra, hogy teszt adatokat készítsek pont ugyanoda, kiprobaljam, stb…
Te kértél segítséget…Szerintem akkor nem érted, amit leírtam.
Tegyél fel mintát, és válaszolj a feltételezésekreSzia!
Olyan képlet nincs, ami ezt a két részt mondjuk a kódok alapján egymás mellé rendezné.
De másik megoldást viszont el tudok képzelni.Ehhez feltételezem, hogy egyik részben sincs ismétlődés. (Bár még az is lehet, hogy nem baj ha van)
És azt is feltételezem, hogy a második rész minden eleme előfordul az elsőben is.Szóval a következőt csinálnám
1. A két részt egymás alá tenném egy sor kihagyással
2. A tetejére az első szabad oszlopba írnék egy képlette, ami megnézi, hogy az aktuális sor kódja hányszor van meg az egész oszlopban. Ha ez 1-nél több, akkor kiveszi a kódot, különben üres szöveg.
3. A következő oszlopba megy egy ugyanilyen képlet, de az a megnevezést veszi ki.
4. A két képlettel lehúzod az első rész aljáig.
5. A képeteket értékké alakítani
6. A második rész lentről törölhetőHa a feltételezésem nem állják meg a helyüket, akkor mást kell csinálni.
Ha a feltételezés helyes, de nem boldogulsz vele, akkor töltsd fel azt a mintát egy Excel fájlban!
Imre
- A hozzászólás módosításra került: 3 years, 1 month telt el-horvimi.
Örülök, hogy sikerült.
A hibakezeléses dolognak nincs funkciója. Látom, kivetted. Benne maradhat, de a sub-on belül minden hibát el fog nyelni.
Ha pl. egy integer-nek stringet adnál, akkor „type mismatch error” hibát ad futás közben.
Viszont ez nem jön elő a hibakezelés kikapcsolása miatt.Szóval szerintem csak úgy veszélyes beírni egy ilyet anélkül, hogy kezelnéd a potenciális hibát.
Na hajrá!
Örülök, hogy megoldottad.
Valami gond volt a fórum motorral a WordPress-ben.
Frissítettem.Most lehet újra ZIP-et feltölteni és remélem a szerkesztés dolog is megoldódik.
Imre
Szia!
Elég kacifántos, mert a PQ nagyon szigorú, de nekem így sikerült egy biztató kísérlet:
Megvan az eredeti oszlopod, ami 96+1 sor ha jól értem. Ez 15 percenként 0:00-23:45-ig jó.
0. Ráindítod a Powerquery-t
1. PowerQuery-ben felveszel egy Index oszlopot 0-tól kezdődően
2. Felveszel egy egyedi oszlopot, amiben a képlet: = 1/24/60*15 (Ez 15 perc numerikusan)
3. Egy következő oszlopba összeszorzod az index oszloppal, kapsz egy 15 percenként növekvő listát
4. Ennek az oszlopnak módosítod a típusát időre. ha szövegesen akarod, akkor szövegre.Imre
By design nem lehet ilyet csinálni, ahogy írtam az előbb, csak értékmezőkkel lehet dolgozni a számított mezőkben, feltételeket is csak azokra lehet adni. Olvass utána, ha nekem nem hiszed el.
Mondjuk jobb lenne, ha simán hibát adna, de ehelyett hamisnak értékeli a feltételt, mivel soha nem teljesül.
Különben a pivot táblában jelenleg nincs is olyan oszlop, hogy „pénznem”, csak olyan, hogy „Sorcímkék”, de ha átnevezed se fog menni.
Viszont PowerPivot mértékkel, SUMX függvénnyel meg lehet csinálni amit szeretnél.
Az értelmét te látod, azt nem kerestem…
Imre
Különben pedig az a helyzet, hogy ilyet nem lehet csinálni, nem hinném, hogy bármelyik verzióban fut, amennyiben jól használod a számított mező fogalmát.
Számított Pivot mező csak az Érték (Szum) területre behúzott mezőkkel tud dolgozni, feltétel is csak azokra adható.
Egy számított oszlopot kell csinálnod az alap táblába (Ft összeg), és ott megcsinálni a szorzást, ha a pénznem „Ft”, majd azt a mezőt használni a PIVOT-ban
Mivel nem látom a munkafüzetet, a többihez nem tudok hozzászólni.
Imre
Szia!
És min nem fut?
Nem látok csatolt fájlt.
Ja, és gondolom a képletben az „EUR” értékeket akarod szorozni, hogy minden forint legyen nem?
Imre
- A hozzászólás módosításra került: 3 years, 2 months telt el-horvimi.
Zip-et tudsz feltölteni. A topic indításakor is odaírtam…
De szerintem meg fogod oldani.A hibakezelés kikapcsolásának semmilyen funkcióját nem látom a kódban.
Csak akkor csináljuk, ha a van egy olyan parancssor, ami hibát okozhat. De ezután meg szoktuk vizsgálni, hogy volt-e hiba…Imre
Azt én honnan tudjam?
Attól függ, mihez kezd vele az a rendszer, ahová importálod.
Mentsd ki, és nézd meg a csv-be mi kerül ezek helyére.
ha egy üres tagolójel, akkor OK.
Ha nem, akkor lehet gond.Ha Excelben rászűrsz ezekre a sorokra, kijelölöd és DEL, akkor megszabadulhatsz tőlük szerintem.
Különben hogyan keletkeztek? Ismered a származását?
Örülök.
Arra nem merek rákérdezni, hogy eddig mit csináltál 🙂Szia!
Ha nagyon gyorsan szeretnéd megoldani, akkor a Villámkitöltést ajánlom.
1. Az egybeírt nevek mellé beteszel két üres oszlopot
2. Az első név mellé beírod a vezetéknevet, majd kijelölöd a beírt vezetéknevet
3. Ctrl+E
4. Ugyanez a keresztnévvel.A szóközök mentén történik a darabolás. ha vannak 3 nevűek, akkor majd meglátod mit találsz ki 🙂
Lehet képlettel is csinálni, de ez a leggyorsabb, viszont nem frissít, ha cseréled a neveket, újra kell futtatni.Ugyanez a dátumokkal, csak itt ugye 3 üres oszlop kell
Elsőbe az évet, majd Ctrl+E
Másodikba a hónapot majd Ctrl+E
stb..Imre
Szia!
Épp ma találkoztam egy ilyen munkafüzettel.
gondolom a HOSSZ fv is nullát mutat.
Azt is gondolom, hogy a Minden törlése parancs (Nem a DEL billentyű, hanem aformátum törlés feletti) meggyógyítja.
A cellában ilyenkor egy üres string van, amit ugye dupla macskakörömmel szoktunk jelölni képletekben, makrókban, stb..
Írj le egy képletet, ami megnézi: Pl.:=C2=""
IGAZ-at fog adni. (szerintem)Lehetséhes, hogy
– A cella tartalma Copy/Paste eredménye, és a forráshelyen egy olyan képlet volt, ami miatt „” lett az értéke,
ide pedig érték beillesztéssel került.
– Saját magára értékbeillesztésként az előbbi
– Volt benne egy üres aposztróf, majd érték beillesztés történt saját magára
– Bármi egyéb… 🙂Imre
Szia!
Több probléma is van akóddal, de a hibát a következő okozza:
Olyan nincs, hogyRange(Cells(Jaavsor + 2, 15)).Value
Ha ezt beírod az immediate ablakba, hibát dob rá.
Mivel kikapcsoltad a hibakezelést (miért is?) ezért simán tovább megy, de a változóban nem lesz semmi.A Range-nem így nem lehet egy cellát megadni, de nem is kell, mert ez elég, és jó is:
Cells(Jaavsor + 2, 15).Value
Ha ezt javítod, valószínűleg jó lesz.
Egyéb problémák:
– A változók deklarációjánál egyenként kell típust adni, nem lehet őket tömegese tipizálni mint mondjuk C-ben
Tehát aDim a, b as integer
azt jelenti, hogy az a variant lesz, a b integer.
Helyesen külön sorrba, vagy :Dim a as integer, b as integer
– Az Inputbox mindig szöveget ad vissza, ezt nem kezeled idejében, a bevitelnél.
Ez lenne jó:TorzsSzam1 = CInt(Application.InputBox("Kérem a törzsszámodat!"))
Utóbbi nem biztos, hogy hibát ad, de megeshet.
És akkor már lejebb nem kell integerre alakítani Torzsszam2-t (sem)A többi részt nem néztem. Ha ezt javítod, és a logika jó, akkor jó lesz.
Imre
Így van!
hajrá!Szia Kálmán!
Ez nem anomália, hanem így működik, ez a helyes válasz.
A kérés a tartomány oszlopára és sorára vonatkozik, nem az aktív celláéra.A tartomány oszlopa és sora az, ahol kezdődik.
Akárhová helyezed a cellakurzort a tartományon belül,attól még az ugyanott fog kezdődni.Mit szerettél volna csinálni?
- A hozzászólás módosításra került: 3 years, 2 months telt el-horvimi.
2021-03-15-23:06 Hozzászólás: Dinamikus szűrés függvénnyel, duplikációk figyelmen kívül hagyásával, szummázás #8372Szia!
Ez egy PIVOT tábla probléma. A dinamizmust az oldja meg, hogy a forrás 3 oszlopot táblázattá alakítod.
https://excel-bazis.hu/tutorial/tablazatok-az-excelbenAz új sorok automatikusan belekerülnek a táblázat objektumba.
Aztán ez alapján készítesz egy kimutatást (PIVOT tábla). Azt ismered? (Beszúrás -> Kimutatás)
Ezután, ha változnak az adatok, csak frissíteni kell a kimutatást.
Ebből nem csináltam még ingyenes videókat, de van egy nagyon komoly videótanfolyam róla.
https://videotanfolyam.pentaschool.hu/courses/excel-pivot-tabla-mesterkurzusImre
Nem teljesen.
Én ezt már csináltam teljesen angol környezetben, ahol a Windows is és az Excel is angol, és a többi lehetséges vegyes környezetben is. Magánszemélyek,multik dolgozók, stb…Nálad van valami különleges.
A VB editor környezet pedig mindenhol angol, vagy inkább úgy fogalmaznék, hogy nincs belőle magyar, mert németet és franciát láttam már…
Na mindegy, ezt megjegyzem magamnak. 🙂
Imre
Windows 8.1??? Atyaég!
Az Excel viszont 2016-os. Ezt a kódot 2010-es verzión sokat futtattam, aztán 2013-on és 2016-on, végül 365-ön is.
Nem tudom, hogy mi a baja, valószínű, hogy valami regionális beállítás issue.
találtam egy fórum bejegyzést, ahol ugyanez a baj, ott sem tudták megoldani. Tehát legalább nem vagy egyedül a világegyetemben 🙂
https://www.ozgrid.com/forum/index.php?thread/1229157-recorded-autofilter-macro-using-array-with-date/&pageNo=1Nálad ez nem fog menni, hacsak valami beállítást nem sikerül megtalálni.
Őszintén szólva már vártam ezt a hibát, mert kicsit illékonynak érzem ezt az Array-es megközelítést.
Ennek ellenére kb. 10 év alatt nem jött kiMást kell csinálni, úgy felvenni, hogy 2007 május 1 és 2007 május 31 közöttiekre szűrjön.
Felvettem úgy, hogy az autofilter lenyitásakor „Két érték között”-et választottam, és megadtam 2007 május 1 és 31-et.Ezt vette fel:
ActiveSheet.Range("$A$1:$I$81").AutoFilter Field:=1, Criteria1:= _ ">=2007.05.01", Operator:=xlAnd, Criteria2:="<=2007.05.31"
Ezt futtatva nem működött. Nem dobott hibát, de üres fejléc maradt a szűrésnél.
Cseréltem erre:
ActiveSheet.Range("$A$1:$I$81").AutoFilter Field:=1, Criteria1:= _ ">=5/01/2007", Operator:=xlAnd, Criteria2:="<=5/31/2007"
Ezzel jó.
Nálam.Ha nálad hiba lesz, akkor játszogass a hónap/nap/év sorrendekkel.
Imre
A megoldásban se működik?
Ha abban sem, akkor nagy valószínűséggel a dátum forma más lehet a gépeden…Ha a megoldásban működik, (remélem nem), akkor fogalmam sincs 🙂
Szia!
Gyorsan megnéztem.
Természetesen nálam simán lefut 🙂Ezt a példát több száz ember megcsinálta már, soha nem jött hibajelzés.
Ha kikommentezed a dátum szűrést, a második szűrés lefut jól?
A megoldás munkafüzetben működik?Imre
Szia Kálmán!
Ha még nem derült ki, akkor a válaszodban töltsd fel a makrós fájlt.
VIGYÁZZ!
xlsm-et nem lehet feltölteni, de ha zip-eled, akkor már menni fog.Addig megkérdezem, hogy milyen Excel verzión, milyen nyelvi beállításokkal dolgozol?
Ha kiderült.akkor oszd meg velünk a megoldást 🙂
Imre
-
SzerzőBejegyzés