- Már nem hisz a nagy európai EV-forradalomban a Ford
- Linux - haladóknak
- Mesterséges intelligencia topik
- Microsoft Office és Office 365 topic
- Visszavonta az Intel és a Qualcomm Huawei-hez kiadott exportlicencét az USA
- Vodafone otthoni szolgáltatások (TV, internet, telefon)
- Anyagi katasztrófára figyelmezteti az Apple-t a brit média
- Reklámblokkolók topikja
- Álláskeresés, interjú, önéletrajz
- Aliexpress tapasztalatok
-
IT café
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
föccer
nagyúr
Sziasztok!
Van havi mentés egy adattáblából. Azonos oszlop azonosítókkal OFC.
Alatta hónapról-hónapra változhat az adattábla. A feladatom az, hogy kimutatást készítsek, hogy hónapról-hónapra mennyi sorban volt változás az előző hónaphoz képest.
A soroknak készítettem egyedi azonosítót, ami az adott hónapra ad 1-1 azonosítót, de a sorrend változhat.
Havi adatok külön-külön munkalapon vannak.
Brute force-on kívül van valami ötlet? Nincs erre valami beépített metódus? Havi 20-25 ezer adatsor van, soronként 58 oszloppal. Havi táblába is milliós ellenőrzés kellene.
Félek, hogy megint makrót kell írnom
üdv, föccer
Építésztechnikus. Építőmérnök.
-
föccer
nagyúr
válasz Fferi50 #51118 üzenetére
Most az idei évet kell megcsinálnom, 1-5 hónap lesz terítéken.
A havi adatokat az A01;A02;A03;A04....A12 nevű munkalapokra rakom.
Minden ilyen munkalapon AF oszlopokban vannak az adatok. 1 sor fejléc, alatta válozó mennyiségű sorban. Oszlopok adattipusai változó, szöveges, számos.
Az egyedi sorazonosítókat egy külön munkalapon (Seged_modositasok) gyűjtöm össze Ez megadja, hogy milyen egyedi azonosító volt, melyik hónapba (milyen sorban). B oszlopba az első hónap azonosítói, C oszlopba írnám ki, hogy volt-e változás. (első hónapra nem lehet ellenőrzést futtatni, nincs előtte lévő adat). D oszlop, 2. hónap egyedi azonosítói, E, változott-e? F oszlop, 3. hónap alapdataim G oszlop változott-e?
Futtatás előtt kiválasztom Seged_modositasok!AC2 cellában lévő hónapot, ami [A02;A03....A12] értéket vehet fel. Ez megegyezik az alapadatok munkalapjainak a nevével és a Seged_modositasok fül első sorában lévő azonosítókkal (itt lesznek az egyedi azonosítók felsorolva.
A metodika valami olyasmi lenne, hogy sorban bepakolom egy szűrővel az adott havi és az előző havi egyedi azonosítókat és vizsgálom, hogy oszloponként volt-e eltérés-e vagy sem.
Nehezítés, hogy nem biztos, hogy lesz olyan azonosító, ami az előző hónapban még nem volt, így ezt kezelni kell, de azért ez még menni fog.
Jah, hogy így végig gondoltam makróval meg némi szűréssel nem is megoldhatatlan a feladat.
Hmm, mielőtt még nekiugranátok adjaotk még pár órát, lehet, hogy meg is csinálom.
fg
Építésztechnikus. Építőmérnök.
-
föccer
nagyúr
válasz Fferi50 #51120 üzenetére
Van egy üzem és egy receptszám oszlop. Az adatok országos listák, így minden üzem adata megvan benne. Viszont vannak olyan receptszámok, amik több üzemben is léteznek. Receptszám üzem szinten uniq, de globál szinten nem. Technikailag összefűtöm az üzem nevét és a receptszámot és ez adja a globál uniq azonosítót. hosszú évek óta így használom, kényszerből.
üdv, föccer
Építésztechnikus. Építőmérnök.
-
föccer
nagyúr
válasz Fferi50 #51122 üzenetére
Nem az azonosítókat kell összehasonlítani, hanem az azonosítók által meghatározott sorokat, illetve azok adattartalmát. De alakul.
Már megvan az, hogy választható hónapra megvannak az egyedi sor azonostók és azok alapadatok beli pozíciója, sorazonosítója. Innentől kezdve indirektel simán kiszedem egy segédtábláta az aktuális és megelőző hónap adatait (szintén indirekttel összefűzve a képletet) a 2 kikeresett adatsor alá meg nyomok egy sima ha függvényt, ami eltérés esetén 1 eredményt ad, majd az ellenőrző sort szummázom. Ha szum=0, akkor azonos, ha nem akkor adott sor módosult és a mekró visszaírja ennek tényét.
Jó lesz ez, csak végig kellett gondolnom. Imádom az indirekt függvényt is.
üdv, föccer
Építésztechnikus. Építőmérnök.
-
föccer
nagyúr
válasz Fferi50 #51124 üzenetére
Össze kell fűzni, hogy melyik hónapnak a munkalapjáról kell kivenni. Nem fogom a függvényeket átírni, hanem csak 1 legördíthető cellából lehet kiválasztani az elemezni kívánt hónapot és indítani a makrót, ami szépen dolgozik és megcsinálja arabszolga munkát
Lehet nem elegáns
üdv, föccer
Építésztechnikus. Építőmérnök.
-
föccer
nagyúr
Szép napot.
Napi hülye vagyok.
Futás közben overflow hibát ad a kód. Releváns részletek
Dim Modositasok_szama As Integer
Modositasok_szama = Modositasok_szama + Sheets("Seged").Range("J4").Value
Az értékek pedig
Modositasok_szama = 32767 + 8Lépésenként nem tudom visszanézni, mert ez a 9300. ciklusban adja be (kb 25 ezer ciklus fut le)
A J4-ben szigorúan csak egészek lehetnek (J4-ben egy ellenőrző check szum van, ami 58 db, =HA(K3=K2;0;1) eredményét összegzi. (az 58 oszlop értékei közül mennyi eltérés van, és módosítások száma az összes elemzett sorra adja meg, hogy mennyi különbség volt.
Integer értéke rettenetesen sok lehetne, mégis overflow-ba fut.
Hogyan lehet ezen átlépni?
Köszi
üdv, FG
Építésztechnikus. Építőmérnök.
-
föccer
nagyúr
válasz Phobion #51168 üzenetére
Ágyazd egymásba az Uniqe és a Filter függvényeket. A filter megcsinálja a szűrést, az Uniq vissza adja belőle az egyedi példányokat. Arra kell figyelni, hogy van amikor az uniq visszaad egy 0-as sort, mert a filter az üres cellákra 0 értékkel tér vissza.
Sima liba.
üdv, föccer
Építésztechnikus. Építőmérnök.
-
föccer
nagyúr
válasz JoceeHunt #51209 üzenetére
Miért kell hozzá Zala megyeinek lenni?
Ha kellően le tudod írni ide a feladatot, akkor nagyon-nagyon sokat tudnak itt segíteni a topikban. Én is elég sok mindent tudtam összelapátolni pár nap alatt, úgy hogy az itteni mágusok segítettek.
üdv, FG
Építésztechnikus. Építőmérnök.
-
föccer
nagyúr
válasz 13128814 #51235 üzenetére
Csináld azt, hogy egy listába rakod a fájlneveket, akár elérési úttal. For ciklussal végig mész ezen a listán, beolvasod a teljes fájlnevet és megpróbálod megnyitni. Hibakezelést kell felépíteni arra az esetre, ha a fájl nem található, különben kiakad a makró.
Ha sikerül megnyitni, akkor már csinálhatsz vele amit akarsz, akár kimásolod a tartalmát, akár szerkeszted, de simán vissza is zárhatod.
üdv, föccer
Építésztechnikus. Építőmérnök.
-
föccer
nagyúr
Sziasztok!
Van egy adat feldolgozó munkafüzetem. Ez szépen paraméterezve, leválogat egy nagy adattömbből a szükséges elemeket és egy makróval átrakja egy másik munkafüzetbe a szükséges adatokat.
A másik munkafüzetbe a betöltött adatokon egy makró fut végig és készíti el a szükséges elemzést.
Hogyan tudom azt megoldani, h az első munkafüzet amikor átpakolja az adatokat a másodikba, akkor elinduljon a feldolgozó makró, és annak futása után (elemzés eredményei lementése után) visszavegye az irányítást és lépjen a következő ciklusba?
Ha az első munkafüzetbe simán berakom egy for ciklusba egy call metódussal, akkor megfelelő lesz? A for ciklus meg fogja várni, hogy lefusson a 2. munkafüzet makrója?
Első munkafüzetbe függvények válogatnak egy sima cellába kiválasztott dátum alapján. Ha a válogatás végig ment (kb 20-30 másodperc), akkor a Sub Adatok_atadasa_Tech_elemzonek() végzi el az adatok átadását, majd ott az Sub MBOKPI_szamitas() makró fut, ami megcsinálja a kalkulációt.
Amit még meg kell írni, de nem okoz gondot, hogy a kalkuláció eredményét kimentsem, illetve hogy pörgessem automatán a szűrést.
Köszönettel, Föccer
Építésztechnikus. Építőmérnök.
-
föccer
nagyúr
válasz föccer #51273 üzenetére
Illetve még annyi a kérdés.
Ha munkafüzet1-ben call-al meghívok egy sub-ot, ami a munkafüzet 2-ben fut és a futó sub-ban csak annyi van, hogy Akt_datum_oszlop = sheets("KEZELŐ").Range("H19").Value, akkor a munkafüzet1-ben keresi az értéket (ahol az első sub indult) vagy a munkafüzet 2-ben (ahová a call mutat)?
Köszi!
üdv, FG
Építésztechnikus. Építőmérnök.
-
föccer
nagyúr
válasz Fferi50 #51275 üzenetére
Egy kis WoT, hátha érthető az egész történet.
Főnökség ad-hoc jelleggel talál ki különböző statisztikai mutatókat és azokon "finomhangolnak" hogy éppen mit akarnak látni. 3 évre visszamenőleg, havi bontásban. Az egyes elemzéseket külön-külön rakom össze a táblákat és makróval pörgetem az időket bennük, betöltött alapadatokat. Alapadatok célszoftver riportáló eszközéből jönnek. Van hogy olyami kell, ami már meg van írva, csak más időintervallumra. Igen ám, de a gyártásfelügyeleti célszoftver nem minden riportban ad dátumot, csak a riport eszközben lehet beállítani, hogy milyen dátumok közötti adatokat adja meg. Így vagy havi bontásban szedegetem le a riporterből, vagy egy másik riporot hazsnálok, amiben van ugyan dátum, de nem arról szól amit nekem fel kell hazsnálnom. Így erre készítettem egy konverziót táblát, ami a dátumos riportból elkészíti a szükséges riport formátumot és azt átrakja az eredeti számoló táblába. Így lehúzom a 3 éves adatsort, bepakolom a konverziós táblába, ami legenerálja a szükséges riport formátumot a megfelelő havi bontásban és szépen megeteti a számoló táblával. Indítaná a számoló táblának a makróit, ami megcsinálja szsükséges elemzéseket, lementi az eredményt, majd jöhet a következő hónap, szűrés, riport generálást, adat átadás, elemzést mentés. És így tovább....
De akkor lehet azt kellene csinálni, hogy minden, már megírt makrót átrakok az riport konverziós excelbe és onnan vezérlek mindent. Igen ám ez jó is lehet, mert a 4 sub-ot bele fogom 1 for ciklusba ami végig megy a hónapokon. De mivel tudom biztosítani, hogy 1 for-on belül a 4 sub úgy fut le, hogy szépen, megvárja az egyik a másik futását, és minden rendben kiszámolódik és lementődik.
föccer
Építésztechnikus. Építőmérnök.
-
föccer
nagyúr
Object-definied error-t dob. Akt_datum_oszlop értéke helyesen érkezik H19-ből. Ebbe az oszlopba kellene bemásolnia az eredményeket.
Kezelő fül T2:T35 értékei menjenek az MBO haladás fül 4-37 sorába, a kiválasztott, Akt_datum_oszlop oszlopáába.
Mi a gondja? Biztos valami extra banális dolog.
Köszönettel ismételten a sok-sok segítségért.
Sub Eredmenyek_kimasolasa()
'
' Eredmenyek_kimasolasa Makró
'
'
Dim Akt_datum_oszlop As Integer
Akt_datum_oszlop = Workbooks("Tech_elemzo_recet_mintavetel_v4_3.xlsm").Sheets("KEZELŐ").Range("H19").Value
MsgBox (Akt_datum_oszlop)
Workbooks("Tech_elemzo_recet_mintavetel_v4_3.xlsm").Sheets("MBO_haladás").Range(Cells(4, Akt_datum_oszlop), Cells(37, Akt_datum_oszlop)).Value = Workbooks("Tech_elemzo_recet_mintavetel_v4_3.xlsm").Sheets("KEZELŐ").Range(Cells(2, 20), Cells(35, 20)).Value ' MBO KPI
MsgBox ("KÉSZ")
End SubÉpítésztechnikus. Építőmérnök.
-
föccer
nagyúr
Jó volna PBI-is foglalkozni. Még nem szántam rá magamat, h rászánlam az időmet. Illetve a kritikus rendszerekhez nem is adnak még olvasási jogot sem, hogy direkt felcsatlakozzam az adatbázis szerverre. Mondjok ezt az excel is meg tudná csinálni, de nem eröltetem.
üdv, föccer
Építésztechnikus. Építőmérnök.
-
föccer
nagyúr
válasz Darko_addict #51339 üzenetére
Mintha a cimke tartomány sérült vagy törlésre került volna. Súgóba írd be, hogy névkezelő, és kiadja, hogy hol van a cimke tartomány, azt ellenőrízd.
üdv, föccer
Építésztechnikus. Építőmérnök.
-
föccer
nagyúr
Simán fkeres() függvény megoldja.
A legördülő listát Adatok-Érvényesítésnél találod. Ott kell listát választani és kipipálni h legyen legördülő.
Erre rá kell építeni 1-1 FKERES fv-t.
Szebb megoldás, O365-nél működik, hogy SZŰRŐ függvényt használsz.
üdv, föccer
Építésztechnikus. Építőmérnök.
-
föccer
nagyúr
válasz Fire/SOUL/CD #51435 üzenetére
FÜGG.HALMOZÁS
Hogy én éveken keresztül mit szívtam, hogy megoldjam simán indirekt cella hivatkozásokkal
Egy kérdés.
Ez így működik? Application.Wait(Now + "00:00:0.01")
Egy for ciklust szeretnék lassítani, ciklusonként 1 század másodperccel.
Építésztechnikus. Építőmérnök.
-
föccer
nagyúr
Sziasztok!
VBA-ban az megoldható, hogy addig fusson, kérdés nélkül egy ciklus, amíg a felhasználó be nem avatkozik? Mondjuk egy escape megnyomása, vagy bármi egyéb? A ctrl+break elvileg működhet?
Valahogy úgy képzelem el, mindha egy folyamatjelző pörögne végig, majd visszaáll a ciklus kezdő értékre, számolja újra és rakja ki az adatokat, amíg az user meg nem akasztja.
Illetve van-e arra mód valahogy hogy a makró futtatása alatt az user egy cellába tudjon értéket megadni?
Köszi
üdv, föccer
Építésztechnikus. Építőmérnök.
-
föccer
nagyúr
Vagy simán függvényekkel is ki lehet mókolni. 2 megoldás jut az eszembe hirteken.
1: segédoszloppal. A feladatok mellé felveszel egy 1..n-ig történő pozitív egész számokhat (kerekítés vagy kerek.fel vagy plafon függvény), ahol n a személyek száma (darab2 függvény). Ez után transzponál függvénnyel egymás mellé rakod a neveket és szűrő függvénnyel pedig alá felsorolod a feladatokat (szűrőben a segédszámokra szűrsz).
2: a feladat és dolgozó ember számának függvényében kiszámolod, hogy 1 embernek mennyi feladat jut (maradékra figyelni), majd indirekt függvénnyel meg tudod adni a szükséges tól-ig tömbképleteket. A maradék az utolsó embernek jut. Vagy el is lehet osztani a maradékot,, ez már algoritmus kérdése.
üdv, föccer
Építésztechnikus. Építőmérnök.
-
föccer
nagyúr
válasz Bacusuz #51617 üzenetére
Zsigerből valami ilyesmivel próbálkoznék.
Építésztechnikus. Építőmérnök.
-
föccer
nagyúr
Lehet nem a legszebb megoldás, de O365-ben szépen működik.
Feladat lista A:A oszlopban, Emberek listája G:G oszlopban. I1 képlete lentebb.
A függvény érzéketlen a feladatok és emberek darabszámára. Az I1 képletét addig kell lehúzni, amíg elképzelhetőnek tartod a maximális emberek számát.
A függvény nem használ segédoszlopot, és nem kezeli az esetleges többszörös neveket/feladatokat. Az algoritmus úgy dolgozik, hogy az első embertől kezdve osztja ki a feladatokat annak sorrendjében, a neki kijáró számban. A maradékok egyenletesen vannak elosztva, szintén az első embertől kezdődően.
=HA(SOR()>DARAB2(G:G);"";TRANSZPONÁLÁS(INDIREKT("A"&(SOR()-1)*KEREK.LE(DARAB2(A:A)/DARAB2(G:G);0)+HA(SOR()<=MARADÉK(DARAB2(A:A);DARAB2(G:G));SOR();MARADÉK(DARAB2(A:A);DARAB2(G:G))+1)&":A"&((SOR()-1)*KEREK.LE(DARAB2(A:A)/DARAB2(G:G);0)+HA(SOR()<=MARADÉK(DARAB2(A:A);DARAB2(G:G));SOR();MARADÉK(DARAB2(A:A);DARAB2(G:G))+1))+(HA(SOR()<=MARADÉK(DARAB2(A:A);DARAB2(G:G));KEREK.LE(DARAB2(A:A)/DARAB2(G:G);0)+1;KEREK.LE(DARAB2(A:A)/DARAB2(G:G);0)))-1)))
ps abban az esetben ha kevesebb a feladat, mint az ember, akkor kicsit meghülyül a függvény. Ha szükséges, akkor megcsinálom, hogy ezt is szépen lekezelje, de azt már nagyon akarnom kell.
[ Szerkesztve ]
Építésztechnikus. Építőmérnök.
-
föccer
nagyúr
válasz föccer #51621 üzenetére
Jah, még annyit elfelejtettem írni, hogy csak úgy működik helyesen, ha minden adat és a kilistázás is az első sortól indul, mert a függvény a sorazonosítókat használja fel arra, hogy kiszámolja, hogy éppen hányadik embernél jár és melyik szakaszát kell kiszedni a feladatlistának.
Építésztechnikus. Építőmérnök.
-
föccer
nagyúr
Én kigyűjtöttem egy külön táblázatba az A oszlop egyedi értékeit G1-be az
=SORBA.RENDEZ(EGYEDI(SZŰRŐ(A:A;A:A<>0)))
függvénnyel. Majd H1 képlete=SZUMHATÖBB(C:C;A:A;G1;B:B;"=0")
O365, tömbfüggvényei kellenek hozzá.
A G1-ben a szűrő csak azért kell, hogy az A oszlop üres sorait kivegye, illetve a sorba.rendez csak a felhasználhatóságot javítja.
[ Szerkesztve ]
Építésztechnikus. Építőmérnök.
-
föccer
nagyúr
Sziasztok!
Két (vagy több) tömb metszetét hogyan tudom a legegyszerűbben megkapni? Természetesen dinamikusan kellene Makróval megy, úgy triviális, de nincs erre beépített eljárás, vagy függvény?
Keresek rá megoldást, de googli most nem a barátom
Építésztechnikus. Építőmérnök.
-
föccer
nagyúr
Köszönöm. Hasonlóval próbálkoztam, mint ami a 11 perc körül kezdődik, de a szűrő befoglalását máshogy akartam megfogalmazni és az nem ment.
Még adaptálni kell ezt több halmazra. Remélem sikerül.
üdv, föccer
fire
valami ilyesmi
[ Szerkesztve ]
Építésztechnikus. Építőmérnök.
-
föccer
nagyúr
válasz Fire/SOUL/CD #51713 üzenetére
Igen láttam, csak közben megbeszélésen is vagyok.
Közben megbúboltam a szűrős függvényt.
Ez matematikailag helyes? Halmazelméletben nem vagyok túl penge Elegendő, ha minden halmazt csak az első halmazban nézi vissza? Implicit működni látszik, szépen kitesztelgettem.
=SZŰRŐ(halmaz1;((DARABTELI(halmaz2;halmaz1)>0)*(DARABTELI(halmaz3;halmaz1)>0)*(DARABTELI(halmaz4;halmaz1)>0)*(DARABTELI(halmaz5;halmaz1)>0)*(DARABTELI(halmaz6;halmaz1)>0));"NINCS EGYEZŐ")
Építésztechnikus. Építőmérnök.
-
föccer
nagyúr
válasz Delila_1 #48502 üzenetére
Delila_1
Ez nagyin hasznos kis kód, fel is használom!
Egy olyan kédésem lenne vele kapcsolatban, hogy ha bővíteni akarom a kezelt számokat, akkor hogyan kellene bővíteni a kódot? Nem kell megcsinálnom, pusztán a kód megértését és tanulása miatt szeretném kérni, hogy ha 1-2 sorban tudnál róla írni.
Köszönöm,
föccer
Építésztechnikus. Építőmérnök.
-
föccer
nagyúr
válasz bomizo #51726 üzenetére
Akkor =(SZUM(A2:A4)-szum(B24))/3
Illetve ha bővebb tartomány is lehet, akkor az osztóra lehet kitalálni a darab2 függvényt. A szum mehet nyugodtan lentebbig is, mert az ures cellákat a szum 0-nak veszi, így az nem szól bele az összegbe, viszont az osztónál csak azokkal kell számolni, ahol van érték.
Építésztechnikus. Építőmérnök.
-
föccer
nagyúr
válasz andreas49 #51730 üzenetére
Az agromentumok listájában nem látom az "N"-et, csak az "M"-et. Nem elírás?
Illetve ha valamiért nincs, akkor simán vond ki a két dátumot egymásból, ekkor egy dátum értéket kapsz, ami gyakorlatilag napokban adja meg a különbséget. Ha precízebben kell csak a hónap, akkor nyerd ki a dátumból az évet és a hónapot. és ebből számítsd ki az eltelt hónapokat. (év(dátum2-év(dátum1))*12+hónap(dátum2)hónap(dátum1)
ha leakadtsz, akkor hétfőn összerakom O365-ben, sima liba.
üdv, föccer
Építésztechnikus. Építőmérnök.
-
föccer
nagyúr
válasz Fferi50 #51757 üzenetére
Erről tudnál még pár szót írni, hogy pontosan hogy és miért működik így? Nem vagyok programozó így nem látom át elsőre. Ezek azért nem akkora számok, hogy problémát kellene okoznia pontos számítársa. Nála is előjött ez az érték, pedig 100 lépéses iteráció van beállítva.
Építésztechnikus. Építőmérnök.
-
föccer
nagyúr
válasz xrichiex #51774 üzenetére
Ez így leírva egy kis segítséggel simán megtudod csinálni te is. 1 gomb ami töröl, az makróban 1 sor. Az egyésgárat simán függvénnyel lehet kerestetni, számolások, kedvezmény sima liba megint. Felsorolást, választható menüt a tételekhez megint könnyen meg lehet csinálni.
[ Szerkesztve ]
Építésztechnikus. Építőmérnök.
Új hozzászólás Aktív témák
- PC JÁTÉKOK (OLCSÓ STEAM, EA , UPLAY KULCSOK ÉS SOKMINDEN MÁS IS 100% GARANCIA )
- Microsoft licencek KIVÉTELES ÁRON AZONNAL - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- Steames kulcsok jó áron eladóak!
- Bitdefender Total Security 3év/3eszköz! - "Tökéletes védelem most kedvező áron..."
Állásajánlatok
Cég: Alpha Laptopszerviz Kft.
Város: Pécs
Cég: Ozeki Kft.
Város: Debrecen