Hozzászólások
-
SzerzőBejegyzés
-
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, 1 month 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, 2 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, 3 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, 4 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, 4 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, 4 months telt el-horvimi.
Attachments:
You must be logged in to view attached files.Szia!
Talán a kérdező is visszatér és ad némi visszajelzést.
A rangsorolásnál mindig probléma az azonos értékek kezelése.Az általam ismert rendszerekben az azonos értékek azonos rangsorszámot kapnak.
Az eltérések ott szoktak lenni, hogy a nagyságrendben következő érték rangsorszáma mi legyen.Ha pl. van két egyforma és mindkettő rangsora mondjuk az 5, akkor a következő rangsor lehet 6, de lehet 7 is, mert kihagy egyet a két 5-ös miatt.
Szóval ismétlődések esetén probléma lehet, a megoldás bonyolultsága a szituációtól függ.
Imre
Nagyon klassz megoldás!
Jó nagy hátraszaltót csináltál a dátum témában.Én nem is vettem észre, hogy a 127. sorig szóközök vannak a dátumban, ezért szöveg és utána valamiért rendes dátum lesz.
azt azért szögezzük le, hogy ez adathiba. Ha minden dátum rendes dátum lenne az első táblában, akkor erre nem lenne szükség.
Szval amit a „C” oszlopban csináltál, az baráti 🙂Aztán a B oszlopban átveszed a C oszlopban előállított dátumot, ha az L és a H oszlop is pozitív számot tartalmaz.
De az igazán brilliáns a D oszlopban képzett RANKING. Nem találkoztam még ezzel a megoldással, nagyon tetszik!
Megnézi, hogy az aktuális dátumnál hány nagyobb dátum van az egész oszlopban, és az eredmény+1 lesz a nagyságrendi sorrendje (rank-je).
Ha nulla nagyobb van, akkor az aktuális dátum a legnagyobb (0+1)
Ha egy nagyobb van, akkor az aktuális a második legnagyobb (1+1) és így továbbZseniális! Feltéve, hogy egyik dátum sem fordul elő többször.
Ahol meg nulla jött ki a B oszlopban, ott a Rank a legnagyobb lesz (mindenhol ugyanaz, 111), de az nem érdekel minket, mert csak 15-ig kell nézni.
És akkor az alsó, kis táblában már csak meg kell keresni az 1-15 sorokat a felsőből. Ez a tisztázat.
Azért is klassz, mert régebbi (2013) Excelen is működik.
Bocsánat az „okoskodásért, de lehet, hogy valakinek jól jön a magyarázat.
Köszi @fjns a munkádat!
Kiegészítés
Az Excelben van egy SORSZÁM nevű függvény, ami a rangsorolást megcsinálja ugyanúgy, mint a D oszlopban lévő képlet.
Ha a D4-be ezt írod: =SORSZÁM(B4;B:B), akkor ugyanaz jön ki.Ez a függvény már csak kompatibilitási okok miatt van az Exelben, hogy 2007-es és régebbi Excelben is működjön.
2010-ben behozták a RANG.ÁTL és a RANG.EGY függvényeket, amik kicsit árnyaltabb megoldásokat tudnak.Imre
- A hozzászólás módosításra került: 2 years, 5 months telt el-horvimi.
Szia!
A) Nem vagyok vizualizációs szakember, és az Excel diagramjainak beállításában sem vagyok nagyon elmélyedve.
A 2013-as verzióval pedig ki em tudom próbálni.Nálam a 365-ben pl. automatikusan megcsinálja az összekötést, be sem kell állítani semmit, sőt, inkább külön kérni kell, hogy ne tegye, azaz beállítható, hogy a #HIÁNYZIK cellákat tekintse üresnek, és nem beállítani, hogy kösse össze az adatpontokat
365-ben különben az is megoldható lenne, hogy egy külön táblába kigyűjtsd a a nagy táblából a szükséges rekordokat. Mindez dinamikusan, a táblázat alapján automatikusan frissül, ha új adat kerül a tábla végére.
B) Ezt már lejátszottad, így van.
C) A trendvonalakkal kapcsolatban fogalmam sincs, de szerintem mindegy, mert ha te számolod, ugyanannak kell kijönnie, mint ha ő csinálja. Hasonlítsd össze a két vonalat.
D) A naponta több adat az nem tudom mit takar, csak gondolom, hogy az input táblákra vonatkozik. Bár a segédtáblában mindig az első 15 dátumhoz veszel ki adatot, ezért annak a mérete elvileg nem változik.
Imre
Na most kerültem gép elé, hogy megnézzem.
Elsőként egy elvi dolog.Az adatbázisokban a bárminemű kódokat, azonosítókat, amelyek csak számjegyekből állnak, speciális okok miatt szöveges formátumban szokás tárolni. Így biztosított, hogy ha esetleg nullával kezdődne, akkor az megmaradjon, vagy ha esetleg hosszú, sok (>15) számjegyből áll, akkor az is megmaradjon pl. Excelbe exportálás során.
Magyarázat is van rá, de most csak próbáld ki, ha egy 15 jegynél hosszabb számot írsz egy cellába, majd megformázod számként, akkor mi lesz az eredménye. A végét nézd, a 15. jegy után!
Szóval a te Export fájlod is ilyen, nagyon helyesen, a zöld háromszögek és a figyelmeztetés mutatja is, hogy szövegként tárolt számok. Ezek azok, amik értékként beillesztve a mintába, továbbra is szövegek maradnak.
A mennyiség vagy a nettó érték pl. jól megy át.A szövegként tárolt számok értékként beillesztve is szövegek maradnak, hiába volt a célcella formátuma előre szám típusra állítva
Az én jelen ismereteim szerint nincsen rá azonnali megoldás valami speciális beillesztéssel. Makrót persze lehet rá készíteni, ami a megadott oszlopokban a szövegeket számmá alakítja.
Leggyorsabb fix amit tudok
Az érték beillesztés után, ha kipróbálod mondjuk a „Bevárásló kosár száma” oszlopban, hogy az első beillesztett cellát kijelölöd, majd nyomsz egy F2-t (szerkesztő mód) és utána egy ENTER-t, akkor „megjavul”. Mivel nem akarjuk minden ilyen problémás cellán ezt egyesével csinálni, kiadunk egy egysoros makró parancsot.
1. Megcsinálod az érték beillesztést
2. Hagyod a beillesztett részt kijelölve
3. Átlépsz a makró szerkesztőbe (ALT-F11)
4. kinyitod a parancs ablakot (Immediate Window) Ctrl-G
5. Oda begépeled, hogy:selection.formula=selection.formula
-> ENTERNálam ez működött, minden problémás oszlopban a szövegként tárolt számok számmá alakultak.
Csak akkor fog menni, ha a táblázat oszlopai előre szám formátumúak, de ez nálad így van.És persze még jobb lenne a rendszert úgy alakítani, hogy az azonosítók szöveges típusúak legyenek itt is, és ha erre épül valami FKERES vagy ilyesmi egy másik táblából, akkor ott is. Bár a keresési formulában a keresési értéket szövegessé lehet tenni több módon is.
Bocs, hogy hosszú és lényegében kevés segítség, de tényfeltáró 🙂
Imre
Szia!
Mivel nem tettél fel mintát, csak találgatni és kérdezni tudok.
– Vagolaprol akarsz beilleszteni, vagy az export file megven külön?
– Haa kulon, milyen formátumban? (Csv, txt, Excel)
– Milyen verziójú Excel-t használsz?
– Konkrétan hogy néz ki amit be akarsz illeszteni?
Hogyan próbáltad eddig?Szia!
A probléma, illetve feladat érthető.
A jelenleg használt adatstruktúra okozza a nehézséget.Jelenleg a keresést 15 oszlopban kell végezni egyesével, az egészet ennek megfelelően sokszoros IF függvényekbe téve.
Algoritmikusan leírva:
Ha az aktuális gépkód az első oszlopban van, akkor „1. gépcsoport” különben ha a második oszlopban van, akkor „2. gépcsoport, különben ha …..Javaslatom
Én a 15 gépcsoport oszlopból egy két oszlopos táblát csinálnék:
Kód és Gépcsoport.
Az első 15-nek azonos lesz a gépcsoportja, a második 15-nek is és így továbbA keresést ebben a 2 oszlopos táblában VLOOKUP-al lehet végezni.
A PIVOT egy másik tészta, de ha megvan minden gép gépcsoportja, akkor az már könnyű.Imre
Ismét örülünk 😊
Szia!
Most csak telefonról olvasom.
Az ÖSSZESÍT függvénynek még lehet adni, hogy a hibaüzeneteket tartalmazó cellakat hagyja ki az osszesitesbol.
Egyből lehet vele atlagolni.Imre
Jaj, ne haragudj, az VLOOKUP-ot átírtam FKERES-re, de az INDIRECT-et elfelejtettem.
Nálam most épp angolon állt, mert olyan csoportot tanítok.A megoldott státuszt te is tudod állítani meg én is.
Most én bejelöltem megoldottnak…
Imre
Csatoltam neked a nálam működő verziót
Imre
Attachments:
You must be logged in to view attached files.Szia!
Arra gondoltál már, hogy =”EUR” módon add meg?
Így hozza a következő sorban magától, mivel ez képlet.Imre
Szia!
Első blikkre szerintem neked az INDIREKT függvényre van szükséged.
Ezzel a függvénnyel lehet egy hivatkozást szövegesen előállítani.
Ha jól értem, akkor olyasmit szeretnél, hogy az első sorban a hivatkozásban lévő munkalap neve ‘0401’ legyen, de ahogy húzod lefelé, ez magától változzon ‘0402’ re és így tovább.
1. Elsőre javasolnám, hogy ne két munkafüzetben legyenek a dolgok.2. A napokat ’01’-től írd be ’31’-ig, így használhatók lesznek a képletekben az adott hónap adott napjának előállításához.
Az első cellába szimpla aposztróffal beírod, hogy ’01, majd lehúzod 31-ig. Így szövegesen képzi a napok sorszámait.3. A mukalapneveket a napok számozása mellé egy külön oszlopba képezd le. Így egyszerűsödik a dolog.
Pl. a 01 szám mellé jöjjön a 0401, a 2-es mellé a 0402, és így tovább. Ezeket lehet majd befűzni a hivatkozásba.
Itt persze felmerülhet, hogy nem mindig áprilisról van szó, ezért az aktuális hónap számát kitehetnéd egy cellába. (Pl. A2)
Tegyük fel, hogy a 01-es sorszám a B4-ben van. A C4-be mehet az, hogy: =$A$2&B4, majd lehúzva, kijönnek a napokhoz tartozó munkalapnevek.4. A következő két oszlopba (D és E) menő FKERES keresési tábláját dinamikusan, INDIREKT függvénnyel rakhatod össze. D4-ban van ez:
=FKERES($A$1;INDIRECT(C4&"!$A:$C");2;FALSE)
A1-ben van a keresett neved (Sándor), C4-ban van 04015. Lehúzod az FKERES képleteket
Imre
Még lehetne úgy is csinálni, de szerintem szükségtelen.
Egy esetileg futtatható makró, ami ellenőriz.
De ez egy ciklus, nem lehet makró rögzítővel felvenni.A VBA Dir függvénye az, amivel ellenőrizni lehet egy fájl létezését.
Imre
- A hozzászólás módosításra került: 2 years, 6 months telt el-horvimi.
Szia!
A hiperhivatkozas beirasakor nem ellenőriz.
Lehet egy olyan makrót írni, ami végig ellenőrzi, hogy a megadott útvonalon valóban letezik-e a megadott fájl, és egy oszlopban egy flag-gel jelzi.
Erre szurve, még a hiperhivatkozas létrehozása előtt javithatod a hibákat.Imre
Szia!
Sajnos ezt nem lehet megoldani natív eszközökkel.
Tehát ha véded a lapot, akkor a táblázat nem fog automatikusan kibővülni.A rejtett tulajdonság, azt jelenti, hogy a szerkesztőlécen nem látszódik a tartalom. Akár konstans, akár képlet.
Imre
Kedves Roland!
Nem kell hozzá feltétlenül makró.
Csatoltam egy demót natív Excel eszközökkel.A makró megírása tervezéssel, tesztelgetéssel több órányi feladat lehet, annyi nekem most nincs, de ha a makrós megoldást szeretnéd, szívesen segítek, ha elindultál már valamerre és elakadtál.
A fenti módszertan egyben az algoritmusa is a makrónak.
Imre
Attachments:
You must be logged in to view attached files.Szia!
Gyönyörű feladat! Csak azt kellene eldöntened, hogy 10x meglévőket vagy 5x meglévőket keresel 🙂
Excel függvényekkel egy lépésben nem is valósítható meg.
Egyik lehetőség, hogy makróprogramot kell rá írni.
Másik lehetőség a tömbképletek használata, és még így is több lépésre van szükség
A B2:U2-ben van 20 szám, a W2:AA2-ben 5 szám.
Arra vagyunk kíváncsiak, hogy az 5-ből hány van benne a 20-ban.=SZORZATÖSSZEG(DARABTELI(B2:U2;W2:AA2))
Ezt a 20 számos tartomány minden sorára meg kell nézni, tehát a B2:U2 mozog, a W2:AA2 nem mozog.
Kapsz annyi eredményt, ahány sora van a 20 számos tartománynak, majd egy ellenőrző cellában megnézed, hogy hány olyan van, ami =5.
Ezzel kész vagy az első 5 számos húzás elemzésével.És a fentieket meg kell csinálni az 5 számos tartomány minden sorára.
Segítséget kértél, íme a módszertan.
Imre
Örülünk! 🙂
Szia!
A feladat többféleképpen is megoldható, én most egy HA + ÉS fv megoldást mutatnék.
=HA(ÉS(C1>=0;C1<5%);D1*(1+7%);HA(ÉS(C1>=5%;C1<10%);D1*(1+12%);D1*(1+15%)))
Ez egy háromszoros elágazás. Azt nem írtad, hogy az felsorolt eseteken kívüli esetbe mi történjen, ezért én önhatalmúlag 15%-os növekedést írtam elő.
Balról jobbra haladva:
Ha C1 0 és 5% közé esik (azaz nagyobb vagy egyenlő nulla ÉS kisebb mint 5%), akkor az eredmény legyen a D1 szorozva 1+7%, azaz D1*1,07.
Különben HA 5 és 10% közé esik (a vizsgálat ugyanúgy megy ÉS függvénnyel), akkor D1*1,12
Ha egyik sem, akkor D1*1,15Imre
- A hozzászólás módosításra került: 2 years, 6 months telt el-horvimi.
Sziasztok!
Én csak annyit tennék hozzá, hogy ismereteim szerint makró nélküli megoldás nincs erre feladatra.
köszi Delila!Imre
Szia!
Az adatérvényesítéssel elkészített legördülő lista esetén nem adható meg alapértelmezett (default) érték.
Nem lenne rossz, de nincs ilyen lehetőség.
Azt tudod csinálni, hogy előre lehúzod ebben az oszlopban az alap értéket, ha az mindig ugyanaz.A figyelmeztető feliratot meg tudod csinálni:
Adatok-> Érvényesítés -> Beviteli üzenet fül (középső)Amit itt megadsz, azt egy kis buborékban ki fogja írni, ha rákattint a cellára.
Imre
Szia!
Két dolog:
Egyik, hogy új kérdést kélek, új Topic-ben indíts!
Másik, hogy én nem tudom értelmezni a kérdésedet. Próbáld meg egy kicsit átgondolni!Köszi, imre
Szia!
Csak haloványan, de lehet, hogy értem.
Kérdés, hogy egyszerre csak egy szűrőt választhat-e a user?
Pl. egy legördülőből választana alma, narancs, körte közül, és az adattábla szűrődne azokra a sorokra, amik a tag oszlopban tartalmazzák a választott szöveget.Ha egy helyben akarod szűrni, mintha autofilter lenne, akkor ez Excel függvényekel nem megoldható.
Lehetséges megoldás a makró vagy a PowerQuery.Ha a szűrés eredménye lehet egy másik tartományban, és 365-ös Excel-t használsz, akkor szóba jöhet a SZŰRŐ (FILTER) függvény.
Imre
Szia!
Kipróbáltad és nem működött? Én próbáltam most 365-ön és műxik.
A VBA nem függ nyelvi verziótól.
Olyan lehet, hogy egy valami az előzőben még működött, az újabb verzióban meg már nem, de ez nem olyan.Ha nem akarod bedrótozni a sorok számát, akkor ez is jó lehet:
Elso_szurt_sor = Activesheet.AutoFilter.Range.Offset(1).SpecialCells(xlCellTypeVisible).Cells(1).Row
Az aktuális lap szűrt tartományának első látható sorának számát adja vissza.
Az Offset(1) kiveszi a fejlécet a történetbőlImre
Bocs, de nem tudom leköveti, hogy mit akarsz…
Örülünk
-
SzerzőBejegyzés