- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Luck Dragon: Asszociációs játék. :)
- Andras-G: Az internet veszélyei [2. rész] - Facebook Marketpalce
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
- mefistofeles: Az elhízás nem akaratgyengeség! 2 Ahogy én csinálom.......
-
Fototrend
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
-
Fferi50
Topikgazda
válasz
napoleon2323
#44865
üzenetére
Szia!
Azt hiszem, az a baj, hogy C3 van az A3 helyett. A képletekben mindenütt abszolút (dolláros) A oszlopbeli cella legyen.
(Sajnálom, az én eredetileg beírt képletemben maradt benne ez a hiba, nem figyeltem kellőképpen.)
Üdv. -
Fferi50
Topikgazda
válasz
napoleon2323
#44863
üzenetére
Szia!
Megmutatnád azt a cellaértéket, amelyiknél hiba jelentkezik?
Üdv. -
Fferi50
Topikgazda
válasz
Csanaky
#44860
üzenetére
Szia!
A neveket a Képletek - Névkezelőben tudod megnézni.
"A képletekben egész sorok és oszlopok vannak"
Ez egyáltalán nem szerencsés - gondolj bele 1 milliónál több sor egy oszlopban... 16 ezer oszlop.
Gondold át, mennyi az a terület, amely a feladatokhoz szükséges és szűkítsd le konkrét tartományra a képleteket.
Üdv. -
Fferi50
Topikgazda
válasz
Csanaky
#44856
üzenetére
Szia!
Ha más is megnyitja, mi a biztosíték arra, hogy szintén csökkentett módban fogja megnyitni???
Érdemes lenne még tudni, milyen képleteket és számításokat használsz, milyen nevek vannak definiálva, formázások stb. A képletekben egész sorok/oszlopok szerepelnek-e. Vannak olyan függvények, amelyek akkor is újraszámolódnak, ha bárhol máshol változás van.
Vannak-e benne rejtett munkalapok?
Esetleg privátban mutathatnál belőle valamit - Delilának is.
Üdv. -
Fferi50
Topikgazda
válasz
Csanaky
#44854
üzenetére
Szia!
A csökkentett mód nem életbiztosítás...
Mekkora a fájlod mérete? Elképzelhető, hogy valamelyik cellába "piszok" került - oda nem illő adat.
Megnézheted a munkalapod méretét az F5 - Ugrás - Irányított - utolsó cella opcióval. Ha itt azt látod, hogy az adataidon túl, azoktól messze levő cellára ugrik, akkor az üres sorokat/oszlopokat kitörölve, újra mentve javulni kell a helyzetnek.
Kipróbálhatod a számolást manuálisra állítani. (Képletek - számolási beállítások - manuális). Ha ekkor gyorsul, akkor a képletekkel lehet gond. F9 -re újraszámol.
Üdv. -
Fferi50
Topikgazda
válasz
zsolti_20
#44849
üzenetére
Szia!
Szerintem mégis egyszerűbb lesz, ha megpróbálod némi munkával a lehúzást. Erre gondoltam:
A $CJ$20 -$21-ben a sorszám elől kiveszed a $ jelet. Így ha húzod lefelé a képletet, akkor növekszik a sorszám is.
Az A9 cellára lehúzott képletben a Keres-cserél funkcióval kicseréled a CJ29-et CJ20-ra, a CJ30-at pedig CJ21-re. Ott már I178 vagy ilyesmi lesz, azt cseréled J172-re. stb.
Lehúzod A17-ig. Majd megismétled a cseréket.
Elismerem, hogy ez nem feltétlenül a leggyorsabb megoldás. DE az Indirekt vagy Eltolás függvények megfelelő paramétereinek a kiszámolgatása is időigényes. Figyelembe kell venni az ismétlődési periódust mind a soroknál, mind az oszlopoknál.
Üdv. -
Fferi50
Topikgazda
válasz
napoleon2323
#44843
üzenetére
Szia!
Az A oszlopban levő tételeket a következőképpen szedheted szét B - C - D - E - F - G oszlopokban a megfelelő időre:
A képletek az első sorra vonatkoznak, utána húzható lefelé:
B1 cella:=IDŐÉRTÉK(BAL($A1;SZÖVEG.KERES("-";$A1)))
C1 cella:=VÁLASZT(HOSSZ($A1)-HOSSZ(HELYETTE($A1;KARAKTER(10);""))+1;IDŐÉRTÉK(HELYETTE(JOBB($A1;HOSSZ($A1)-SZÖVEG.KERES(" ";$A1));"-ig";""));IDŐÉRTÉK(HELYETTE(JOBB(BAL($A1;SZÖVEG.KERES(KARAKTER(10);$A1)-1);HOSSZ(BAL($A1;SZÖVEG.KERES(KARAKTER(10);$A1)-1))-SZÖVEG.KERES(" ";BAL($A1;SZÖVEG.KERES(KARAKTER(10);$A1)-1)));"-ig";""));IDŐÉRTÉK(HELYETTE(JOBB(BAL($A1;SZÖVEG.KERES(KARAKTER(10);$A1)-1);HOSSZ(BAL($A1;SZÖVEG.KERES(KARAKTER(10);$A1)-1))-SZÖVEG.KERES(" ";BAL($A1;SZÖVEG.KERES(KARAKTER(10);$A1)-1)));"-ig";"")))
D1 cella:=VÁLASZT(HOSSZ($A1)-HOSSZ(HELYETTE($A1;KARAKTER(10);""))+1;"";IDŐÉRTÉK(BAL(JOBB($A1;HOSSZ($A1)-SZÖVEG.KERES(KARAKTER(10);$A1));SZÖVEG.KERES("-";JOBB($A1;HOSSZ($A1)-SZÖVEG.KERES(KARAKTER(10);$A1)))-1));IDŐÉRTÉK(BAL(JOBB($A1;HOSSZ($A1)-SZÖVEG.KERES(KARAKTER(10);$A1));SZÖVEG.KERES("-";JOBB($A1;HOSSZ($A1)-SZÖVEG.KERES(KARAKTER(10);$A1)))-1)))
E1 cella:=VÁLASZT(HOSSZ($A1)-HOSSZ(HELYETTE($A1;KARAKTER(10);""))+1;"";IDŐÉRTÉK(HELYETTE(JOBB(JOBB($A1;HOSSZ($A1)-SZÖVEG.KERES(KARAKTER(10);$A1));SZÖVEG.KERES(" ";JOBB($A1;HOSSZ($A1)-SZÖVEG.KERES(KARAKTER(10);$A1)-2)));"-ig";""));IDŐÉRTÉK(JOBB(BAL($A1;SZÖVEG.KERES("-ig";$A1;20)-1);HOSSZ(BAL($A1;SZÖVEG.KERES("-ig";$A1;20)-1))-SZÖVEG.KERES(" ";$A1;12))))
F1 cella:=VÁLASZT(HOSSZ($A1)-HOSSZ(HELYETTE($A1;KARAKTER(10);""))+1;"";"";IDŐÉRTÉK(BAL(KÖZÉP($A1;SZÖVEG.KERES(KARAKTER(10);$A1;25)+1;HOSSZ($A1));SZÖVEG.KERES("-";KÖZÉP($A1;SZÖVEG.KERES(KARAKTER(10);$A1;25)+1;HOSSZ($A1)))-1)))
G1 cella:=VÁLASZT(HOSSZ($A1)-HOSSZ(HELYETTE($A1;KARAKTER(10);""))+1;"";"";IDŐÉRTÉK(JOBB(BAL(C1;SZÖVEG.KERES("-ig";C1;20)-1);HOSSZ(BAL(C1;SZÖVEG.KERES("-ig";C1;20)-1))-SZÖVEG.KERES(" ";C1;12))))
A cellákat természetesen idő formátumúvá kell tenned, hogy megfelelő formában lásd az értékeket.
Ezután már gondolom nem probléma a munkában töltött idő kiszámítása.
Azért ilyen hosszú a képlet, hogy mindhárom esetben használható legyen, függetlenül a beírt időadatok formájától.
Remélem, tudod használni.
Üdv. -
Fferi50
Topikgazda
válasz
napoleon2323
#44841
üzenetére
Szia!
De a -tól/től és az -ig szerepel mindig? Vagy legalább a kötőjel az időpontok között?
Üdv. -
Fferi50
Topikgazda
válasz
huliganboy
#44833
üzenetére
Szia!
az "ismétlődések eltávolítása" funkció mindig a hátrább lévő sorokat törli?
Igen.
Üdv. -
Fferi50
Topikgazda
-
Fferi50
Topikgazda
válasz
hushshs
#44819
üzenetére
Szia!
Úgy tűnik, a hagyományos keres-cserél funkció nem működik.
Kis kerülővel:
Egy üres cellába másold ki az utolsó karakterét az egyik ilyen cellának:
=JOBB(A1;1)
Ezután egy segédoszlopban a képlet:
=HELYETTE(A1;B1;"")
Ezt végighúzva a segédoszlopban eltűnnek a plusz sortörések.
Az eredményt másolás - irányított beillesztés értékként rögzíted és visszamásolhatod az eredeti helyére.
Makróval - egyszeri használatra -:
Alt F11 - View - Immediate window
Ide írd be:
ActiveSheet.Usedrange.Replace vblf, "" Enterrel zárd le.
A soremelések el fognak tűnni.Üdv.
-
Fferi50
Topikgazda
válasz
fausto
#44770
üzenetére
Szia!
Ez pedig egy képlettel megoldott változat a kék táblára:
H2 cella képlete: =A2,
I2 cella képlete=INDEX($A$2:$F$6;HOL.VAN(H2;$A$2:$A$6;0);DARABTELI($H$1:H2;H2)+1)
A H3 cella képlete:=HA(DARABTELI($H$1:$H2;H2)<DARAB2(INDEX($B$2:$G$6;HOL.VAN($H2;$A$2:$A$6;0);0));H2;INDEX($A$2:$G$6;HOL.VAN($H2;$A$2:$A$6;0)+1;1))
Az I2 és H3 cella képlete húzható lefelé.
A képletekben fontos a címzési formák betartása.
Amikor véget ér a listád, akkor hibaüzenetet fogsz kapni. Ez kiküszöbölhető a HAHIBA függvénnyel.
Az átalakítás után célszerű a másolás - irányított beillesztés értéket műveletet végrehajtani az új területre, ezáltal az eredeti adataid törölhetők. -
Fferi50
Topikgazda
válasz
Norbika1493
#44767
üzenetére
Szia!
Makrórögzítést próbáltad?
Üdv. -
Fferi50
Topikgazda
válasz
Norbika1493
#44764
üzenetére
-
Fferi50
Topikgazda
válasz
sajog159
#44747
üzenetére
Szia!
Egyértelmű, hogy az ominózus cellában szöveg szerepel és nem dátum (csak dátum, időnek látszik). Ezért ez cellaformázással nem alakítható dátummá.
Az Adatok - Szövegből oszlopok varázslóval elérheted, hogy csak a dátum része maradjon meg, az "időt" pedig ne írja ki sehova:
A darabolási opcióknál válaszd a Tagolt típust. A következő párbeszédpanelnél jelöld be a szóközt is. A 3. lépésnél pedig az első oszlopra bejelölheted, hogy dátum:
a második oszlopnál pedig az oszlop kihagyása opciót:
Ezután magára az adott cellára/oszlopra visszaírathatod az eredményt - egy dátum oszlopot, a rendeltetési hely megadásával.
Üdv. -
Fferi50
Topikgazda
Szia!
Bocs, hogy értetlenkedek, ez azért van mert nem ismerem az SAP-t (ez persze nem lehet mentség) és így csak "butákat" tudok kérdezni. De régebbi ismereteim szerint az ilyen rendszerekben szokott lenni olyan lehetőség, hogy adatfeltöltés fájlból és ez általában része az alapnak. Meg persze lehet API specifikáció is hozzá.
Amit a leírás alapján te szeretnél, az úgy gondolom, nem fűzhető össze egy tranzakcióvá, mivel több soros lenne az eredmény. Lehet belső ciklust csinálni, ahol figyeled a Material értékét és amíg egyezik, nem kell ismét bekérni.
Talán érdemes lenne kinyomozni a cég SAP kapcsolattartóját és vele beszélni erről.
Én biztosan a textfájlos inputot favorizálnám. Mivel ismered a cél formátumát, talán mégis lehet valami kaput találni, amit ki lehet nyitni a tömeges adatbevitelre.
Üdv. -
Fferi50
Topikgazda
-
Fferi50
Topikgazda
válasz
Attilav4
#44730
üzenetére
Szia!
Az A6373 cella képlete:=ELTOLÁS($A$1;MARADÉK(SOR()-1;6372);MARADÉK(OSZLOP()-1;7)+INT((SOR()-1)/6372)*7;1;1)
Ezt húzd el jobbra 7 oszlopra, majd lefelé. Arról fogod megismerni, hogy végigért a számítás, hogy minden sorba és oszlopba 0 fog kerülni, valahol a 850-860 ezer sor között.
Javaslom, hogy ne egyszerre húzd végig, hanem szakaszosan.
Ha ezután tovább szeretnél dolgozni az adatokkal, akkor kijelölöd az egész képletes részt, majd másolod és irányított beillesztés (ugyanide) értéket.
Ekkor megszűnik a "képletfüggőség".
Üdv. -
-
Fferi50
Topikgazda
válasz
jackal79
#44719
üzenetére
Szia!
A névkezelőben elnevezed az egyes listákat tartalmazó érvényesítési tartományt és ezt a nevet írod be az érvényesítésnél.
Látatlanban igazából nem tudok többet mondani a problémára.
Talán meg kellene próbálni, hogy először csak egy oszlopnál legyen érvényesítés, úgy menteni - megnyitni. Aztán folytatni egyenként a további oszlopokkal. Esetleg egy új munkafüzetet csinálni, mert lehet, hogy "korrumpálódott" a fájl és ezért csinálja ezt.
Milyen Excel verziót használsz?
Ha minden kötél szakad (akkor még lehet ott pótkötél
), privátban meg lehetne próbálni, hogy valaki közülünk ránéz az eredeti fájlodra.
Üdv. -
Fferi50
Topikgazda
válasz
dssport
#44717
üzenetére
Szia!
No, egy kis félreértés valóban történt. De akkor talán a megoldás is meglesz:
A rendezésnél az alap munkalapon csak az A:E oszlopot kell kijelölnöd és rendezned, hogy a képletek ne változzanak (hiszen az ellenőrzést mindig az adott sorra kell elvégezni)! És persze mindkét táblát rendezni kell.
Üdv. -
Fferi50
Topikgazda
-
Fferi50
Topikgazda
válasz
dssport
#44711
üzenetére
Szia!
Ha jól gondolom, akkor nem a sorokat, hanem az oszlopokat kell rögzítened és így húzható lefelé a képlet. ($A3=$B3+$C3)
De ha mégsem ez lenne a kérdés, akkor tegyél fel egy kisebb mintát és megkuksizzuk.
"a táblázat gyakran újra lesz rendezve bizonyos feltételek szerint, soronként."
Ez alatt mit értesz? A rendezés oszlopra vagy sorra vonatkozik?
Üdv. -
Fferi50
Topikgazda
válasz
jackal79
#44706
üzenetére
Szia!
"Több személy is használja a fájlt"
Meg van osztva a fájl és úgy használják, akár egyidőben is vagy külön-külön, egyszerre csak egy személy.
Van-e lapvédelem a munkalapon?
Talán szerencsésebb lenne a listát tartalmazó tartományt elnevezni és a névvel megadni az érvényesítésnél.
Üdv. -
Fferi50
Topikgazda
válasz
logitechh
#44697
üzenetére
Szia!
"az 1 el való szorzàs miért kell a képletbe?"
Csak az utolsó képletbe kell, mert ott az IGAZ-HAMIS értékeket nem tudja másképp számként értelmezni a SZORZATÖSSZEG függvény, mivel ott nem lenne más művelet a képlet tényezői között.
Az Excelben az IGAZ-HAMIS logikai függvények értéke számként is használható a számítási műveletekben: IGAZ értéke 1-re, HAMIS értéke 0-ra értékelődik. Az első két képletben szorzási művelet van a tényezők között, így automatikusan számként értelmezi a logikai értékeket is az Excel.Üdv.
-
Fferi50
Topikgazda
válasz
logitechh
#44694
üzenetére
Szia!
Egy szép tömbképlet segít ebben:
I11 cella képlete:=SZUM(($F$2:$F$9=$A11)*I$2:I$9*$D$2:D$9)
A képletet Ctrl+Shift+Enterrel kell bevinni a cellába. Az Excel kapcsos zárójelbe teszi.
Ezután húzhatod lefelé és oldalra is.
De ha nem szereted a tömbképleteket, akkor ez nem az:=SZORZATÖSSZEG(($F$2:$F$9=$A11)*I$2:I$9*$D$2:D$9)
Ez is húzható.
Vagy=SZORZATÖSSZEG(($F$2:$F$9=$A11)*1;I$2:I$9;$D$2:D$9)
Szintén húzható képlet.
Üdv. -
Fferi50
Topikgazda
Szia!
"Valami ilyesmi lenne:
Range("B1: B10000") = IIf(IsNumeric(Left(????,2)),Left(????,2),"")"
Ez így biztosan nem megy. Értéket nem tudsz egy egész tartománynak adni egy lépésben (csak ha ugyanazt az értéket szeretnéd).
For Each ciklussal mehet és cellánként kell végigmenned a tartományon. Akkor az utasítás jó, a kérdőjelek helyére annak a cellának az értékét/címét kell tenni, amit vizsgálsz.
Ha pl. az A oszlopban van a vizsgálandó érték, akkor:Dim cl As RangeFor Each cl In Range(A1:A100).Cellscl.Offset(0,1).Value=IIF(IsNumeric(Left(cl,2)),Left(cl,2),"") 'Ez a B oszlopba írja az adott értéketNext
Viszont képlettel meg lehet két lépésben csinálni, mivel ott egész tartományt lehet használni:
Először a képlet:Range("B1 : B100").Formula="=IFERROR(NUMBERVALUE(LEFT(A1,2)),"""")"
Utána átalakítjuk értékkéRange("B1: B100).Value=Range("B1 : B100").ValueÜdv.
-
Fferi50
Topikgazda
válasz
Peterhappy
#44685
üzenetére
Szia!
Semmi gond. Előfordul az ilyesmi mással is.
Örülök, hogy meglett a hiba oka.
Üdv. -
Fferi50
Topikgazda
válasz
Peterhappy
#44681
üzenetére
Szia!
Nézd meg, hogy a kimutatás forrása tartalmazza-e a 2020-as sorokat. Magyar Excelben ráállsz a kimutatás egy mezőjére. A kimutatás eszközök fülön kiválasztod az Elemzést - ezen belül az Adatok csoportban a más adatforrás megadása pontot. Ebben láthatod, hogy most mi van benne a kimutatás forrásában és korrigálhatod.
Üdv. -
Fferi50
Topikgazda
válasz
dunorg
#44678
üzenetére
Szia!
A billentyűparancs sajnos arra van "idomítva", hogy a kerek perceket írja be az aktuális időből. Az idő (és a dátum) az Excelben számként van kezelve. A dátum az 1900.01.01 óta eltelt napok számát mutatja - ez az egész része a MOST függvénynek -, az idő pedig a 24 órás napból eltelt részt mutatja - a MOST függvény tört része. Ezekről meggyőződhetsz, ha a cellaformátumot általánosra vagy számra állítod. Az értékek megjelenítése függ a beállított cella formátumtól(!), de mögötte mindig ugyanaz a számérték áll és azzal is számol az Excel, azzal a nem elhanyagolható különbséggel, hogy dátum/idő formátumban a negatív eredmény hibát okoz.
A törtrész tizedesjegyeinek száma függ attól, hány számjegyű az egész érték, mivel az Excel 15 értékes számjegyet tud megjeleníteni. A MOST függvénynél ezért (mivel a dátum 5 helyiértéket foglal el,) 10 hosszú lehet az értékes tizedesjegyek száma, amiből kiszámíthatod a századmásodperceket is.
A stopperhez a kezdő időt le kell rögzítened egy cellában (MOST függvény, majd irányított beillesztés értékként), ezután egy másik cellában a MOST()-rögzített cella értéke adja az eltelt idő nagyságát - megfelelő formátummal beállítva. Viszont ahhoz, hogy ez pörögjön, folyamatosan újra kell számoltatni a képletet (F9). Ha "automatikusan" szeretnéd, ahhoz makrót kell írnod, amiben időzítéssel hívod meg az újraszámolást. Csak ne feledd, hogy közben azért talán dolgozni is kellene más feladatokon....
Üdv. -
Fferi50
Topikgazda
válasz
Soulfly842
#44651
üzenetére
Szia!
Kimutatást próbáltad már?
Üdv. -
Fferi50
Topikgazda
válasz
zsolti_20
#44631
üzenetére
Szia!
Csak ötlet: Lekérdezés után kitörlöd a fájlt. Ezután Dir() paranccsal ellenőrzöd, hogy létrejött-e már, a létrehozás időpontját pedig a FileDateTime paranccsal tudod megnézni. (Ez sajnos csak az eredeti időpontot mutatja, a módosításét nem, ezért kell kitörölni.)
Üdv. -
Fferi50
Topikgazda
válasz
Stylewars_kp
#44632
üzenetére
Szia!
A képek tulajdonságánál állítsd be, hogy a cellával együtt mozog.
Üdv. -
Fferi50
Topikgazda
Szia!
Amit ide írsz, az publikus, mindenki látja. De van Privát levelezési lehetőség is, azt csak a két fél látja. (Hozzászólás fejléc jobb oldali végén lenyílóban találod.)
Ha ilyen bonyolultságú a fájl, akkor azt privátban kell megoldani. Eskü, hogy vállalati titkokat nem adunk tovább - de ha kell írásos titoktartási nyilatkozatot is tudunk adni. De azt tudnod kell, hogy ilyen mélységű probléma megoldása csak a fájl ismeretében lehetséges.
Üdv. -
Fferi50
Topikgazda
Szia!
Sajnos látatlanban ennél többet nem nagyon tudunk segíteni.
A képleteknél előfordulhat, hogy az egyik képlet eredménye még nem számolódik ki, ezért a második képlet a régi - helytelen - bemenő adattal számol. Ezért lenne fontos a végére még legalább egy számolási utasítást beilleszteni szerintem.
Az Alt billentyű ilyen funkcióját még nem volt alkalmam tapasztalni - igaz nem is igen kerestem, a "gyorsításokat" más módon oldottam meg, ha szükséges volt.
Továbbra is azt javaslom, hogy mintát tegyél fel, amit elemezni tudunk, mivel itt nemcsak a makróra kell ránézni, hanem a képletezésre is jó lenne egy pillantást vetni. Az adatok akár maradhatnak is benne, csak a fejléceket és egyéb "árulkodó" megnevezéseket kellene átírni.
Ha nem szeretnéd nyilvánossá tenni, akkor elküldheted privátba, gondolom Delila is szívesen megkukkantaná, mert elég izgalmasak ezek a problémák.
Üdv. -
Fferi50
Topikgazda
Szia!
Az Alt billentyűről azért nem írtam, mert arról sem tudom elképzelni, hogy begyorsulást okozzon.
(lehet, csak a képzelőerőm földszintes.....)
Többszintű képletezés alatt azt értem, hogy egyes képletek más képletek eredményeit használják fel - nem körkörös hivatkozásként, mert arra figyelmeztetne az Excel -, hanem bemenő adat egy képletnél egy másik képlet eredménye, emiatt nem tud normálisan kiszámítódni. Ezt meg lehet "kerülni", ha a képleteket egymásba építjük.
Egyébként természetes, hogy nagyméretű fájloknál időbe telik a képletek kiszámítása.
Elképzelhető, hogy amikor a gyorsítás miatt eltérő eredményeket kapsz, talán meg kellene próbálni a futás végén egy újabb számolást elindítani és utána megnézni a végeredményt.
Üdv. -
Fferi50
Topikgazda
Szia!
"Futás közben nem szabad a géphez nyúlni (semmihez!!!). mert ettől is begyorsul <alt> módjára és lőttek az eredményeknek."
Ez teljesen megdöbbentett, mert ilyet még nem tapasztaltam. (Gondolom van a programban DoEvents utasítás, ami ezt kiválthatja.)
Ami az eltérő eredményeket illeti: Nagy valószínűséggel a "többszintű" képletezés idézi elő.
Szerintem úgy lenne érdemes szervezni a programot, hogy egy-egy szint kiszámítása után folytatódjon a következő szint. Ezt a Calculation tulajdonsággal tudod szabályozni, nem automatikusra állítva, hanem kérésre és azután megfelelő időben a Calculate utasítást kiadva.
Aztán az sem mindegy futásidőt illetően, hogy vannak-e Volatile tulajdonságú függvények, mert ezek minden változáskor lefutnak - akkor is, ha nem a saját paramétereikben a változás! - tehát időt vesznek el a többi kárára.
Érdemes tehát a használt függvényeket is átmazsolázni.
Bővebbet és hasznosabbat csak a tényleges program ismeretében lehetne mondani. Nem érzékeny adatokkal felteszel egy mintát és ránézünk.
Üdv. -
-
Fferi50
Topikgazda
válasz
Morphy
#44596
üzenetére
Szia!
Sajnos a dátumok kezelése ezen a területen borzasztó az Excelben. Esetleg egy részletet, mondjuk csak addig az oszlopig, amiben a dátum van, fel tudnád tenni valahová. Természetesen az érzékeny adatok nélkül és elég lenne kb. 50 sor is.
Tennék még egy próbát a helyedben: Átmásolnám az adatokat és megnézném, hogy az új helyen mi történik.
Nekem ezzel a formával, amit mutattam, működik.
Üdv. -
Fferi50
Topikgazda
válasz
#PeTeY#
#44587
üzenetére
Szia!
Egy segédoszlop első cellájába tedd bele ezt a képletet:=BAL(A1;2) & JOBB("0000" & JOBB(A1;HOSSZ(A1)-2);4)
A1 helyébe tedd azt a cellát, amelyben az oszlopod kezdődik és vele egy sorban legyen a képlet.
Ezután a képletet végighúzod az oszlopon lefelé, ameddig adataid vannak.
A segédoszlop adatokat tartalmazó celláit kijelölöd - másolás - majd ugyanide irányított beillesztés értéket.
Ezután a segédoszlop adatait átmásolhatod az eredeti oszlopodba. A segédoszlop törölhető.Üdv.
-
-
Fferi50
Topikgazda
Szia!
ASet objSheet = objExcel.ActiveWorkbook.ActiveSheet
sor helyettSet objSheet = objExcel.Workbooks.Open("fájl neve elérési úttal").Sheets("munkalap neve")
ha nincs megnyitva a fájl, ha meg van nyitva, akkorSet objSheet = objExcel.Workbooks("fájlneve").Sheets("munkalap neve")
Természetesen a nevek lehetnek szöveg típusú változók is.
Üdv. -
Fferi50
Topikgazda
válasz
D@reeo
#44564
üzenetére
Szia!
Alapvetően az a probléma, hogy az Excel a dátumokat másként kezeli, mint ahogyan mi gondolnánk. Pl. 2020.06 lehet akár szöveg is - ami dátumnak néz ki, de lehet hogy a cellában dátum van, csak éppen éééé.hh a beállított formátum. A dátumot pedig számként használja az Excel és nem lehet szöveggel hasonlítani. Az Összefűz eredménye pedig szöveg.
A dátum voltát ellenőrizheted, ha a cella formátumát számra vagy általánosra állítod. Ha semmi nem változik, akkor szöveg van benne, egyébként számot fogsz kapni.
Ebben az esetben az összefűzés helyett dátumfüggvénnyel dátummá kell alakítani a feltételed is, hogy olyan legyen mint a dátum oszlopban levő érték.
Üdv. -
Fferi50
Topikgazda
válasz
peacefroggg
#44560
üzenetére
Szia!
Tételezzük fel, hogy nincs csak régi azonosítója, ekkor a D7 cella maradjon üres.
Ebben az esetben a D7 cellát vizsgáljuk:=HA(D7="";D9-es keresés;D7-es keresés)
(nem írom végig a képletet...)
Kicsit a hibázásra is gondolva:=HA(D7="";HA(D9="";"NINCS AZONOSÍTÓ";D9-es keresés);D7-es keresés)Üdv.
-
Fferi50
Topikgazda
Szia!
Ezt úgy kell érteni, hogy az első munkalapon van 1000 név és havonta külön fájlban mindenki abban írja a jelenlétit 28-30-31 oszlopban?
Miért kell külön-külön személyenként kinyomtatni? Papíralapon fogják kitölteni? 1000 lapot nyomtatni?
" nem kézzel kellene beírni a neveket, nem is begépelni egyesével, se szűrővel kattintgatni (vagy ilyesmi)."
Akkor valaki odavarázsolja azokat? Mert az Excel nem gondolatolvasó.
Üdv. -
Fferi50
Topikgazda
válasz
eszgé100
#44552
üzenetére
Szia!
A CreateObject egy új Excel példány hoz létre, ami teljesen szükségtelen.
"így megsprórolom a fájlok külön megnyitogatását is, ugye?"
Ezt nem gondolnám, mert hogyan tudná akkor beállítani a megfelelő értékeket a nyomtatáshoz? Kívülről ez nem megy.
Viszont nem kell minden fájlba beírni a makrókat, elég a "főfájlba betenni", ott pedig a makróban a beállításokat igazíthatod az éppen nyomtatni kívánt dokumentumhoz pl. a neve alapján. Tehát ez az egy makró szépen megnyitogatja amit kell, beállítja amit kell és kinyomtatja ahogyan kell. Azt is meg lehet vizsgálni, hogy melyik területen nyitották meg és ahhoz igazítani a nyomtatandó/nyomtatható fájlok listáját.
Üdv. -
Fferi50
Topikgazda
válasz
jackal79
#44553
üzenetére
Szia!
Ne az aktuális kijelölést, hanem a munkalapot válaszd ki.
A szabály szerkesztésében pedig az A1 írd át G24-re, mindkét szabályban. Elképzelhető, hogy esetleg ezt 2x kell megcsinálnod, hogy rendben legyen, mivel nem abszolut címzés van a képletben, ha más sort látsz, nyugodtan szerkeszd ismételten.
Ezt kell látnod az eredményben:
Azért szerintem nem kellene a teljes sorokat kijelölni, mert az egyrészt indokolatlanul megnöveli a fájl méretét, másrészt nem hiszem, hogy 16ezer+ napot szeretnél látni.
Próbáld az indokolt nagyságú területet kijelölni az érvényességben.
Üdv. -
Fferi50
Topikgazda
válasz
peacefroggg
#44547
üzenetére
Szia!
Angol nyelvű Exceled van, szerintem vessző kell a pontosvessző helyett.
Üdv. -
Fferi50
Topikgazda
válasz
peacefroggg
#44545
üzenetére
Szia!
Az nem információ, hogy nem fogadja el a képletemet... Milyen hibát ír ki.
Egyébként pedig a HOL.VAN függvénynél is meg kell adni a munkalap nevét, tehátMATCH(D7;Database!C2:C3884;0)
Ráadásul abszolut ($-os) címzést kell alkalmazni a Database tartományaira, hogy a képlet lehúzható legyen.
Üdv. -
Fferi50
Topikgazda
válasz
eszgé100
#44542
üzenetére
Szia!
Azért lenne pár kérdésem ez alapján.
Először a makrókhoz:
Dokumentumokról beszélsz, ezek Excel vagy Word fájlok?Sub Open_Word_Document()Set objWord = CreateObject("Word.Application")objWord.Documents.Open "Z:\Excel\ALBÉRLET.docm"objWord.Visible = FalseobjWord.Application.Run "NewMacros.toprint"CreateObject("Excel.Application").Wait (Now + TimeValue("00:00:01"))objWord.Quit SaveChanges:=objWordsDoNotSaveChangesSet objWord = NothingEnd Sub
Itt megnyitsz egy Word alkalmazást és abban egy dokumentumot, majd lefuttatsz egy makrót, ami a Word alkalmazásban (NewMacros) van, ami kinyomtatja azt. Ezután létrehozol egy Excel alkalmazást és bezárod a Word-ot.
Ha Excelből indítod a makrót, akkor miért kell új Excel alkalmazás létrehozni? Ha Wordben van a makró, akkor miért kell új Word alkalmazást létrehozni, majd bezárni?
Nem tudom hány xls-ed van, de nem hiszem, hogy mindegyiket külön-külön el kellene látni ugyanazon funkciókat végző makrókkal. Én egy alap Excelt használnék, amiben a makrók benne vannak és abból intézném az összes többinek a megnyitását és kezelését. Így csak egy fájlt kell karbantartani, nem pedig x db-ot.
De lehet, hogy rosszul látom.
Üdv. -
Fferi50
Topikgazda
válasz
peacefroggg
#44533
üzenetére
Szia!
Vagy az INDEX HOL.VAN függvény páros.
Ebben az esetben bárhol lehet az azonosító oszlopa.
Üdv. -
Fferi50
Topikgazda
válasz
Slowman
#44529
üzenetére
Már nem tudom szerkeszteni az előzőt, az F64 cellába írva működik, tömbképletként.
A magyarázat:
Az azonos értékek elkerülése érdekében minden vizsgált számhoz hozzáadunk egy nagyon pici eltérést, ez a +OSZLOP($F$8:$AH$8)/100000 érték. Ezáltal az azonos értékek megszűnnek, mivel az oszlopszám minden értéknél más és más.
Ezután az így kapott értéknek keressük meg az oszlopszámát a HOL.VAN függvénnyel:HOL.VAN(NAGY('OEE_Állásidő összegzés'!$F$8:$AH$8+OSZLOP($F$8:$AH$8)/100000;SOR()-63);'OEE_Állásidő összegzés'!$F$8:$AH$8+OSZLOP($F$8:$AH$8)/100000;0)
A Nagy függvény k paraméterét pedig úgy határozzuk meg, hogy lefelé húzható legyen, ezt a Sor()-63 adja. Ha tehát a 64. sorban van a képlet, akkor a kifejezés értéke 1 lesz, lehúzva pedig 2,3 stb.
A HOL.VAN függvény értéke pedig megadja az INDEX függvénynek, hányadik értéket vegye a tömbből.
Mivel az INDEX függvény első paraméter 1 soros, nem szükséges feltétlenül a függvény sor paraméterének az 1 megadása, mivel nincs több sor.
A tömbfüggvény pedig azért kell, hogy minden tételt vegyen figyelembe a képlet.
Remélem érthetően sikerült leírnom.
(Természetesen az eltérő értékeket úgy is el lehet érni, ha nagyon kis értékeket kivonunk a tényleges értékekből.)
Üdv.
Ps.
Amit az FKERES, VKERES függvényről írtál, azt Redmond felé kellene javasolnod.
-
Fferi50
Topikgazda
válasz
Slowman
#44529
üzenetére
Szia!
Hanyadik sorba írtad a képletet?
A SOR()-63 kifejezésben a 63 helyére a képlet előtti sort kell beírni.
Az Oszlop függvényeknél nem kell a munkalap neve, mivel csak az előfordulás számára vagyunk kíváncsiak - az oszlopszám minden munkalapon egyforma.
Ez a képlet nekem rendesen működik (az elküldött fájlod alapján):=INDEX('OEE_Állásidő összegzés'!$F$9:$AH$9;HOL.VAN(NAGY('OEE_Állásidő összegzés'!$F$8:$AH$8+OSZLOP($F$8:$AH$8)/100000;SOR()-63);'OEE_Állásidő összegzés'!$F$8:$AH$8+OSZLOP($F$8:$AH$8)/100000;0))
Üdv. -
Fferi50
Topikgazda
válasz
Slowman
#44527
üzenetére
Szia!
Nézd meg légy szíves ez a TÖMBKÉPLET működik-e:=INDEX(Munka1!$F$9:$AH$9;HOL.VAN(NAGY(Munka1!$F$8:$AH$8+OSZLOP($F$8:$AH$8)/100000;SOR()-63);Munka1!$F$8:$AH$8+OSZLOP($F$8:$AH$8)/100000;0))
A tömbképletet Ctrl+Shift+Enter kombóval kell lezárni, az Excel kapcsos zárójelbe teszi.
Ez húzható lefelé.
Légy szíves jelezz vissza, mit tapasztaltál, azután elmagyarázom a működését.
Üdv. -
Fferi50
Topikgazda
válasz
marksz1
#44522
üzenetére
Szia!
Az előző hozzászólásokon felül érdemes megnézni a feltételes formázások (és a függvények!) tartományát is. Ne legyenek benne teljes sorok/oszlopok, csak meghatározott tartománya a munkafüzetnek, amibe az adatok beleférnek.
Megnézheted azt is, nincs-e "felesleges" cellatartomány: F5 - Ugrás - irányított - utolsó cella. Ha ez nem az adattartomány végén van, akkor az addig tartó sorokat/oszlopokat töröld ki. Kisebb lesz a fájl is és gyorsabb lesz a végrehajtás.
Üdv. -
Fferi50
Topikgazda
válasz
#42308056
#44520
üzenetére
Szia!
Sajnos nem.
Egyébként most éppen azt játssza velem, hogy a szövegformátumra állított cellába a célformátumnak megfelelő beillesztés "jön be neki."
Redmond igen találékony...
De ha szövegformátumú a cellád a beillesztés előtt, akkor az egérrel megnézheted, melyik lesz akkor éppen a nyerő, a forrás vagy a cél formátum ...
Üdv. -
Fferi50
Topikgazda
válasz
dellfanboy
#44500
üzenetére
Szívesen!
(a második miatt ne gyötörd magad. 1 fekete pont pedig nem a világ
)
Üdv. -
Fferi50
Topikgazda
válasz
dellfanboy
#44498
üzenetére
Szia!
A KÖZÉP és SZÖVEG.KERES függvény kombinációja segít:=KÖZÉP(A1;SZÖVEG.KERES(";"; A1)+1;SZÖVEG.KERES(";";A1;SZÖVEG.KERES(";";A1)+1)-SZÖVEG.KERES(";";A1)-1)
Másik lehetőség:
Adatok, szövegből oszlopok - tagolt - határoló jel pontosvessző. A második oszlop tartalmazza a számodra szükséges értékeket.
Üdv. -
Fferi50
Topikgazda
válasz
Mr.Mercury
#44416
üzenetére
Szia!
Talán a 3. oszlop celláinak a végén van egy szóköz, amit egyébként nem látsz vagy a 4. oszlop celláinak elején.
Nézd meg, milyen hosszú a cellában levő érték, azt rövid szövegnél szemmel is érzékelheted, ha hosszabb, mint a hány bötűt látsz. Vagy: F2 billentyűvel bemész a szerkesztőlécre, elmész a végére, ha a látható betűk után is megy tovább, akkor ott a bűnös.
Ebben az esetben az összefűzésnél ne tegyél plusz szóközt, illetve ha egyáltalán nem akarsz szóközt, akkor bal(3.oszlop;hossz(3.oszlop)-1) legyen az összefűzésben.
Üdv. -
Fferi50
Topikgazda
Szia!
Próbáld ki ezt a makrót légy szíves:Sub mentes()Sheets("input").ActivateRange(Cells(1, 1), Cells(ActiveSheet.UsedRange.Columns(1).Find(what:="", LookIn:=xlValues, lookat:=xlPart).Row - 1, ActiveSheet.UsedRange.Columns.Count)).CopySheets.AddRange("A1").PasteSpecial Paste:=xlPasteValuesApplication.CutCopyMode = FalseActiveSheet.MoveActiveWorkbook.SaveAs Filename:="SAP_booking.txt", FileFormat:=xlTextActiveWorkbook.Close FalseEnd SubÜdv.
-
Fferi50
Topikgazda
válasz
jackal79
#44403
üzenetére
Szia!
A magyarázat:
A kiinduló képlet:=SZUM('[Extruding műszaknapló 2020.06.xlsm]1'!$B$212:$B$213;'[Extruding műszaknapló 2020.06.xlsm]1'!$B$236:$B$237;'[Extruding műszaknapló 2020.06.xlsm]1'!$B$260:$B$261;'[Extruding műszaknapló 2020.06.xlsm]1'!$B$284:$B$285;'[Extruding műszaknapló 2020.06.xlsm]1'!$B$308:$B$309;'[Extruding műszaknapló 2020.06.xlsm]1'!$B$332:$B$333)
Ezt szeretnéd elhúzni jobbra úgy, hogy a munkalapok nevét jelentő 1 változzon, azaz az oszlopnak megfelelő nevű munkalapra hivatkozzon a képlet. A képlet többi része tehát változatlanul kell, hogy maradjon. Vagyis szét kell szedni a képletet állandó és változó részre.
Erre a célra általában megfelel az INDIREKT függvény, amely a paraméterként megadott szöveget címként tudja értelmezni. Mivel azonban most külső hivatkozás van, ez csak akkor működik, ha a forrás fájlod meg van nyitva.
Kicsit meg kell trükközni a képletet. Ezért volt az első lépés az, hogy szétszedjük a képlet állandó és változó részét az A1 cellában:="SZUM('[Extruding műszaknapló 2020.06.xlsm]" & OSZLOP() &"'!$B$212:$B$213;'[Extruding műszaknapló 2020.06.xlsm]" & OSZLOP() &"'!$B$236:$B$237;'[Extruding műszaknapló 2020.06.xlsm]" & OSZLOP() & "'!$B$260:$B$261;'[Extruding műszaknapló 2020.06.xlsm]" & OSZLOP() & "'!$B$284:$B$285;'[Extruding műszaknapló 2020.06.xlsm]" & OSZLOP() & "'!$B$308:$B$309;'[Extruding műszaknapló 2020.06.xlsm]" & OSZLOP() & "'!$B$332:$B$333)"
Azidézőjelek közé a képlet fix része kerül, ehhez fűzzük hozzá a változó részt, ami az OSZLOP függvény, mert az OSZLOP függvény így paraméterek nélkül az aktuális oszlop számát adja vissza.
Ha tehát ezt elhúzzuk jobbra, akkor a szövegek változatlanok maradnak, az OSZLOP függvény értéke pedig változik.
Ez így most egy képlet, ami szöveg formátumú eredményt ad a cellákban. Azért, hogy képletként lehessen használni, át kell alakítani értékké. Ezt csinálja a másolás - irányított beillesztés értékként. Ezzel megkaptuk a számunkra szükséges képlet szövegét.
Ahhoz, hogy képletként működjön is, elébe kell tenni az egyenlőség jelet, ami a képletet jelzi az Excel számára.
Mivel az adott cellában szeretnénk a képletet hagyni, ezért nem lehet függvénnyel csinálni. Erre jó a Keres - cserél menü, ami "helyben" végzi el a műveletet. Keressük a SZUM szót, amivel kezdődnek a képletek és kicseréljük =SZUM -ra. Minden cellában.
Ezután már képletként fog működni a "kreációnk"! Akkor is, ha a forrás fájlod nincs nyitva.
Remélem, érthetően tudtam elmagyarázni a lépések okát és eredményét.Üdv.
Új hozzászólás Aktív témák
- Game Pass Ultimate előfizetések 1 - 36 hónapig azonnali kézbesítéssel a LEGOLCSÓBBAN! AKCIÓ!
- Xbox / Microsoft Store feltöltőkártya kód (digitális, HU) több címlet, több db, azonnal, olcsón
- Windows 10/11 Home/Pro , Office 2024 kulcsok
- Adobe Előfizetések - Adobe Creative Cloud All Apps - 12 Hónap - 15% AKCIÓ
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- iPhone 13 mini 128GB 100%(1év Garancia) - AKCIÓ
- Apple iPhone 12 Pro / 128GB / Kártyafüggetlen / 12Hó Garancia / Akku: 83%
- HP 255 G10 Ryzen 5 7520U 8 GB DDR5 256 GB SSD FHD Új 2 ciklus Gari 2028.
- IKEA Format lámpák eladóak (Egyben kedvezménnyel vihető!)
- Apple iPhone 12 Pro 256GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


).
), privátban meg lehetne próbálni, hogy valaki közülünk ránéz az eredeti fájlodra.




)
