Hirdetés
-
GAMEPOD.hu
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 Pinocchio23 #40549 üzenetére
Szia!
Makró:
Sub zarolo()
Dim oszlop As Range
ActiveSheet.Unprotect "jelszo"
With ActiveSheet.UsedRange
.Locked = False
For Each oszlop In .Columns
If oszlop.Cells(1).Value < Date Then
oszlop.Locked = True
End If
If oszlop.Cells(1).Value = Date Then
Exit For
End If
Next
End With
ActiveSheet.Protect "jelszo"
End SubBeteheted a Workbook Open eseményébe a meghívását.
Üdv.
-
Pakliman
tag
válasz Pinocchio23 #40549 üzenetére
Én először ezzel próbálkoznék:
a "ThisWorkbook" modul Workbook_Open metódusban:
1. cellák zárolásának megszüntetése a megfelelő munkalapon,
2. zárolja a meghatározott dátumokat tartalmazó cellákat
3. "Lapvédelem" jelszóvalMost látom, Fferi50 már megelőzött...
[ Szerkesztve ]
-
PistiSan
addikt
Sziasztok!
Az alábbi képen látható, bizonyára triviális problémában kérném a segítségeteket.
A cél az lenne, hogy a szum függvény csak addig adja össze az értékeket, amíg a táblázatban a Mindösszesen felirat nem jelenik meg.Van egy rakás nevem, változó a sorok száma, weblapból importálom az adatokat.
Most minden import után a szum függvény hatókörét módosítanom kell manuálisan, arra gondoltam hogy a hol.van függvénnyel ki keresem a "Mindösszesen" szót hogy hányadik sorban van, ebből ki vonok 1-et, aztán a szum függvénnyel össze adatom az adatsort.
Fél órája próbálkozom, és teljesen idiótán érzem magam, nem tudom a 2 függvényt össze hozni úgy hogy működjön. -
Pinocchio23
tag
válasz Fferi50 #40551 üzenetére
Köszönöm a gyors választ, segítséget.
Betettem a makroba de amikor futtatnám az alábbi hibát dobja:Run-time error ’1004’:
Range osztály Locked tulajdonsága nem állítható beés a debug módban az alábbi sornál áll meg:
oszlop.Locked = True
Lehet valamit kihagytam?
Segítségként a táblázat részlet. A szürke mező zárolt, rögzített. A többi oszlop görgethető, szerkeszthető. A táblázat lapvédelemmel van ellátva.
-
RedHarlow
aktív tag
Sziasztok, makróval megoldható az szerintetek, hogy az excel megnyit egy xml fájlt, megszámolja, hogy hányszor szerepel benne egy szó, aztán a kapott eredményt beírja a táblázatba?
-
Fferi50
Topikgazda
válasz Pinocchio23 #40556 üzenetére
Szia!
A lapvédelem feloldása ott van a makró elején:
(ActiveSheet.Unprotect "jelszo")
Ezután a teljes használatban levő területet feloldja.
Hamarabb le kellene állnia, ha nem tudja feloldani.
Ha viszont feloldja, akkor zárolni is tudni kellene.
Látatlanban ennél többet nem tudok mondani.
Esetleg az oszlop számát meg tudod mondani?
Vagy feltenni a mintát valahova?Mert nálam összevont cellák és rögzített oszlopok esetén is megy.
Üdv.
[ Szerkesztve ]
-
Pakliman
tag
válasz RedHarlow #40558 üzenetére
Szia!
A rövid válasz: igen.
A hosszabb: az Excel meg tudja nyitni táblázatként is
(pl.:Workbooks.OpenXML Filename:="C:\Dokumentumok\adatok.xml", LoadOption:=xlXmlLoadImportToList
), ekkor már használható a "DARABTELI" függvény megfelelő változata.
Természetesen egyszerű szövegként is meg lehet nyitni, majd soronként beolvasva a szövegben lehet keresni és számolni a találatokat.[ Szerkesztve ]
-
Lasersailing
senior tag
válasz Ronyman #40541 üzenetére
Szia,
Beirogattam mindent egy teszt excel munkalapra, ez alapján megértettem, hogy a beosztás sheeten oszlopok jelőlik a dátumokat, míg a jelenléti sheeten sorok.
Nem írtad, de a képletből gondolom a B1-ben van a dolgozó neve. Minden dolgozóra van egy külön jelenléti sheet?
A képlet ami így jó lesz (B4-be):
=VLOOKUP($B$1,beosztás!$A$7:$FH$25,4+(ROW()-4)*5+COLUMN()-2,0)
VLOOKUP = FKERES,
ROW = SOR
COLUMN = OSZLOPEz a képlet másolható C oszlopba is, de a ledolgozott napi idő ("F" oszlopba) már nem lesz jó, ott különbségként számolnám ki.
Nálam a fenti működik, de azt javaslom, hogy gondold át, hogy jó-e Neked, ha az egyik sheeten az oszlopban vannak a dátumok, a másik sheeten sorokban! Engem biztos, hogy megbolondítana!
Így ha változtatsz az egyik tábla struktúráján a másik képleteit újra kell írnod nulláról... -
Fferi50
Topikgazda
válasz Pinocchio23 #40563 üzenetére
Szia!
Persze.
Üdv,
-
Fferi50
Topikgazda
válasz Pinocchio23 #40563 üzenetére
Szia!
A cella zárolás nem szereti az oszlopok összevonását. Külön-külön nem lehet az oszlopokat zárolni, csak egyben. Ezért meg kell keresni az első olyan dátumot az első sorban, amit már nem kell zárolni.
Íme a makró:Sub zarolo()
Dim oszlop As Integer, cl As Range
ActiveSheet.Unprotect "jelszo"
With ActiveSheet.UsedRange
For Each cl In .Rows(1).Cells
If cl.Value >= Date Then oszlop = cl.Column - 1: Exit For
Next
.Range(.Cells(1, 1), Cells(.Rows.Count, oszlop)).Locked = True
End With
ActiveSheet.Protect "jelszo"
End SubÜdv.
-
smallmer
őstag
Sziasztok!
Excelben adott két oszlop:
kutya | majom
kutya | majom
kutya | galamb
ló | majom
egér | galambOlyan szűrőt szeretnék készíteni, ami csak a kutya | majom és egér | galamb sorokat adja vissza.
Tudnátok segíteni ebben? Fontos, hogy a többit sem szeretném törölni. Mindössze szűrni szeretnék.
Köszönöm szépen
[ Szerkesztve ]
-
Bocimaster
csendes tag
Sziasztok!
Értek hozzá, de lehet én vagyok a bamba / nem találkoztam még vele /
Értékek összeadása dátum / idő / függvényében -
Nagyon megköszönöm a segítségeket !!
a vége persze - elég messze van / 35041 - sor
2017 December 31 23:15:00 71,925
2017 December 31 23:30:00 69,475
2017 December 31 23:45:00 73,525
2018 Január 01 0:00:00 68,075Az ösztön mindig többet ér az észnél.
-
Fferi50
Topikgazda
válasz Bocimaster #40568 üzenetére
Szia!
Szumhatöbb függvény? Az év,hó,nap,idő cella értékeket átalakítva dátummá.
Üdv.
[ Szerkesztve ]
-
Bocimaster
csendes tag
válasz Fferi50 #40569 üzenetére
Elsőként az egész egybe volt,
- majd ezt bontottam szét 4 oszlopra - magát az idő nem tudom "hovatenni"
"Ha" függvénnyel a feltételben az év és a hónap még a nap se olyan nehéz ha ... igaz akkor add össze...
Ami megfogott ez az egyedi érték összeadás a termelésben adott számok amiket a látottak alapján kell összeadni....
Az ösztön mindig többet ér az észnél.
-
Lasersailing
senior tag
válasz Bocimaster #40568 üzenetére
Az nem elég, ha leszűröd D oszlopot 00:00-ra majd az F oszlopban végighúzod a képletet, ami összeadja a felette lévő négy cellát?
Ha jól látom mindig 15 percenként van adat, azaz minden egész órában az előtte lévő négy cellát szeretnéd összegezni. (kérdést nem találtam, ez volt a kérdés?)
-
Bocimaster
csendes tag
válasz Lasersailing #40571 üzenetére
- végül is egynek nagyon jó köszi - de ha még van 2-3 ilyen 34000+ sorom - lehúzni is sok
De köszönöm, és már meg is csináltam, amit mondtál.
Az ösztön mindig többet ér az észnél.
-
bteebi
veterán
Szia!
Kipróbáltam, működik . Le a kalappal a képletek előtt, a nagyobb részüket már meg is értettem.
Aztán a végén véletlenül szinte biztos, hogy találtam egy hibát: a K oszlopban lévő képlet látszólagosan figyelmen kívül hagyja az autótípust, és a márka és szín alapján szűr (bár azok alapján, arra a két paraméterre, jól):
Az ELTOLÁS függvény és a névkezelő viszonyát nem értettem, ezért erről beteszek egy képet:
Az Érvényesítésnél meg ez van:
Ettől teljesen függeltenül írtam egy makrót, ami egyelőre látszólag teljesen jól működik, és némi hibakezelés is van benne. Bemásolom ide, még jó kiindulási alap lehet másnak.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rendszamok As String
Dim sor As Long
Dim usor As Long
'utolsó sor megkeresése
usor = Sheets("Feladat").Cells(Sheets("Feladat").Rows.Count, 1).End(xlUp).Row
For sor = 2 To usor
'Oszlopok összehasonlítása és a megfelelő rendszámok hozzáadása a rendszamok nevű listához
If Sheets("Feladat").Cells(sor, 1) & " " & Sheets("Feladat").Cells(sor, 2) & ", " _
& Sheets("Feladat").Cells(sor, 3) = Sheets("Feladat").Range("F2") Then
rendszamok = rendszamok & Sheets("Feladat").Cells(sor, "D") & ","
End If
Next sor
'Ha valamiért nem lenne megtalálható az adott típus, pl. hibás adatbevitel, akkor lépjen ki
If Len(rendszamok) < 1 Then
Application.EnableEvents = False
With Sheets("Feladat").Range("G2")
.ClearContents
.Validation.Delete
End With
Application.EnableEvents = True
MsgBox Sheets("Feladat").Range("F2") & " típusú autó" & vbCr & "nincs a listában. Ellenőrizd.", vbCritical, "Hiba!"
Exit Sub
Else
'Az utolsó vessző eltávolítása
rendszamok = Left(rendszamok, Len(rendszamok) - 1)
End If
'legördülő lista létrehozása a "rendszamok" nevű lista elemeivel
With Sheets("Feladat").Range("G2").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:=rendszamok
End With
End SubHa van találat:
Ha nincs találat:
Cancel all my meetings. Someone is wrong on the Internet.
-
bteebi
veterán
válasz Bocimaster #40572 üzenetére
Ha egybefüggő a tartomány, akkor nem kell (egérrel) lehúznod a képletet, hanem elég, ha a képletet tartalmazó cella jobb alsó sarkához mész az egérkurzorral. Ha az egérmutató egy kis fekete keresztté változik, és duplán kattintasz a bal egérgombbal, akkor lemásolja a képletet/cellatartalmat az összefüggő tartomány aljáig. Ha az 10 sor, akkor 10 sor, ha 50000, akkor 50000.
Ha nem egybefüggő a tartomány ("szakadás" van benne), de az egyszerűség kedvéért egyben akarod lemásolni a képletet, akkor ctrl+C-vel tedd a vágólapra a képletet tartalmazó cellát. A ctrl+nyilak segítségével fel-le, jobbra-balra tudsz ugrálni. Az ugrálgatással keresd meg az utolsó sort (pl. ctrl+le, majd egyet balra, és ctrl+fel nyíl, ezzel elvileg megtaláltad az utolsó sort), majd vissza a képletet tartalmazó sorba (a jelen példánál maradva egyet jobbra), majd ctrl+shift+felfelé nyíl (a shift ugye azért kell, hogy kijelöld a cellákat, amikbe le akarod másolni a képletet). Addig nyomd a felfelé nyilat, amíg el nem éred a másolt cellát, majd ekkor vagy ctrl+v-t, vagy entert nyomsz, és kész is van. (Ha a képletet tartalmazó oszlop a legszélső, és nincs az oszlopban semmi más, akkor nem kell többször megnyomnod a felfelé nyilat, mert kapásból a másolt cellára kell ugrania.)
Leírva talán bonyolultan hangzik , de ha kipróbálod, akkor majd rájössz, hogy milyen egyszerűen működik. Kezdetnek nyomkodd a ctrl+nyilakat össze-vissza, aztán az ugrálásokra ráérezvén majd meg tudod egyszerűen oldani a képlet, vagy bármi másnak a másolását.
Cancel all my meetings. Someone is wrong on the Internet.
-
Paxker315
addikt
Sziasztok. Ismételten segítséget kérnék, dátum formátumú cellákban adatkeresés-számolásra.
Tegyük fel, a D oszlopban levő dátumok közül szeretném összegezni az összes hétfőt...& illetve az összes januárt...
próbáltam tömbfüggvénnyel, nem sikerült, darabteli szintén nem jó, FKERES-el sem sikerült. Bármi hasznos tipp nagyon jól jönne. Koszonom szepen
-
sz_abika
addikt
Hali,
bentragadtam egy feltételes formázós loop kialakításában és nem jutok tovább benne...Range("D6").Select
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=P6<$A$2"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = RGB(230, 230, 230)
.TintAndShade = 0
End WithEz lenne az alap, amit addig kellene loopoltatni a D oszlopban lefelé haladva,
ActiveCell.Offset(1, 0).Select
amíg abban a bizonyos cellában van egy marker letéve
Do While ActiveCell.Value <> "***"
Ezt hogy kellene helyesen egybegyúrni? Állandóan abba futok bele, hogy a loop keresi a "do"-t és így nem fut le.
Vagy lehet inkább egy stopiftrue kéne neki?[ Szerkesztve ]
PSN: xszabikax
-
Pakliman
tag
válasz sz_abika #40578 üzenetére
Szia!
Ha jól értem, hogy mit szeretnél (A D2 cellától a ***-aj jelzett sor előtti sorig szeretnéd feltételesen formázni?)...
Dim jelSora
'Megnézi, hogy a "jel" hanyadik sorban van
jelSora = Application.Match("***", Range("D:D"), 0)
'Ha van egyáltalán "jel", akkor...
If Not IsError(jelSora) Then
With Range("D2:D" & jelSora - 1)
.FormatConditions.Add Type:=xlExpression, Formula1:="=P6<$A$2"
.FormatConditions(.FormatConditions.Count).SetFirstPriority
With .FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = RGB(230, 230, 230)
.TintAndShade = 0
End With
End With
End If -
Mutt
senior tag
válasz bteebi #40573 üzenetére
Szia,
A ...K oszlopban lévő képlet látszólagosan figyelmen kívül hagyja az autótípust... hibára a megoldás, hogy a HELYETTE($F$2;",";""))=1 részben nagyobb egyenlő kell. A teljes javított képlet:
=SOR()*ELŐJEL(SZÖVEG.KERES(A2;$F$2))*HA(HOSSZ($F$2)-HOSSZ(HELYETTE($F$2;",";""))>=1;ELŐJEL(SZÖVEG.KERES(B2;$F$2));1)*HA(HOSSZ($F$2)-HOSSZ(HELYETTE($F$2;",";""))=2;ELŐJEL(SZÖVEG.KERES(C2;$F$2));1)
A névkezelőben használt a megadott képletet a dinamikus tartományhoz.
A makró megoldásnál érdemes lenne figyelni, hogy csak akkor fusson le ha az F2-ben történik változás,
továbbá előnyös lehet ha akkor is adna találatot, ha csak kis-/nagybetűkben lenne eltérés.Egy alternatív megoldás pedig lehet a Pivot Slicerek használata.
Előnye, hogy nagyon vizuális. Hátránya, hogy frissíteni kell a pivotot ha van változás az autók listáján.
üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
Mutt
senior tag
válasz Paxker315 #40577 üzenetére
Szia,
...a D oszlopban levő dátumok közül szeretném összegezni az összes hétfőt...& illetve az összes januárt...
Hétfőket ezzel tudod megszámolni (=1 rész nézi a hétfőt, ha kedd kell akkor =2-re írd át):
=SZORZATÖSSZEG(--(HÉT.NAPJA(D2:D1000;11)=1))
Január egy kicsit trükkösebb (itt is az =1 az első hónap, az =12 pedig december lesz):
=SZORZATÖSSZEG(--(HÓNAP(D2:D1000)*NEM(ÜRES(D2:D1000))=1))
Januári hétfők pedig:
=SZORZATÖSSZEG((HÓNAP(D2:D1000)*NEM(ÜRES(D2:D1000))=1)*(HÉT.NAPJA(D2:D1000;11)=1))
üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
Fferi50
Topikgazda
válasz sz_abika #40581 üzenetére
Szia!
Sajnos a * joker karakter a keresésnél, így a három * is azt jelenti, hogy nem üres a cella, amit keresünk.
Ezért helyette valami más jelzést kellene kitalálnod.
Vagy ciklussal végigmenni az oszlopon addig, amíg nem találod meg a három *-ot cellaértékként és azt tekinteni a formázás végét jelző sornak.Üdv.
-
skul0
aktív tag
Sziasztok!
Nem találtam pontos választ a kérdésemre. Office365-öt használok.
Adott egy táblázat, melynek sorait feltételes formázással formáztam meg, a cella különböző értékei (1-15) szerint kell változnia a háttér színének, azonban az egymást követő sorok színének - ha a cella értéke "0" - akkor egymást váltva szürke és fehér színűnek kell lennie a jobb szemvezetés végett.
A problémám az, ha a cellák értékeit másolják, vagy a cellát "lehúzzák", akkor a feltételes formázás is másolódik és a szürke-fehér átmenetek elcsúsznak az adott oszlopban.Cella zárolást próbáltam, de amint engedélyezem a szerkesztését, a formátum is másolódik. Van rá mód, hogy csak az értékek másolását engedjem meg, a formátum mindig maradjon ugyan az adott cellánál?
Köszönöm!
-
Lasersailing
senior tag
Szia,
Gyakorlatilag azt szeretnéd, hogy pl. a páros excel sorok fehérek legyenek a páratlanok meg szürkék:
=even(row())/row()
Ez páros sorokban igaz lesz, páratlan sorokban hamis, feltételes formázásba be tudod tenni, hogy milyen színt akarsz. A páratlan sorokat meg vagy meghagyod fehérre, vagy tagadod a fenti feltételt (not = NEM)
EVEN = PÁROS
ROW = SOR -
Lasersailing
senior tag
válasz Lasersailing #40587 üzenetére
Bocsánat most nézem, hogy a képlet bemásolása nem sikerült:
=even(row())=row()
-
sztanozs
veterán
válasz Lasersailing #40588 üzenetére
Miért kell az
=row()
az=even(row())=row()
végére?JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
Delila_1
veterán
válasz Lasersailing #40588 üzenetére
=párose(sor()) és =páratlane(sor())
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
alef
csendes tag
Van-e lehetőség az Excelben (bármelyikben, Office 2007-től 2013-ig minden van itthon) a háttérszín alapján hivatkozni cellákra? Tehát pl. hogy egy cellatartományból összegezze a sárga háttérszínűeket; vagy csak a sárgákba írjon be egy értéket; esetleg rendezze egymás után a sárga cellákat.
Tudom, hülyeségnek tűnik, de sajnos a Központi Statisztikai Hivatal sárga színű üres cellákkal jelöli a "nullától különböző, de adatvédelmi okokból nem közölhető" adatokat, és ezeket szeretném elkülöníteni a fehér színű üres cellával jelöltektől (amelyek nulla értékűek)... Egy jellemző példa a képen (még mielőtt valaki megkérdezné, igen, a szexboltokról is létezik hivatalos statisztika, a KSH weboldaláról töltöttem le... ) Pár darabot még nem lenne probléma kézzel "összerendezni" de vannak olyan adatok, ahol a háromezer településből sokszáz a sárga cellával jelölt, amiket külön kellene kezelnem. -
sztanozs
veterán
válasz Lasersailing #40592 üzenetére
Pff, összekevertem az even-t az iseven-nel
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
alef
csendes tag
válasz Fferi50 #40594 üzenetére
Értem, köszönöm. Igazából elég lenne annyi, hogy adott cellatartomány - mondjuk: B1020 - sárga hátterű celláinak tartalmát cserélje le pl. egy "x"-re, onnantól kezdve már "bármit" tudnék vele csinálni. (A KSH a papír alapú kiadványaiban maga a "..." jelet használja a nem közölhető adatokra, de sajnos az elektronikus adatközlésekben ehelyett a sárga hátterű üres cellát használják, nem tudom, miért... :-( )
-
Fferi50
Topikgazda
Szia!
A keres-cserél (Ctrl+F magyarban) funkcióval meg tudod csinálni.
Beállítod a keresésnél a formátum mintát a sárga kitöltésre - persze nézd meg, hogy egyezzen a cellák sárgájával - majd a cseréhez beírod pl. hogy x . Az összes cseréje egyből megoldja az egészet.A keresendő szövegbe nem kell érték.
Akár a sárga hátteret is megváltoztathatod, ha cserélendőben a formátumot beállítod az újra.
Üdv.[ Szerkesztve ]
-
huan
őstag
Sziasztok!
A segítségeteket szeretném kérni az alábbi feladat megoldásában.
Van egy ilyesmi egyszerű táblám. Tulajdonképp egy készlet fogyását számoló leltártáblázat.
Az E2 : F5-ben készletek szerepelnek pl. gyümölcsökből.
Az A-oszlopban a gyümölcsök véletlenül ismétlődnek.
A C-oszlopban az aktuális készlet látható mindig, a B-oszlopban az aktuális levonás értéke a készletből.
Lefelé haladva a C-oszlopban mindig csak annyi érték legyen a gyümölcsök mellett, amennyi a A-oszlop adott gyümölcsének levonása után marad.
A C-oszlopban lévő változást szeretném fügvénnyel megoldani.[ Szerkesztve ]
Új hozzászólás Aktív témák
- Felmerült az Intel és az AMD egyesülése
- PlayStation 5 Pro teszt
- Black Friday november 29. / Cyber Monday december 2.
- Társasjáték topic
- Minecraft
- Szólánc.
- Asszociációs játék. :)
- Milyen notebookot vegyek?
- Az USA is versenyellenesség miatt készül vizsgálni a Microsoft felhőjét
- BestBuy topik
- További aktív témák...
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: HC Pointer Kft.
Város: Pécs