Hozzászólások
-
SzerzőBejegyzés
-
Remélem nem mondod komolyan, hogy ha képlet volt, akkor maradjon képlet.
Az érték beillesztésnek a lényege, hogy a képleteket értékké alakítja.
Persze másik lényege, hogy megtartja a cél formátumot.Amúgy nálam lefut az a kód, nem tudom, h nálad miért nem, de szerintem felesleges erre makrót használni
Én például azt csináltam, hogy az érték beillesztés gombot kitettem az eszköztárra magamnak, így egy kattintás az értékbeillesztés.
1. Fájl -> Beállítások -> Gyorselérési eszköztár
2.Középső oszlopban a gyakori parancsok helyett a menüszalagon nem szereplő parancsok
3. Megkeresed az Értékek beillesztése sort és nyomsz rajta egy dupla klikket.
4. Megjelenik a gomb az eszköztáron felül az utolsó gomb után
5. EnnyiHa mindenképpen billentyűkombinációt szeretnél hozzá, akkor az eszköztáron ezt a gombot tedd az első nyolcba.
Például ha ez a hetedik, akkor Így ALT-7-el működni fog. Ez már majdnem a Ctrl-É 🙂Imre
-
A hozzászólás módosításra került: 2 years telt el-
horvimi.
Ha jól értem, akkor a már ott lévő képleteket szeretnéd értékre cserélni.
Sub PasteasValue() Selection.Formula = Selection.Value End Sub
Nyilván előtte ki kell jelölnöd az oszlopot.
Imre
Látom, értem, köszönöm.
Speciális használati eset.
Azért készíts gyakran biztonsági mentéseket.Ha lenne még ilyen, akkor arra is figyelj, hogy ha egy munkalapot másolsz másik munkafüzetbe, akkor azok a képletek, amik másik MUNKALAPRA hivatkoznak, vissza fognak hivatkozni az eredeti munkafüzetbe.
Emiatt indításkor frissítési kérdés jelenhet meg. Ellenőrizd az Adatok -> csatolások szerkesztése menüt, hogy aktív-e és mik vannak benne.Imre
Szia!
Nagyon kíváncsi lennék, hogy mire használod a szövegdobozokat.
Van mintád? Esetleg olyan, ami a problémás dobozokból is tartalmaz párat?Ezt a mondatot nem tudom értelmezni:
„Nézet menüben egy +Ablakos duplikációval emeltem be cellákat, ez lehet-a baj? ”Sejtem, hogy a Nézet menüben egy új ablakot kértél ugyanarra a munkafüzetre, de a cellák beemelését nem tudom elképzelni.
Copy/Paste, vagy hivatkozás? Vagy?Esetleg próbáld meg a kijelöléspanelt előhozni, és azzal megnézni, hogy tudsz-e velük valamit kezdeni?
Kezdőlap -> Keresés és kijelölés -> Utolsó menüpont VAGY
Lapelrendezés -> KijelöléspanelItt különben át is nevezheted őket (dupla klikk) sorrendet változtathatsz (vontatás), láthatóságukat beállíthatod, kijelölheted, ha nem látszik vagy nem találod, mert lefedi egy másik.
Bocs, lehet, hogy ismerted.Aztán meg lehet próbálni makróval megfogni és mondjuk törölni őket.
Én csak vizualizációkhoz használok ilyesmit, néha megjegyzésként, de különben az objektumok tömeges használata sok probléma forrása lehet és a fájlméretet is jelentősen növelheti.
Imre
Én azt csinálnám, hogy a képletet is makróval írnám, ugyanazzal, ami az F1-F2-F3-ban változtat, majd a makró értékké alakítaná az eredményeket. Így a képletet csak a makró ismeri.
Ez elég kommon megoldás.Imre
Ja, igen.
Csak írtam, nem próbáltam.Nagyon szívesen 🙂
Próbáld ezt:
=SZŰRŐ(Táblázat1;BAL(Táblázat1[foksz];2)="12");"nincs")
Imre
Az irányított szűrő lehetséges megoldás, de az is statikus. Ha változtatsz a feltételen, akkor újra kell futtatnod.
De mivel mákod van, és 365 van neked, belekóstolhatsz az Excel új világába azzal, hogy használsz egy új függvényt.Ezt nézd meg:
https://excel-bazis.hu/tutorial/az-excel-szuro-fuggvenyeImre
Nagyon örülök! 🙂
Szia!
Egy komlett Excel tanfolyamot fogsz itt lenyomni ha jól látom 🙂
Különben ezen tényleg érdemes lenne elgondolkoznod, hogy a céget rá tudod-e venni.Szóval az összes kereső függvény (HOL.VAN, FKERES, XKERES…) csak az első találatig megy és ott megáll, hiába van több megfelelő érték.
A te problémádat szűréssel kell megcsinálni.
hogy a szűrés dinamikus legyen, azaz egy cellába írt pl. 12* után gyűjtse ki a megfelelőket, csak akkor lehetséges natív Excel eszközzel, ha Office 365-öt használsz.Ha nem, akkor lehet makróval automatizálni egy autofiltert például.
Szóval ezt nézd meg!
Imre
Teljesen hibás, ahogy próbálod.
A logikai függvények összetett használata mondjuk nem egyszerű.De látok még egy problémát, miszerint te csak azt az esetet fogalmaztad meg, amikor a bal oldali figura nyert, viszont a szettlistában a jobb oldali is nyert 3 szettet, így a meccset is.
Szóval a logika egy kicsit bonyolultabb szerintem.
Szabad szöveggel:(H6=11 és I6 <10) vagy (I6=11 és H6 <10) vagy (H6>10 és ABS(H6-I6)=2) vagy (I6>10 és ABS(I6-H6)=2)
Utóbbi esetleg egyszerűsíthető:
(H6>10 vagy I6>10) és ABS(H6-I6)=2
Először vegyük csak az első szettet, amit a H3-ba írt képlettel ellenőrzünk:
=HA(VAGY(VAGY(ÉS(H6=11;I6<10);ÉS(I6=11;H6<10));ÉS(VAGY(H6>10;I6>10);ABS(H6-I6)=2));0;1)
Most épp magyaron áll az Excelem, nézd el nekem 🙂 Az angolban neked angol függvényneveket és a pontosvessző helyet vesszőt kell használnod.
Szóval a VAGY (OR) függvényt ugyanúgy kel használni, mint az AND-et. Akárhány paramétere lehet, bármelyik IGAZ, IGAZ-at fog adni.
Ha jól megnézed, akkor azt látod, hogy a két AND-et betettem egy OR-ba, aztán van ott még egy OR és azt nézem az IF-el.
A szabad szöveges egyszerűsített verzióját írtam le függvényekkel.
Jól megdolgoztattál így az éjszaka 🙂Ha sikerül ezt nálad beüzemelni, akkor én a helyedben azt csinálnám, hogy ugyanezt a képletet egy kis módosítással beírnám a
J3, L3, N3, P3 cellákba.Így, ha bármelyik nem OK, akkor ott van valami gond.
Ha mégis 1 cellában szeretnéd látni az 5 szett ellenőrzését, akkor egy meglehetősen bonyolult kifejezést kell készítened.
VAGY
Változtatsz a logikai vizsgálat kimenetén és ha egy szett rendben, akkor a kimenet legyen nulla, különben pedig 1-es.
Én most ezt a képletet küldöm.
Ezután írd le az 5 ellenőrzést összeadva. Ha mind jó, akkor nulla lesz a vége, különben pedig a hibás szettek számát kapod.A szettenkénti verziót megoldással visszatöltöm.
Imre
-
A hozzászólás módosításra került: 2 years telt el-
horvimi.
Attachments:
You must be logged in to view attached files.Szia!
Gondolom a képletet az F5-be írod…
Egy kicsit kicsit kacifántosan írtad le, de azt hiszem értem.
Viszont szeretném látni legalább a egyik próbálkozásodat, lássam, hol rontod el.
Bekuldenéd a képletet?
Ha bemasoltad, utána jelod ki, és nyomd meg a CODE gombot fent!Köszi
Imre
Ez is gyönyörű megoldás!
Köszönjük!Csaba, arra kérlek, hogy ha nem annyira triviális függvényt vagy képletet használsz, akkor fűzz hozzá némi magyarázatot!
A célom az egész fórummal, hogy ne „csak” megoldásokat adjunk, amit a kérdező felhasznál vagy implementál, de igazából nem tudja, hogy mi történik.
A SZÖVEG függvényre gondolok itt most konkrétan. Ez nem annyira ismert. A PIVOT nem szorul magyarázatra, az több oldal lenne, ha nincs meg valakinek.Nem veszem el előled a lehetőséget 🙂
Köszi,
Imre
Ha belegondolsz, akkor egyértelmű. Az egyik összeadja a 11*-osokat, a másik a 12*-osokat.
Most még jobban örülünk 🙂
Én a képernyőképen az E3-ban látom a dátumot.
Kedves Erika!
Nem tudom, hogy hogyan próbáltál többet megtudni a függvényekről, de a lényeg, hogy több feltétel esetén a SZUMHATÖBB és hasonlók a feltételeket ÉS kapcsolatba hozzák, azaz minden feltételnek megfelelő sorokon csinálják a műveletet.
A te esetedben a leírt képlet összesíti az A oszlopot azokra a rekordokra, ahol a B oszlopban 11* ÉS ugyanakkor 12* van. Ez soha nem fog teljesülni. Neked VAGY kapcsolat kell. 11* vagy 12*
Ezt úgy kell, hogy SZUMHA(„11*”….) + SZUMHA(„12*”…)
Tehát két SZUMHA-t vagy egy feltételes SZUMHATÖBB-et összeadsz.Imre
Akkor örülünk! 🙂
Szia!
A SZUMHA tudja a joker karakteres feltételeket, tehát a csillagot is, de csak akkor, ha a feltételes oszlop szöveges típusú.
Neked viszont az első oszlopban lévő értékek valójában számok.Lényeges kérdés, hogy honnan és hogyan szerzed be az első 2 oszlopot (gondolom több oszlop is van), de valahol elromlik az adattípus, ha egyáltalán eredetileg szöveges volt valahol.
Utólag meggyógyítani úgy tudod, hogy az A oszlop típusát szövegessé teszed. Ez csak úgy oldható meg utólag, hogy:
1. Kijelölöd
2. Szövegből oszlopok
3. Elmész 2x tovább-al a 3.lépéshez és ott Szöveg típust választasz -> Befejezés
Az adataid átugranak balra és zöld háromszögek lesznek a bal felső sarokbanEzután, ha egy külön tartományba leírod egymás alá az összegzendő kategóriákat aposztoffal kezdve (’11*, ’12*, ’13*, stb…, akkor megírhatod mellé a SZUMHA függvényt és lehúzhatod, csak ne felejtsd el a tartomány rögzítést)
Én az E1-be írtam a 11*-ot, és a formula:=SZUMHA($A$1:$A$220;E1;$B$1:$B$220)
Imre
2023-01-22-11:04 Hozzászólás: Munkafüzet megatározott oszlopainak exportálsa új excel munkalapra #9535Nem kell korábbi bejegyzést keresned, most egy új kérdést tettél fel. Én csak arra utaltam,, hogy ha akkor makróztál, akkor biztosan most is makrózni akarsz, hiszen az oszlopok átmásolása egy több lépéses folyamat.
Ennek vázlatos megoldását adtam meg.Imre
2023-01-21-22:33 Hozzászólás: Munkafüzet megatározott oszlopainak exportálsa új excel munkalapra #9533Szia!
Az eddig indított témáid alapján (4 éve 🙂 ), azt tippelem, hogy makrós megoldást keresel.
Számomra nem használod egyértelműen a kifejezéseket: Munkalap, munkafüzet, Mappa
Ahogy értelmezem a feladatot:
Egy munkafüzet egyik munkalapjáról több oszlopot, (összefüggő vagy nem összefüggő) át szeretnél másolni egy másik munkafüzet munkalapjára úgy, hogy az eredményben ne legyenek képletek.Két eset lehetséges:
Ha nem összefüggőek az oszlopok, akkor csak annyi a megoldás, hogy kijelölöd Ctrl nyomása mellett az oszlopokat, majd sima Ctrl+C majd átváltas a célhelyre és Ctrl+V. Az eredmények automatikusan értékek lesznek akkor is, ha a forrásban képletek voltak.Ha az oszlopok összefüggőek, akkor az oszlopok másolása után a célhelyre érték beillesztést csinálsz és kész.
Emiatt tulajdonképpen elég annyit megjegyezni, hogy érték beillesztés, mert ez minkét esetben működik.Ezt vedd fel rögzítővel, módosítsd, hogy az oszlop kijelölések igazodjanak a forrás tartomány hosszához, és kész.
Ha az oszlopok mindig mások, amiket másolni kell, vagy sok oszlopról van szó, akkor az is lehetséges, hogy egy tartományba, vagy a program elejébe leírod, hogy mely oszlopokat kell másolni, és ezt behelyettesíted a programba.
Ebbe az esetben már ciklust kell írni.Imre
Én azért vetettem fel ezt a megoldást, mert sokkal gyorsabb, mint ha soronként iterálsz végig 44 ezerszer.
Tehát Excel szinten oldom meg a problémát, de makróval írom meg a képletet.
A FORMULAR1C1 egy Excel képletet ír a kijelölésbe.
He azt érted, akkor nem kérdezhetsz olyat, hogy hivatkozhat-e saját magára (pl. RC), mert Excelben ilyen nincs (körkörös hivatkozás)
Én megadtam neked azt a képletet, ami pont azt csinálja, amit most újra megkérdeztél:
„Nincs arra valami megoldás, hogy a p oszlopban, ha talál kötőjelet azt cserélje le az o első 3 karakterére?”
=HA(BAL(P2;1)="-";HELYETTE(P2;"-";BAL(O2;3)))
Ha az a probléma, hogy makró közben új segédoszlopok keletkeznek, akkor másképp kel megoldanod.
Én azt javasoltam, hogy az oszlopokra bontás után:
1. Az első oszlop gondolom változatlan marad
2. A második-harmadik-negyedik lehet potenciálisan olyan, hogy kötőjellel kezdődik, ezért erre a 3 oszlopra csinálsz 3 ilyen IF-es számítást 3 újabb oszlopba. (javaslom értékké alakítani
3. Az első, változatlan és az utolsó 3 oszlopot átmásolod az első lapra, a helyére
4. Kitakarítod az átmeneti oszlopokat.A jelenlegi tudásoddal ezt meg tudod csinálni szerintem.
Ha ez nem felel meg, vagy meg akarsz küzdeni egy programozás szempontjából nagyobb kihívással, akkor memóriatömböket kell használnod.
1. Eszerint az eredeti M oszlopot beolvasod egy tömbbe, majd egy ciklusban szétdobod 4 külön tömbbe
2. a 4 külön tömböt feldolgozod egyesével és átalakítod vagy sem a tételeit az ismert szabályok szerint
3. A 4 tömböt visszaírod az első lapra, a helyére.Ha nem foglalkoztál még tömbökkel, szerintem ez nagy kihívás elsőre.
A FORMULA2R1C1 akkor van, amikor a rögzítővel nem egyszerű képletet, hanem tömbképletet veszel fel.
Ez jelen esetben most nem releváns.Ha érdekel, nézz utána a tömböknek, tömbfüggvényeknek, tömbképleteknek az Excelben.
Nem ugyanaz, mint a VBA memóriatömbök, de hasonló.
Ha megoldást akarsz, és az a prioritás, akkor azzal főzz, amid már megvan.
Ha tanulni akarsz, akkor menj a nehezebb irányba.Imre
A textsplit-et most felejtsd el, ha már van működő TextToColumns, csak érdekességként írtam.
A formula kérdésedet nem igazán értem, de sejtem.Ha képletet akarunk makróval írni egy oszlopba, akkor két lehetőség van:
Egyik, hogy beírod a z első cellába, és utána dupla klikkel a sarkán, lemásolod az aljáig.
Ha ezt felveszed makró rögzítővel, kapsz egy eredményt.Másik, hogy az oszlopot előre kijelölöd, és abba teszed be a képletet (formulát)
Ebbe az esetben elég azt csinálni, hogy csak a képletet veszed fel. Ha beírtad, rögtön megállítod a rögzítőt.
Ha ENTER-rel zártad le a beírást, akkor valami ilyesmi lesz:
Sub valami
Activecell.FORMULAR1C1 = „=és itt lesz a képlet R1C1 formátumban, angol függvénynevekkel”
End SubKonkrétan, a te esetedre:
1. A TextTo Colomns az „O” oszloptól megcsinálja a bontást, ami ha jól emlékszem 4 oszlop, tehát O-P-Q-R
2. Tehát az S oszlopba kell a képlet, amit megadtam (Ha….), ami lekezeli a kötőlejes tételeket
3. Próbáld ki!
4. Ha működik, akkor vedd fel rögzítővel: Jelöld ki az S2 cellát, írd bele a képletet, ENTER
5. a felvett kódot alakítsd át, hogy az egész oszlopra megcsinálja:
`Range(„S2:S” & usor).formulaR1C1 = amit felvett
Range(„S2:S” & usor).formula = Range(„S2:S” & usor).value ‘értékké alakítás`
6. Próbáld ki!
7. Ha működik, akkor másolással megcsinálhatod a többi oszlopra (T, U, V oszlopok?)
8. a 4 oszlopot átmásolhatod az első lapra.Imre
Én már nem követem a folyamatot, elvagytok nélkülem is 🙂
De tennék bele inputot.
Ha jól értem, az egyes részek az M oszlopban alulvonással vannak most elválasztva.
Ha jól értem, bármelyik részben lehet kötőjel.
Elég lényeges kérdés, hogy több részben is lehet kötőjel, és akkor többször kell a helyettesítést megcsinálni?
Remélem az első tagban nem lehet 🙂Ha ez igaz, akkor alaposan el kell gondolkodni a dolgon, hogy el lehet-e kerülni a soronkénti feldolgozást, ami a kezdeti sebesség problémát okozta, azaz valami oszlop formula. Vagy az egészet memóriatöbmbbe kell tenni, ott feldolgozni, és visszaírni.
Másik lehetőség, hogy előbb oszlopokra bontod, és a kapott 4(?) oszlop mellé ugyanannyi kalkulált oszlopot csinálsz, ami megvizsgálja, hogy tartalmaz-e kötőjelet, és ha igen, megcsinálja a cserét. Ebből talán 3 is elég lehet, ha kijelenthető, hogy az első oszlopban nem lehet kötőjel.
A kapott oszlopokat végül átmásolod értékként az előző lapra, a helyére, utána takarítasz.
A „TextToColumns” helyett ajánlom figyelmedbe az O365 „SZÖVEGFELOSZTÁS” (TEXTSPLIT) függvényét, ami az egész M oszlopot az alulvonás mentén oszlopokra bont. Például.:
=SZÖVEGFELOSZTÁS(M2;"_")
Ezt beírva (makróval) az M oszlop után valahová, mondjuk O2-be, kapsz egy oszlopokra bontott tömböt az M2 celláról
Ha az egész oszlopba akarod betenni (44e sor?), akkor előbb ki kell jelölni, és utána betenni a formulát. Javaslom felvenni, mert a tömbképletek formula makrója kicsit eltér a hagyományos formuláktól. Nekem ez lett:
Selection.Formula2R1C1 = "=TEXTSPLIT(RC[-1],""_"")"
A Formula2 a lényeg.
Különben pedig, ha a TextToColumns már működik, akkor ezzel nem biztos, hogy kell szenvedni.Végül ezen tömb után lehet megcsinálni a kötőjelek cseréjét formulával oszloponként.
Nekem 3 oszlopot csinált a szétbontás a te mintád alapján, ezért az első szabad oszlopom az R lett.
R2-be írtam a képletet, ami a feltételes cserét csinálja.
=HA(BAL(P2;1)="-";HELYETTE(P2;"-";BAL(O2;3)))
Megnézi, hogy a szétbontott oszlopok közül a másodikban van-e kötőjel, és ha igen, akkor a kötőjelet kicseréli az előző oszlop első 3 karakterére.
Mivel relatív címeket használ, ezt elég jobbra lemásolni annyiszor, ahányszor ezt akarod, és előállnak a megjavított oszlopok.Imre
Szia!
Kérdés, hogy milye verziójú Excelt használsz?
Milyen nyelven?A problémát csak sejtem.
Pl. X oszlopban adja össze azokat a számokat, amik nagyobbak, mint valamennyi?
Ilyesmi?Imre
-
A hozzászólás módosításra került: 2 years, 1 month telt el-
horvimi.
Delila megoldása újabb gyönyörű példája a brute force cellánkénti loopolás és az oszlopkba egy lépésben illesztett képletek sebesség különbségére.
Minden munkalap interakció (olvasás, de főleg az írás) lassú. Ez 44e soron már elég jól látszik.És ezen még tovább lehetne finomítani a 365 új függvényeivel, de ha így jó neked Norbi, akkor íme egy lehetséges megoldás.
Én az „M” oszlopra írtam volna egy univerzális formulát, aminek az erdménye vessszővel tagolt szövegrészek, amit szétdobtam volna például TEXTSPLIT függvénnyel, ami 365-ös.
Még ciklus sem kell hozzá.Imre
Makrós fájlt csak ZIP formátumban lehet feltölteni.
Megint bebizonyosodott, hogy csak egy részfeladatra érkezett a kérdés.
Abban a bizonyos M oszlopban feldolgozhatóság szerint nem konzisztens adatok vannak.211853+263018 A + jel micsoda, Elválasztó? C és D oszlopokba kerülnének? 236321 236332 Ugyanez a kérdés a szóközre 240543/240544 Itt meg a slash-re 241003,263018 Nahát, itt meg egy vessző van! 241735 + 241737 Még jobb, a szóköz-pluszjel-szóköz 241861,-879,240475 Végül itt az eredeti kérdés mintája, megint vesszővel
Így meglehetősen problémás, ezt valahogy egységesíteni kellene, vagy minden létező esetet és a hozzá tartozó szabályt megadni.
Most az jutott eszembe, hogy lehetne csinálni egy kis segédtáblát, ahová felsorolod egymás alatti cellákba az összes lehetséges elválasztójelet, és képlettel vagy makróval minden elválasztót vesszőre cserélni. Ezután már egységesen lehetne tovább haladni, s szétdobni annyi oszlopra, amennyi vessző van benne.Imre
Szia!
Pár kérdés:
– Milyen Excel verziót használsz?
– Az egyes részek mindig ugyanannyi karakter hosszúak-e?
– Jól értem, hogy az egész eredetileg 1 cellában van, és ezt te 3 cellába szeretnéd?
– Tudnál feltölteni mintát, ami több adatot tartalmaz, de valós, vagy ahhoz közeli?Sokszor járunk úgy, hogy egyszerűsített adatot és kérdést kapunk, dolgozunk vele, majd kiderül, hogy nem is az a feladat valójában, ami a kérdésben szerepelt.
Feltételezve, hogy 1 cellában van és 3 cellát szeretnél, de nem fix a részek hossza, de a szabály az, amit írtál én ezt csinálnám:
1. Vessző mentén szétbontanám 3 oszlopra (Pl. szövegből oszlopok / Text2Columns paranccsal), esetleg a 356-ös Excel erre való függvényével úgy, hogy mindegyik szöveges maradjon
2. Kivenném a kötőjelet a középső elejéről (HELYETTE / SUBSTITUTE függvény)
3. A középső elejéhez fűzném az első elejét (BAL/LEFT és összefűzés & jellel)A válaszok és minta után konkrét megoldás is születhet.
Imre
Szia!
A legfelül lévő, éppen aktív form bezárógombjához tartozó eseménykezelőben bezárod a többi formot is.
Vagy egy másik bármilyen esemény kezelője esetén ugyanígy
Unload form_neve vagy form_neve.visible=FalseAttól függ, hogy mit szeretnél a későbbiekben.
Imre
Én ezt a módszert hasznátam már 2010-nél biztosan…
Nem értem Delila, hogy nálad mi lehet.Sziasztok!
Hát, szerintem egy kicsit elbonyolítottátok mindketten a dolgot.
Mindenesetre a kulcs ott van, hogy kell lennie valahol egy egyedi megfeleltetési táblának, amiben az első oszlop az „Értesítés” oszlop egyedi értékei, a második oszlopban pedig a hozzájuk tartozó kategória szövege.Ezután ez egy sima FKERES probléma.
Laci, ha ezt a segédtáblát nem akarod megjeleníteni a munkalapon, akkor ugyanúgy elkészítheted 2D tömbkonstansként is.
1. Hozd létre a segédtáblát, ahogy delila csinálta
2. Egy üres cellába írj egy egyenlőségjelet és utána jelöld ki a segédtáblát. A formula a tartomány címét fogja mutatni
pl.:=E2:F36
3. Nyomj egy F9-et. Erre a tartománycím átalakul egy 2D-s tömbkonstanssá, valahogy így:
={"ÜF"\"Raktár";"ÜF BP"\"Raktár";"SZI"\"Értékesítés";"ÜF email"\"Raktár";......stb}
Lehet, hogy neked a backslash helyett vessző lesz, ez nyelvi verziótól függ.
A backslash jelöl egy új oszlopot, a pontosvessző jelöl egy új sort.4. Jelöld ki az egészet egyenlőségjel nélkül, és a névkezelőben készíts egy új nevet, majd a névhez tartozó referenciába másold a vágólap tartalmát. Én a „próba” nevet adtam neki
5. A tábla „B” oszlopbába mehet egy FKERES, ami ebben a névtartományban keres.
Nálam:=FKERES([@Értesítés];proba;2;0)
Ha akarod, lehet HAHIBA fv-el fűszerezni6. Az elején készült E2:F36 tartomány törölhető.
Imre
Új eposzi jelzőt kaptam. Már megérte 🙂
Szia!
A képek az Excelben külön rétegen vannak, ezért ha manuálisan csinálsz másolást, akkor a méretezést egyesével kell csinálni.
Lehet méretezni a képet a cellához, illetve a cellát a képhez.
Makróval persze bizonyára lehet gyorsítani a dolgot.Az Excel 365-höz nemrég jelentette be a Microsoft, hogy nemsokára megjelenik a termékben egy új lehetőség, miszerint a kép a cella tartalma lesz, és nem külön rétegen. Talán méretezési opciókat is meg lehet majd adni.
Imre
Félreértetted a CELLA függvény első argumentumát.
Oda nem a fájl útvonala kell, vagy a neve, hanem az a konkrét szöveg, hogy:
Magyar esetben „filenév” így dupla idézőjelek között
Angol esetben „filename”Imre
Teljesen jól tetted fel a kérdést, meg is adtam a választ.
A fentiek érvényesek azonos munkafüzetbe másolásra is.
Kipróbáltam, teljesen jól működik.Te úgy látom, hogy nem próbáltad ki.
Nálam éppen angol az Excel.
Ha ez a baj, akkor a MID = KÖZÉP, a CELL= CELLA, „filename” = „filenév”, SEARCH = SZÖVEG.KERESImre
Szia!
én így szoktam:
=MID(CELL("filename";$A$1);SEARCH("]"; CELL("filename";$A$1))+1;40)
A CELL (CELLA) függvény egy ritkán használt függvény. Segítségével különböző információk kérhetők le az aktuális munkafüzetről vagy munkalapról vagy valamelyik celláról.
Pl. a CELL(„filename”; cellacím) az aktuális munkafüzet útvonalát és az aktuális munkalap nevét adja vissza ebben a formátumban:
"C:\Users\DELL\Desktop\[pppp.xlsx]valami"
Ebben megkeresem az első záró kapcsos zárójel pozícióját, és onnantól kezdve kiveszek 40 karaktert. Mivel a lapnév az Excelben max 35 karakter, ezért max annyit vesz ki.
Ha ezt a képletet beírod egy létező, elmentett munkafüzet egyik lapjára, akkor visszaadja a lapnevet.
Ha ezt a lapot átmásolod egy új munkafüzetbe, akkor hibát fog adni, mert az új munkafüzet még nincs mentve.
Ha mented, akkor meggyógyul, de még kell neki valami miatt egy frissítés.
Én kettőt szoktam kattintani a képletet tartalmazó cellán, de nem nyúlok hozzá, csak Enter-rel lezárom.
Kész.Imre
Tudom, hogy örökölted, azért mertem leírni 🙂
Szia!
Megnéztem, azt hiszem rájöttem mi volt a te problémád.
A fő ok az, hogy még az elején tartasz a PowerQuery felfedezésének.
Előbb utóbb jönnek olyan feladatok, amiket nem lehet kattintgatással megoldani.
Ez is ilyen, mert az egyes darabok ilyen bénán vannak megtervezve.A fő gond az volt, hogy a mintafájl feldolgozásánál a három oszlop létrehozása után át is kell nevezni őket.
De mivel az előző lépés a fejléc előreléptetése, ezért az utolsó 3 fejlécbe bekerül a mintafájl 3 konkrét értéke (Konkrét dátum, megrendelés száma és megrendelő neve).
Az átnevezés során ezeket keresi, de nem fogja megtalálni, mert minden darabban ezek változhatnak.Emiatt oszlopszám alapján kellett az átnevezést csinálni. Pl. a 13. oszlop neve legyen „valami”.
Ez csak M kóddal lehetséges most.Megcsináltam így, és az összefűzés szépen elkészült.
A mintafájl esetén a „Mit szabnak vele” oszlopból vettem ki a null értékeket, hogy eltűnjön minden olyan sor, ami nem kell.
ha ez nem jó, mert lehet olyan darab, ahol ez nincs kitöltve, akkor majd változtasd meg.Visszatöltöm a megoldást.
A mappa útvonalat a lekérdezések közül a „Mintafájl” nevű lekérdezés Forrás lépésében és a külső (utolsó) lekérdezés forrás lépésében tudod elvégezni.
Imre
Attachments:
You must be logged in to view attached files.Csomagolj össze 10-20 db ilyen fájlt, jó vegyesen, és küldd el nekem, megnézem
Valahogy eltüntetted az összefűző lépést a külső lekérdezésből.
A fejlécben az egyik tétel neve mellett kell lennie egy ide-oda mutató nyilacska ikonnak.
Elvileg azzal fűzi őket össze.
Így utólag még nem próbáltam, de talán jó lehet.Sziasztok!
Kicsit tesztelgettem.
Úgy is, hogy a lapvédelem bekapcsolásakor a feljövő menü végén engedélyeztem az autoszűrő használatát.
Sajnos, a lapvédelem egyértelműen tiltja a szűrő és szűrés törlése parancsokat.Emiatt vagy marad az egyesével, vagy egy kis makrócska kell, ami feloldja a védelmet, kikapcsolja a szűrést, majd visszateszi a védelmet. Persze ehhez tudni kell a lap jelszavát.
Ezt a makrócskát lehetne tenni az egyéni makrófüzetbe, és adni neki egy gombot az eszköztárra.
Így megvalósulna a címben lévő „Egy mozdulattal” érzés 🙂Imre
Szia!
Ez csak makróval oldható meg.
Itt van pl. egy megoldás, amit kis módosítással tudnál használni:
https://stackoverflow.com/questions/17241302/independently-sort-multiple-columns-in-excelA kód alatti egyik komment leírja a módosítást is, ha esetleg bármelyik oszlopban lenne üres cella is.
Ezen kívül vannak még megoldások is a neten, ha ezzel nem boldogulnál…
Imre
Szia!
Ha a Zöld szám oszlop üres lehet, akkor válassz egy másikat, ami nem lehet üres, és a Null-ok törlésével minden nem oda való sor kijön. Persze ennek igaznak kell lennie az összes (500) fájlra.
A kompatibilitási hiba lehet az Excel és így a PowerQuery verziók eltérése miatt, de ez nem olyan művelet, ami ne lett volna benne már régóta, ez nem okozhat hibát.
Mindegy hol próbálkozol, csak a forrás útvonalakat kell mindig átváltoztatni.
A fájlok is lehetnek teljesen különbözők akár otthon és a cégnél, nem számít, csak meg kell találni, vagy elő kell állítani az egyforma szerkezetet. Ha ez nem lehetséges, akkor a PQ-vel nem lehet megoldani a problémát.#”előző lépés neve”{1}[Column10] – Ezzel i a baj?
Nem értem mit akarsz a Shift-Space-el…Imre
Az 5. és a 6. oszlop is alkalmas a dologra.
Ha nem mindenhol van Zöld szám oszlop, de az oszlopokat különben mindegyikben ugyanúgy hívják, és mindegyikben a Megrendelés munkalaphoz kell csatlakozni, akkor ez nem baj, használd a szűrésre az 5. oszlopot. Ha nem lenne Zöld szám oszlop, akkor a 6. oszlop megy előre 5. oszlopnak, ami szintén alkalmas null-ok kiszűrésére.
Viszont a Dátum, Megrendelésszám, Megrendelő cellák kirakása oszlopokba konkrétan a 10, 11, 12 oszlopokat használja a második sorból. Ha nincs Zöld szám oszlop, akkor összesen csak 11 oszlop lesz, nem 12, és ez a három oszlop előbbre tolódik.
Jól látom ezt?
Ha igen, akkor ez elég nagy problémaHát, most nyeltem hármat, maradjunk annyiban…
Hiába hívom fel a figyelmet, számtalanszor szívattak már azzal, hogy nem a valódi mintát mutatják, az csak később derül ki.
Nem kel nekem valódi adat, de a szerkezet az fontos.Először is kezd elölről az egészet.
Én a most küldött mintákban egységesen azt látom, hogy ha a mintafájl átalakításnál a „zöldszám…” oszlopból kivennéd a „null” értékeket szűréssel, akkor a nem kellő sorok kapásból eltűnnének, mindegy is, hogy hol vannakA túlcsordulás hiba meg azért van szerintem, mert nincs 13 oszlop, csak 12
Imre
Az a fontos, hogy küszködj! 🙂
Nem kell táblázatot csinálni és nem kell átírni a cellát kötőjel nélkülire.
Nem a táblázattá alakítás miatt lett Column10 a K oszlop.
Valószínűleg az történik, hogy a mintafájl átalakítás nálad tartalmaz egy automatikus lépést, amivel az első sort fejlécbe lépteti.
Mivel abban a sorban csak a K1 van kitöltve, ezért azt a tartalmat lépteti a fejlécbe.
Töröld azt a lépést, ami a fejléc előléptetést csinálja! Az elején van.
Így minden marad a helyén, és felül Column1…Column10 fejlécnevek lesznek.Imre
Szia!
Kipróbáltam, nálam a Shift+ESC működött. A Ctrl-ESC-t nem próbáltam.
Ezek után nem tudom, hogy mit mondhatnék…Te próbáltad másik gépen?
Nekem 365 verzióm van.Imre
Nos, akkor van egy megoldás, amit értesz és meg is tudnád csinálni, és van egy még jobb, amit meg nem.
Egyik lehetséges út, hogy sikerül kiguglizni, és sikerül is implementálni.
Másik lehetséges út, hogy „valaki” megcsinálja neked 🙂
Az biztosan nem fér bele, hogy meg is tanítsa.A PowerPivot-DAX világában idáig eljutni, hogy az alapokat értsd és tudd alkalmazni, majd ezt a problémát is meg tudd oldani, vagy legalább értsd, egy hosszabb tanulási utat igényel.
Mi lesz a te utad?
Szia!
Ha jól értem, akkor az aktuális havit szeretnéd a teljes éves átlaggal összehasonlítani az adott vevőre.
Évesen azt értem, ahol tartunk az évben most, azaz amíg van adat az adatforrásban.Tehát a januárit is a jan-szept átlaggal szeretnéd összenézni.
Csak meg akarom érteni a feladatot.
Hagyományos pivot táblán belül ez nem nagyon csinálható meg.
Esetleg lenne egy ötletem, amit kipróbálnék:
Az adatforrásba tennék egy plusz oszlopot (vevőátlag), ami a sorokban az aktuális sorban lévő vevőre vonatkoztatott átlagot számolja az egész forgalom oszlopra. Ez egy ÁTLAGHA függvénnyel megcsinálható. Egy vevő minden előfordulásához ugyanazt az értéket fogja mutatni, de ez vevőnként más lesz.Ha ezt a oszlopot behúzod a PIVOT-ba és MAX vagy MIN fv-el összesíted, akkor vevőnként fogja mutatni ugyanazt a számot, amit a forrásban ismétlődve mutat.
Az aktuális havi és az átlag különbségét viszont már a PIVOT-on kívül kell megcsináld (sima kivonás), mert a számított mező csak SZUM függvényre képes és azt csinálja is, ami nekünk most nem jó.
A számított mező vevőnként ezt mutatná: SZUM(Forgalom) – SZUM(vevőátlag)
Neked meg ez kell: SZUM(forgalom) – MAX(vevőátlag)És ha már kell egy kalkulációt tenni a PIVOT mellé, akkor a vevőre vonatkozó ÁTLAGOT ott is kiszámolhatnád az említett ÁTLAGHA függvénnyel. Így nem kell az adatforrásba plusz oszlopt tenni, ami nem csak felesleges plusz annyi kalkuláció, amennyi sorod van, de jelentősen lassú is lenne (a sorok számától függóen)
Tehát a javaslatom az, hogy a meglévő PIVOT mellé csinálj egy ÁTLAGHA öszesítést, lés amellé pedig egy kivonást.
Ha mindenképpen a PIVOT-on belül szeretnéd megoldani, akkor POWERPIVOT + DAX a megoldás.
Imre
Ha az egyben átmásolás azt jelentette, hogy az egész munkalapot, nem pedig a tartományt, akkor simán lehet, hogy a munkalap objektum tartalmazza a linket valahol. Roppant kíváncsi lennék, bizonyára tanulságos.
de ha neked elég, hogy megoldódott, akkor boldogság van 🙂
Imre
Egyszerűen csak használd, amikor egy probléma adja, hogy PQ lehet a megoldás.
Ha valamit nem tudsz, de tudsz kérdezni, az már jó.
Kérdezd a G-t először.Annyi minden van, hogy megjegyezni a mikéntjét szerintem nem lehet, de lehetőségeket talán igen.
örülök, hogy segíthettem.
Annak örülök, hogy ha próbáltad.
A kulcslépést akkor valószínűleg nem találtad meg, de ez nem is elvárható, ha az elején jársz még a PQ-nek.
Szóval van lehetőség abszolút módon meghivatkozni egy „cellát” a táblában a sor és oszlopszámával. A megfogott értékből lehet csinálni egy új oszlopot.
Ezt kell csinálnod a Dátum, megrendelés szám, megrendelő cellákkal egyesével a J2, K2, L2 cellákból.
A hivatkozás úgy néz ki, hogy Táblanév{sor száma}[oszlop neve]]
A sorokat a PQ nullától sorszámozza, tehát az első sor a nulladik sor.
Például a dátum a második sor Column10 oszlopában van:
#"előző lépés neve"{1}[Column10]
A mintafájlban a lépések
– Utolsó két sor törlése
– A dátumot a leírás szerint egy új oszlopba teszed
Új, egyéni oszlop, aminek a neve „Dátum” és a képlete: = #”előző lépés neve”{1}[Column10]
– Ugyanezt megcsinálni a megrendelés száma és a megrendelő cellákkal (Column 11 és Column 12)
– Most már törölhető az első két sor
– Fejléc előreléptetés
– Az új 3 oszlop átnevezéseEzután a külső, eredmény lekérdezésben ott lesz az összefűzött változat.
A mintát, ahol egy táblázatra építve megcsináltam ezt, csatolom neked.Imre
Attachments:
You must be logged in to view attached files.Szia!
Egy kicsit nézegetem, aztán meg tudtam csinálni PowerQuery-vel.
Ha valóban minden munkafüzet azonos szerkezetű, akkor menni fog:
– Mindegyikben a „Megrendelés” lapot kell feldolgozni
– Ugyanezek az oszlopok és ugyanennyi
– A J, K, L oszlopok teteje ugyanilyen
– A végén mindig 2 sor van, amiket törölni kellBeteszed az összeset egy mappába, és mappából összefűzést csinálsz
A belső mintafájl átalakításban kell betenni:
– Utolsó 2 sor törlése
– Új oszlopba a Dátumot, a megrendelés számot és a megrendelőt (Az egész oszlopban ugyanaz)
– Törölni az első 2 sort
– Fejlécbe léptetni az első sort
– Átnevezni az utolsó 3 oszlopotKész.
Imre
A v
Ja, ez egy makrós fájl (xlsm)?
Én még megpróbálnám, hogy csinálnék egy új munkalapot, majd az összes többit kitörölném, és menetenék.
Ezután is megnézném, hogy mit mutat.
Így próbálnám kideríteni, hogy a link forrása egy munkalapon van-e vagy valahol a makró oldalon?Imre
Szia!
Olvad el ezt, hátha valamelyik segít!
https://excel-bazis.hu/tutorial/szabadulj-meg-a-kulso-fantom-linkektolJelezz vissza!
Imre
Szia!
Hát enyhén szólva nem egyértelmű a feladat, de homályosan sejthető. Amit sejtek:
Részletfizetésről van szó?
Van egy számla egy eredeti összegről, és azt törleszti, így minden befizetéskor csökken a tartozása?
Emiatt a számlaszám minden befizetéskor ugyanaz?Ha ajó a modell, akkor ez megcsinálható viszonylag egyszerűen.
Pl. Az eredeti, teljes összeg pozitív, a befizetés negatív értékekkel, akkor egy sima összesítés számlaszámonkéntBárhoyg is, az eredeti összegnek meg kell lennie egy számlához, és a hozzá tartozó befizetéseket is azonosítani kell, és kapcsolnio az eredeti számlához.
A befizető is a számlához tartozik egyértelműen, de a számla azonosító fontosabb.Kb ilyesmire gondolok, de minta nélkül nem tudok tovább menni.
Imre
Szia!
Most vettem észre ezt a kérdést. Ha még nem találtál megoldást
A sima szöveg helyett (Body) formázott szöveget kel betenni ilyenkor, ami ráadásul HTML.
Ezért HTML kódot kell generálni VBA-bana tábla addataiból.Előny, ha értesz egy kicsit a HTML-hez, hogy a táblázat milyen leíró TAG-ekkel van jelölve.
A neten elég sok megoldás van erre.
Pl.:
https://stackoverflow.com/questions/48496195/sending-excel-table-in-mailbodyA formátumot nem őrzi meg, csak az értékekekt, de táblázat lesz.
ha formátumot is akarsz (más színű fejléc, vagy ilyesmi), akkor még az is feladat.Van itt egy másik megoldás, ami lehet, hogy megőrzi a formátumot, de nem próbáltam, csak ismerem ezt a holland fószert, elég jó kódokat tett közzé:
https://rondebruin.nl/win/s1/outlook/bmail2.htmImre
Szia!
A sebesség leginkább a lekérdezéshez használt adatkészlet méreténél szoott gondot okozni frissítéskor.
A lekérdezés megnyitása és létrehozása során nem annyira jellemző.Okozhat problémát az is, hogy az adatforrás, amihez csatlakozik, az a hálózaton van, és nincs megfelelő sávszélesség.
Milyen forráshoz csatlakozol?
Imre
Nagyon szívesen!
Imre
Hagyományos excel eszközökkel nem. Olyan formula nem létezik, ami saját maga értékét megváltoztatja.
Eseménykezelő makróval megcsinálható.Imre
Durván néz ki a képlet, értem is, hogy mit akarsz, bár most esett le, hogy az átbillenéstől számítva hátrafelé kel menni 5 cellát.
Viszont a képlet szerintem hibás.
Ha neked jó eredményeket hoz, akkor OK, de különben a HA függvények elején a feltétel vizsgálatok az első kivételével nem stimmelnek.Nézzük a második elágazást:
HA(SZUM($D4+$E4>$B4);SZUM($E4:$I4);különben tovább...)
A SZUM függvény zárójeleiben ez van:
$D4+$E4>$B4
Ez azt jelenti, hogy adja össze a D4-et és az E4-et, és nézze meg, hogy az eredmény nagyobb-e, mint a B4. Ez a reláció IGAZ vagy HAMIS
Jelenleg HAMIS, azaz nulla. Minden HA ágban ez egy darab logikai érték lesz
Majd ezt szummázza. Szerintem a SZUM fv nem kell ide, mert az összeadás más szummáz.Helyesen szerintem minden ágban:
HA($D4+$E4>$B4;SZUM($E4:$I4);különben tovább...)
Lehet, hogy a SZUM nem zavar az eredményben, de az elhagyásável jóval rövidebb lesz a képlet.
Persze látom, hogy elég sokat melóztál vele így egyesével, szóval ha működik, akkor nem kell bántani.Szerinted?
Imre
-
A hozzászólás módosításra került: 2 years, 4 months telt el-
horvimi.
Klasszik.
A windows magyar, az excel angol vagy angol nyelvi interface van beállítva.
Ha ezen a gépen dolgozol különben, akkor ez így van már egy ideje…Örülünk, hogy megoldódott.
Próbáltad már az angol képletet pontos vessző (nem pont) elvalasztassal?
Hát akkor hajrá, a videotanfolyam oldalon tudod megrendelni a hozzáférést.
Utalásos számlát küldünk, és ha megjött a pénz, aktiváljuk a hozzáférést.De lényeges, hogy ez egy alap kurzus.
Imre
Szia!
Videót nem lehet feltölteni ide, de ezt elvileg látnod kell, hogy nem sikerült.
Emiatt az sem látszik, hogy milyen adatkészleten, milyen képletet próbáltál.Az viszont gyakori hiba, hogy a YouTube videókban legtöbbször angol Excellel mutatják a dolgokat, ahol vessző az argumentum elválasztó, és neked ha magyar Excel van, akkor ott meg pontosvessző kell.
Tehát ha az angol függvénynevet magyarul írod, az még nem elég.Imre
Hát, ingyenes magyar nyelvű makró kurzus nem nagyon van.
Angol nyelven pedig elég sok, csak rá kell keresni.
A Youtube-on is vannak 10 órás bevezető VBA kurzusok.Én kb. 30 éve programozok különböző nyelveken, ezért a VBA-t már könnyű volt megtanulnom x-dik nyelvként magamtól is.
Ugyanis véleményem szerint nem a programnyelv a lényeges, hanem a gondolatmenet, az algoritmus, amit te kitalálsz, és leprogramozol.
Ehhez sok kisebb-nagyobb projektet kell végigcsinálni és tapasztalatot szerezni.
Meg persze kell hozzá egy attitűd, ami nem annyira tanulható…
Bármilyen tanfolyam ehhez egy jó kezdő lökést adhat, a többi rajtad múlik…Én is készítettem egy bevezető makró kurzust, amit videotanfolyam formájában is el lehet érni.
https://videotanfolyam.pentaschool.hu/Elég népszerű, de addig nem megy el, ami a te problémádhoz kell.
A te problémádat programozási szempontból közepes nehézségűnek ítélem meg. Idáig eljutni, hogy önállóan megcsináld, nem kevés idő, legalább is szerintem.
Imre
Hűha, ez nagy kihívás Excel formulákkal.
Nekem nem is nagyon sikerült elsőre.Csak pontosítás miatt vegyünk egy sort.
Ott balról jobbra menve az értékek között, meg kell keresni az elsőt, ahol a sor gördülő összege >= mint a sor elején lévő készlet. Ezután a megtalált cellától kezdve balra a megelőző cellák összege kell. Elvileg 5 nap, de a példádon az látszik, hogy van olyan, amikor nincs 5 érték az elejéig (20, illetve 23. sorok) Ilyenkor gondolom csak annyi napot mész vissza, amennyi az elejéig tart. A 23. sort véve ez 300+0+0?Ha lenne egy másik tábla, ahol az értékek helyén a kummulatív összegek vannak, akkor már talán összejöhet.
És persze ott van a lehetőség, hogy le lehet programozni (makró)
Értem.
Ha nem manuálisan szeretnéd csinálni, 🙂 ,akkor ezzel van feladat.
Valószínűleg nem csak így lehet megoldani, de én ezt csinálnám:
Makróval kipótolnám a hiányzó sorokat a 6500 termékben úgy, hogy legalább a sor neve meglegyen mindenhol
Utána Excel 365-ben még egy kis függvényezés, de az már nem sok.Szerintem az első lépés lényeges, bármivel is próbálja bárki megcsinálni.
Részemről ez túlmutat egy ingyenes fórumtémán.
Ha egyszeri feladatról vagy szó, akkor munkaként el tudom vállalni.
Megkapom az eredeti listát és visszadom a táblázatot.Ha tudsz rá büdzsét szerezni, akkor örülünk…
Kb. 1 napos munkának saccolom.
Ha érdekes, írj email-t (horvath.imre@pentaschool.hu)
Szia!
Ha jól értem, akkor eg hagyományos táblázatot szeretnél csinálni, ahol egy termék egy sor.
Jó nagy szívás az első lapon lévő struktúra, nem is értem, hogy milyen rendszer ad ki ilyet.Első kérdés, hogy milyen verziójú Excelt használsz? (Ha szerencséd van, akkor 365-öt)
Másik egy észrevétel, ami nehezíti a feldolgozást:
– A második lapon lévő fejléc nem teljesen egyezik az első lapon lévő első oszlop egy rekord tételeivel
– A második lapi fejlécben nincsen „Típus, ami van a táblában, végén viszont van „Gyerekvédelem”, ami nincs a táblában
– Az egyes termékeknél nem azonos a sorok száma
– Pl a harmadik terméknek nincs „névleges feszültség” sora. Emiatt elcsúszások várhatók.Makró nélküli megoldást lehet csinálni elvileg PowerQuery-vel, de azt most nem tudom megnézni, és lehet csinálni a 365 szűrő függvényével.
Én gyorsan csináltam egy próbát, nagyon bíztató az eredmény, de csak akkor lesz jó, ha az említett problémák nem állnak fenn.
Legfontosabb, hogy minden termékhez ugyanannyi sor tartozzon, és ugyanúgy hívják a bal oszlopban, mint a második lapon a fejlécben.Imre
Szia!
Makrókkal lehet eseményeket kezelni, és leprogramozni, hogy mi történjen pl. egy cella módosulása esetén.
Olyan esemény viszont nincs, hogy feltételes formázás érvényesülése.
Olyan van, hogy cella értékének változása. Meg lehet nézni, hogy melyik cella változott, mi az új értéke, és a változás után más celláknak vagy tartományoknak mi lett az értéke vagy szummája.
Nagyon vigyázni kell ezzel, mert ha egy cella változik, az kiváltja az eseményt, és ha az eseménykezelővel módosítasz más cellákat, azok ismét kiváltják a change eseményt, stb…De nekem nagyon gyanús, hogy ha egy kicsit jobban leírod a feladatot, akkor kiderül, hogy nem csak így lehet megoldani a kérdést.
Talán a feltételes formázás feltételét vizsgálva egy HA függvénnyel is meg lehetne csinálni az összegzést. Kérdés, hogy melyik cellában/cellákban kellene megjelennie és melyik 5 cella összege?Amit kihámoztam:
A oszlop
—————–
Ha az aktuális sor értékeinek összege nagyobb, mint a készlet, akkor legyen pirosSorok
——————-
Ha az értékek gördített összege átlépi a készletet, legyen piros.Tehát pirossá válást nem lehet vizsgálni, a change esemény vizsgálata lehet, hogy elég bonyolult lenne, és kérdéses, hogy makrókhoz értesz-e?
Ha nem, akkor marad a feltételes formulás megoldás.Imre
19 kistábláta?
Jézusom!Hát akkor hajrá! 🙂
Ha adott számú kis táblád van, akkor ezt úgy lehet, hogy:
Ha az elsőben megtalálta, akkor vegye onnan, különben nézze a következőt, ha ott sincs, akkor nézze a következőt, stb…
Hogy megtalálta-e vagy sem, azt a HIBÁS vagy a HAHIBA üggvénnyel lehet megnézni.Megnéztem a fájlt, javasolnám módosítani.
Az élelmiszer nevek táblázatok, a balra mellé írt kód nem része a táblázatnak. Ez biztosan nem lesz így jó.
Első körben javasolnám a kódokat a nevek mellé jobbra tenni (ha mindegy) úgy, hogy a táblázat része legyen.
Így lehet FKERES-t használni.Másodszorra elnevezném a kisebb táblázatokat rendesen.
Remélem, hogy egy élelmiszer név csak az egyik táblázatban van benne.
Visszatöltöttem
Imre
Attachments:
You must be logged in to view attached files.Hát, akkor tegyük ezt el a kispolcra.
eddig elegáns megoldásnak tartottam a MARADÉK függvényt a tört rész megállapítására.elegáns, de…
Szia!
Egy kicsit nézegettem, és pár perc után csak annyit tudok mondani, hogy ez beszarás!!!
Én nem jöttem rá, hogy miért csinálja ezt, és miért csak a 3-nál, és miért…..?Kipróbáltam, hogy a 3-at képlettel állítottam elő (1+2 vagy 2,4+0,6) és akkor nem csinálta
Ez olyan, mintha valami Excel BUG lenne.Mindenesetre megoldás orientáltan megnéztem a maradékszámítást egy alternatív képlettel, ami az eredeti értékből kivonja annak az egész részét
=$C$12+(C12-INT(C12))
Ez helyesen működik a 3,00 esetén is
Én ennyit tudok hirtelen hozzátenni.
Imre
2022-09-07-23:30 Hozzászólás: [Resolved] Legördülő listából választott szöveg alapján automatikus kitöltés #9279Szívesen
2022-09-07-21:42 Hozzászólás: [Resolved] Legördülő listából választott szöveg alapján automatikus kitöltés #9277Szia!
Ez egy egyszerű FKERES (VLOOKUP) függvény szituációnak tűnik. (Lehet XKERES is, ha olyan Excel verziód van, ami ezt ismeri)
Ha nem ismernéd őket, akkor nézz utána..Keres egy értéket egy megadott tartomány első oszlopában és ha megtalálja, akkor visszaad ugyanabból a sorból egy másik oszlopban lévő értéket.
Imre
2022-09-01-23:43 Hozzászólás: [Resolved] Változó sorszámú oszlopban, legnagyobb különbség két érték között #9273Szia!
Itt akkor további kérdések merülnek fel.
Elsőként kérdezem, hogy hogyan nyilvánul az meg, hogy a 300k sort nem tudja feldolgozni a Pivot motor?
Másik, hogy a Pivot motor mindenképpen a teljes adat készletből dolgozik akkor is, ha utólag leszűröd egy konkrét napraHa a napot és az időt külön akarod venni, azt lehet kétféleképpen.
Egyik esetben használhatod a Pivot saját dátum-idő hierarchiáját, és ez alapján csoportosítasz, de készíthetsz saját segédoszlopokat is nekik.A kép alapján neked un. dátum-idő adatod van, pl.: (2022.08.22 4:34) ez így jelenik meg a cellában, de valójában egy tört szám.
Ha átalakítod az egyiket számmá, akkor fogod látni. A tört egész része a dátumot jelenti, a tört része a napon belüli időt.Ezt szét kellene szedni két oszlopban dátumra és időre.
Dátum képlete: =INT(dátum-idő) – Ezután formázd dátumra, ha nem úgy jelenne meg
Idő képlete: = MARADÉK(dátum-idő;1) – Ezután formázd időre, ha nem úgy jelenne meg.A Dátum oszlopot használhatod a PIVOT-ban az Oszlop területre húzva.
De bármelyiket is használod, a Pivot az összes dátumot ki fogja tenni vízszintesen, ami a 300k sorban van. Azért az elég sok nap lehet, ahogy elképzelem.
Ezután már szűrhetsz egy-két-bármennyi napra.Mondjuk a napot teheted a szűrő mezőbe is, és akkor a Pivot fölött jelenik meg az összes nap, és tudsz válogatni közülük.
Imre
2022-08-31-14:46 Hozzászólás: [Resolved] Változó sorszámú oszlopban, legnagyobb különbség két érték között #9270Szia!
Azt hiszem értem, hogy mit szeretnél.
Két egymás után következő idő között a legnagyobbat ugye?
Azt látom, hogy a lista idő szempontjából növekvő.Ha táblázattá van alakítva a tartomány, akkor alakítsd vissza sima tartománnyá!
Feltételezem, hogy a van fejléc, és utána jönnek az adatok.A triviális megoldás egy segédoszlop használata, ahol az aktuális időből kivonod az előzőt, majd ezen az oszlopon keresed a legnagyobbat (MAX)
A képen látható értékek között a legnagyobb különbség a 12:55 és a 17:51 között van, 4:56 perc.
Ez szépen ki is jön a fenti módszerrel.
Ha rendes órában akarod látni, akkor szorozd fel 24-el, és formázd számmá: 4,933 óraSegédoszlop nélkül egy kicsit trükkösebb tömbképlet kell, de megoldható úgy is.
Haladjunk sorjában. Ha ez a megoldás elég, akkor kész vagyunk.
Imre
2022-08-28-19:40 Hozzászólás: [Resolved] DARABTELI nem a szűrt, hanem az egész oszlopot húzza be kritériumnak #9254Hát, azt hiszem egy kicsit túlgondoltad ezt a problémát, de majd a kérdező megmondja, ha ad visszajelzést, amit nagyon megköszönnék neki.
2022-08-28-10:02 Hozzászólás: [Resolved] DARABTELI nem a szűrt, hanem az egész oszlopot húzza be kritériumnak #9246Szia!
A DARABTELI nem veszi figyelembe a manuális szűrést. Úgy is fogalmazhatnék, hogy saját maga csinálja meg a szűrést, és utána összesít.
Te itt valójában két feltétel szerint szeretnél megszámoltatni.
Egyik, hogy a „C” oszlop = „Alma” és a másik, hogy a „D” oszlop = 2.
Erre vannak külön, több feltétel szerint összesítő függvények. Azok is ugyanúgy, előbb szűrnek, utána összesítenek.Ezek közül neked most a DARADHATÖBB kell.
Imre
-
A hozzászólás módosításra került: 2 years, 5 months telt el-
horvimi.
Szia!
Nem sikerült a feltöltés, így segíteni sem tudunk.
Esetleg Zip-eld össze, és úgy töltsd fel!Kíváncsi vagyok, hogy mit rejt az Frm kiterjesztésű fájl.
Tippem szerint szövegesen vannak a fájlban az adatok, és az excel szövegként mutatja őket.
Ezt hiába formázod a számformátummal.Imre
Sziasztok!
Megnéztem, amit feltöltöttél. Mondjuk egyáltalán nem korrelál azzal, ami a kérdésedben van, de azért talán érthető lesz a segítség.
Én úgy értem, hogy ha bármi van az aktuális sorban a cellában, akkor színezze meg az A oszlopban a cellát az aktuális sorban.Szóval ahogy nézem a B:H oszlopok tartalmazhatnak számot és szöveget is.
Ha ez igaz, akkor Nem lesz jó a SZUM függvény az ellenőrzéshez, hanem a DARAB2 kell.1. A1:A10 kijelölése
2. Feltételes formázás menü -> Új szabály…
3. Formázandó cellák kijelölése képlettel
4. A képlet: =DARAB2($B1:$H1)>0
5. Formátum… -> megadod, hogy milyen legyen
6. KipróbálásImre
Igen, ez jó megoldás, akkor is lefut, ha a munkalap már védett állapotban van.
Fontos, hogy ugyanabban a makróban (programban ) legyen, ami aztán ír a cellákba.
Külön futtatva elképzelhető, hogy nem fogja megjegyezni az Excel ezt, ezért egy másik, külön futtatott sub megint védettnek fogja látni a lapot. (Ezt kipróbáltam, nekem működött külön Sub-ból. Egyik levédte így, a másik beleírt egy cellába)
Az persze jó, ha van egy főprogram, aminek az elején ez a kód lefut, majd a közben meghívott (CALL) rutinok írnak a védett cellákba.Az viszont biztos, hogy ezt a fajta védelmet nem jegyzi meg az Excel, ha bezárod, majd újra kinyitod a fájlt.
Ha esetleg mégis problémába ütköznél, valami nem fut le, vagy hibát dob, (előfordulhat), akkor marad a triviális „B” terv, amikor a cellákba írás előtt feloldod a védelmet, beleírsz, majd visszarakod a védelmet.
Imre
Örülünk 🙂
Minta nélkül nehezen, de elvileg működnie kellene.
Én azt csinálnám, hogy berendezem a képernyőt, hogy lássam a kódot és az Excel-t is, és lépésenként (F8) futtatva megnézném, hogy mi is történik valójában.Imre
Szia!
Nem tudom, hogy kaptál-e már választ máshol esetleg.
Ezt a problémát VBA kóddal lehet megoldani.
Van egyApplication.ConvertFormula
függvény a VBA-ban.Egy lehetséges megoldás:
Sub ConvertFormulasToAbsolute() Dim rngCell As Range For Each rngCell In Selection With rngCell If .HasFormula Then .Formula = Application.ConvertFormula(.Formula, xlA1, , xlAbsolute) End With Next rngCell End Sub
Használat / Működés
————————-
Kijelölöd a tartományt, amiben minden hivatkozást abszolúttá szeretnél tenni, majd lefuttatod a fenti kódot.
Végigmegy a kijelölés összes celláján, és ha képlet van benne, akkor megcsinálja a hivatkozások módosítását dollárjelesre (abszolútra)Kipróbáltam, nekem működött.
Források
https://www.mrexcel.com/board/threads/how-change-multiple-cells-with-ranges-from-relative-to-absolute-references.793992/
https://www.mrexcel.com/board/threads/convert-a-range-of-cells-formulas-from-relative-to-absolute.27670/Imre
-
A hozzászólás módosításra került: 2 years, 6 months telt el-
horvimi.
Nagyon örülök!
Ezzel én is tanultam valami újat.
🙂
ImreSzia!
Olyasmire gondolsz ugye, mint a Ctrl-F kereső ablaka, ami mögött simán lehet bármit csinálni, majd visszatérni a kereséshez.
Első felindulásomba azt akartam írni, hogy ilyesmit nem lehet egy programon belül csinálni. Arra gondoltam, hogy a kereső ciklus a hiba esetén elmenthetné az aktuális futási környezetet, és a következő indításnál lehetne opció, hogy onnan folytassa.
Aztán mégis utánakerestem a dolognak, és a sok NEM LEHET között találtam két linket, ahol úgy néz ki, van megoldás.
Nem próbáltam, de nézd meg!Ez az első
https://www.mrexcel.com/board/threads/pause-macro-then-resume-macro.673602/
Itt Gary’s Student nevű user megad egy linketMásodik
https://answers.microsoft.com/en-us/msoffice/forum/all/vba-script-to-pause-macro-allow-editing-then/53027408-ed41-4300-b42e-ed2fc20b8e9c
Itt meg Andreas Killer kommentjei lehetnek hasznosak.A kulcs a DoEvents parancs, ami egy gyorsan pörgő ciklus közben megcsináltatja az Excellel a közben történt eseményeket.
Szóval kiteszi a form-ot nem modális módban, tovább megy, de belefut egy ciklusba, ami addig pörög, amíg a for látszódik.
És közben megcsinálja azt, amit a user tesz.
Én legalább is ezt képzelem.Jelezz vissza, hogy mi lett!
Imre
Szia!
Ha már Excel-ben van, akkor macerás a helyzet.
De én vélelmezem, hogy ez eredetileg nem Excelben van, hanem egy másik rendszerben, ahonnan ki lett exportálva Excelbe.
Más kódolást használ, valószínűleg UTF8 vagy ilyesmi.1. Ha az eredeti rendszerben exportálásnál lehet választani, akkor CSV formátumban kellene kimenteni, és utána Excelben PowerQuery-vel vagy korábbi szöveges exportálóval megnyitni, ahol meg lehet adni a kódolást.
2. Ha csak Excelbe lehet, akkor próbáld meg az Excel-t kimenteni CSV-be (Mentés máskét), és utána áttérni az 1. lehetőségél leírtakra.
3. Az sem lehetetlen, de kicsi az esélye, hogy az exportáláskor meg lehet adni a kódolást.
Most ezek jutottak eszembe.
Imre
Szia!
Kicsit eljátszottam vele, le is egyszerűsítettem.
Kacifántos amit akarsz, de megcsinálható.
Visszatöltöm.Attachments:
You must be logged in to view attached files.Hát ezeket elmulasztottad közölni 🙂
De mindegy is, mert ezek az egyszerűen nem megoldható kategóriába esnek sajnos.Azt még megfontolhatod, hogy mi a kevesebb munka:
Egyik, hogy a visszamásolást az egyenlőségjelek cseréje utám értékként illeszted be, majd visszacserélve a képletek már működni fognak, a feltételes formázást és a listamenük hivatkozásait pedig kézzel létrehozod újra. (Nyilván csak a formulákat kell átmásolni a forrás munkafüzetből.)
Esetleg ezeket az egyik lapon (Ahol a listafotrrások vanank pl.) szövegesen le lehetne tárolni, mondjuk egyenlőségjel nélkül.Másik, hogy az átmásolás után az utóbbiakat manuálisan javítod meg.
Makróval biztosan megcsinálható persze.
Imre
Nekem simán megcsinálja a # jelek visszacseréjét.
Próbáld meg egyesével a cserét (Nem az összes cseréje, hanem Csere egyesével). Lehet, hogy csak az egyik cella vagy oszlop miatt dob hibát.
Ha csak mindent kijelölsz, és = jel csere nélkül próbálod átvinni, akkor vissza fog hivatkozni, ahogy le is írtam az előző válaszban.
És olyankor a neveket is viszi, vinni akarja.Teljesen lemodelleztem a dolgot, tehát két munkafüzet között csináltam, nevekkel.
Ha előbb minden képletben lecseréltem az = jelet, majd a mindent kijelöllel átvittem, akkor:
– Nem vitte a nevet újra magával (nyilván, mert nem ismerte fel névként)
– Visszacserélés után működtek a képletek, a neveket használó képletek is az aktuális munkafüzetben (az ugyanolyan nevű lapokra hivatkozások persze)Amikor nem csak a tartalmat vittem át, hanem kitöröltem a régi munkalapot, és az újat munkalapként másoltam át, akkor a képletek jók lettek a visszacserélés után, de a nevet átvitte még egyszer, és az visszahivatkozott oda, ahonnan hoztam.
Imre
-
A hozzászólás módosításra került: 2 years, 6 months telt el-
horvimi.
Szia!
Sajnos ez egy komoly probléma az Excel felhasználók számára.
Elegendő egy olyan cellát átmásolni egy másik munkafüzetbe, ami nem az aktuális lapra hivatkozik.
A másolás után a képlet vissza fog hivatkozni abba a munkafüzetbe. ahonnan átmásoltad.
Ha egy teljes munkalappal teszed mindezt, akkor mindem másik munkalapra hivatkozó képlet vissza fog hivatkozni az eredeti munkafüzetre, és az adott lapon érvényes névtartományok is.Ez ellen normális, beépített lehetőség nem létezik, tehát elvileg minden hivatkozást pl. keresés-cserével ki kellene javítani.
Barkács megoldás, ami jó lehet:
1. A lap másolása előtt a keresés-cserével az egyenlőségjelet cseréled valami spec karakterre. Pl. Hash tag (#)
Ezzel a képletek sima szövegé válnak, nem akarja őket kiértékelni.2. Átmásolod a munkalapot, majd. visszacseréled
Sajnos a nevek kérdését ez nem oldja meg, de ha az előző módszerrel az egyenlők cseréje után nem a munkalapot másold át, hanem a munkalap tartalmát (Mindent kijelöl -> C/P), akkor szerintem a neveket nem fogja vinni.
Majd írd meg, hogy sikerült-e!
Imre
Szia!
Lényeges kérdés még, hogy ezt a több szintű választó menüt egy táblában soronként akarod, (pl. egymás utáni oszlopokba), vagy egy táblához csak egy 3 szintű szűrés tartozik, pl. a tábla felett 3 cellában?
Előbbi esetben nem annyira látom a megoldást SZŰRŐ függvénnyel VBA nélkül. DE más se:
https://answers.microsoft.com/en-us/msoffice/forum/all/using-unique-filter-formula-inside-the-data/53a292ad-5d7a-468d-8764-e10442d8421e?page=1Utóbbi esetben a SZŰRŐ függvénnyel van azonnali megoldás. Annyi szűrő függvény kell, ahány szintje van a menünek (jelenleg 3)
1. szint: Az érvényesítés forrása: A felelősök egyedi listája (EGYEDI függvény). Ha kiválasztotta a felelőst, akkor egy SZŰRŐ függvénnyel kiveszed egy tartományba azokat a városokat, ahol a kiválasztott a felelős
2. szint: Az érvényesítés forrása: Az előző lépésben kivett városok. Ezután még egy szűrő függvény, ami egy másik tartományba kiveszi az első kettő ÉS kapcsolatából az intézmények listája
3. szint: Az előző lépésben kivett intézmények listája (tömbje)Mivel a szűrt listák mérete változhat, ezért dinamikusan kel hivatkozni a tömbökre a legördülő menü forrásában (#)
Tervezek erről írni egy cikket, de addig is itt egy példa:
https://www.excel-university.com/dependent-drop-downs-with-filter/Imre
Szia!
Mielőtt továbblépnénk, kérdezem, hogy milyen Excel verziót használsz?
Ha esetleg 365, akkor az abban lévő FILTER (SZŰRŐ) függvénnyel elég jól, és egyszerűen meg lehet csinálni a több szintű függő listákat.Ha korábbi Excel-ed van, akkor ajánlom figyelmedbe egy korábbi cikkemet:
https://excel-bazis.hu/tutorial/tobbszintu-legordulo-lista-profi-megoldasImre
A kettes pontot PIVOT-tal és VBA-val úgy csinálnám, hogy:
– Kitenném checkboxoxra, hogy milyen mezőket szeretne megjeleníteni
– Ha bejelölte őket, akkor megnyom egy gombot, és egy VBA kód törli a PIVOT-ből az éppen ott lévő mezőket, és betenné a megjelölteket.Imre
Szia!
A fájlt most nem tudom érdemben megnézni, de néhány dologhoz hozzászólnék:
1. A függvényes megoldáshoz használt dolgok jónak tűnnek, nem hinném, hogy lenne jobb megoldás, de nincs kizárva.
2. Hogy melyik szumma érték jelenjen meg a PIVOT-ban (vagy PIVOT chartban), azt szeletelővel nem lehet szabályozni. Check box-al és VBA-val lehetne.
3. Az ELTOLÁS (OFFSET) függvény az, amit keresel, hogy egy kezdő cellához képest változó méretű tartományt tudj megadni.
Nézz utána, eléggé egyértelmű
4. Sima grafikon (azaz nem PIVOT chart) esetén nincs beépített részletezési lehetőség
5. Az Online Excel jelenleg még nem támogatja (és valószínűleg nem is fogja) a Form vagy ActiveX controll-okat.
6. A Date-Picker tudomásom szerint csak 32 bites verziókban van meg. Ha neked 32 bites az Excel 2013-ad és mégsincs ott, akkor nézd meg ezt:
https://www.ablebits.com/office-addins-blog/2016/10/12/insert-calendar-excel-datepicker-template/#Register-date-pickerImre
-
A hozzászólás módosításra került: 2 years, 7 months telt el-
horvimi.
Ha külön-külön jó, akkor együtt is jónak kell lennie.
A mintádat átalakítottam, visszacsatoltam. Szerintem jó.A feltételes formázás fronton elég gáz a helyzet.
Ha bármelyik színes cellára kattintasz és megnézed a szabályokat (szabályok kezelése), akkor látod, hogy rengeteg szabály van, pedig csak kettőnek kellene lennie.Amíg működik és nem lassú, nem érdekes, csak olyan izé…
Imre
Attachments:
You must be logged in to view attached files.Bocsi, hogy elsőre ezt írom, de nem okos dolog a megszakítás már úgy általában sem.
Persze előfordul, hogy nincs ráhatásunk az oszlopsorrendre, de legtöbbször van.Tegyük fel, hogy nincs, mert mondjuk valami kötött rendszerből így jön ki, akkor meg add össze a két szorzatösszeget, és hasonlítsd az összes oszlopszám mínusz 3-hoz.
Imre
Az első sorhoz tartozó képletet úgy kell megírni, hogy az adatsor hivatkozása nincs rögzíthető, viszont az alsó és felső határokat tartalmazó tartomanyi hivatkozások van a sor le van rögzítve, de az oszlop nincsen. Akár mindkettőt is le lehet rögzíteni, azzá dollarjeletni.
Ha a képletet lehuzod és nem jó, akkor valószínűleg ez a hiba.
Próbáld.ki, hogy lehuzas után kettőt kattintasz az egyik eredményen. Így megmutatja színekkel, hogy honnan veszi az adatokatImre
Szia!
Hozzátennék egy gondolatot:
Ha jól gondolom, akkor nem elég az, hogy melyik sorban van olyan tétel, ami az aktuális oszlop tetején megadott határértékeken kívül van, hanem azt is látni akarod, hogy melyik az a tétel.
Erre a feltételes formázásnál nem jut jobb eszembe.De azt ellenőrizni, hogy van-e legalább egy, ami ne stimmel, lehet képlettel is. És akkor nem kell csak emiatt makrósnak lenni a munkafüzetnek.
Ez egy tömbképlet, ami a teljes aktuális sort hasonlítja az alsó határérétékek sorához , majd szorzással (logikai ÉS) ugyanazt a sort a felső határértékek sorához. Az eredmény egy logikai tömb, amiben ott lesz egyes, ahol a határokon belül van, és ott lesz nulla, ahol a határokon kívül van. Ezeket az egyeseket összeadva megkapjuk, hogy hány stimmelő oszlop van az aktuális sorban.
=SZORZATÖSSZEG((B3:E3>=B$1:E$1)*(B3:E3<=B$2:E$2))
Ha ez megegyezik az oszlopok számával, akkor minden tétel OK, tehát a kimenet is OK, különben nem OK
Csatolok egy minta munkafüzetet.
Imre
-
A hozzászólás módosításra került: 2 years, 7 months telt el-
horvimi.
Attachments:
You must be logged in to view attached files. -
A hozzászólás módosításra került: 2 years telt el-
-
SzerzőBejegyzés