- Szünetmentes tápegységek (UPS)
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Vezetékes FEJhallgatók
- Milyen monitort vegyek?
- AMD Navi Radeon™ RX 9xxx sorozat
- Az Enermax tényleg nem viccel, ha az új tápjának garanciaidejéről van szó
- Milyen billentyűzetet vegyek?
- Azonnali VGA-s kérdések órája
- TCL LCD és LED TV-k
- Autós kamerák
-
PROHARDVER!
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
-
azopi74
addikt
válasz
TrollBalint
#25744
üzenetére
"Az első feladat, amivel most szenvedek, az annyi lenne, hogy egy dátumtól számolva a paraméterben megadott számnyi munkanapot leszámol és azt a dátumot adja vissza. Viszont ha ezen túl vagyok lesz olyan is, hogy két dátum között kell kiszámolni a munkanapok számát."
De minek kell ehhez makró?

Ha úgyis már megvannak a típusok naptári naponként nézve egy táblában, akkor, (ha ezt a táblát pl elnevezed DayType-nak, a napot Day-nek, a típust Type-nak, és csinálsz egy plusz mezőt (WorkDayCum) az adott napig eltelt munkanapok számának meghatározására így : =COUNTIFS([Type],"Workday",[Day],"<="&[@Day])Ekkor a két dátum (Kezdodatum, ZaroDatum) közti munkanapok száma:
=COUNTIFS(DayType[Type],"Workday",DayType[Day],">="&mnapkalk[@KezdoDatum],DayType[Day],"<"&mnapkalk[@ZaroDatum])
relációs jeleket tetszőlegesen állítsd, attól függően, hogy az első és utolsó napokat bele akarok számítani
Az adott napra (KezdoDatum) rászámolt munkapok (mnapok) pedig:
=INDEX(DayType[Day],MATCH(VLOOKUP([KezdoDatum],DayType,3,0)+[mnapok],DayType[WorkDayCum],0),1)
Tömbfüggvénnyel persze segédoszlop nélkül is megoldható, mint minden, csak az már egy kicsit szofisztikáltabb megoldás lenne

-
Fferi50
Topikgazda
válasz
TrollBalint
#25744
üzenetére
Szia!
A #25749 hozzászólásomban levő függvény nem teljesen jó sajnos, mert nem a munkanapokat számolja, hanem csak a napokat. Javítottam, ezt próbáld meg légy szíves:
Function munkanapos(ByVal mettol As Date, Optional hanynap As Integer) As Date
Dim unnepek As Range, munkanap As Date, napi As Range, napok As Date, napjai As Integer
Set unnepek = Sheet1.Range("G2:G19")
napjai = 0
munkanap = mettol
Do While napjai <= hanynap
napok = mettol + napjai
Set napi = unnepek.Find(what:=napok, LookIn:=xlValues, lookat:=xlWhole)
If Not napi Is Nothing Then
If Application.Weekday(napok, vbMonday) = 6 Then
munkanap = napok
End If
Else
If Application.Weekday(napok, vbMonday) < 6 Then
munkanap = napok
End If
End If
napjai = napjai + 1
Loop
munkanapos = munkanap
End FunctionÜdv.
-
Fferi50
Topikgazda
válasz
TrollBalint
#25744
üzenetére
Szia!
A következőt javaslom:
A Settings munkalap G oszlopa alá írd még be a H oszlopban levő adatokat ís.
Ezután írd be a következő függvényt a module1-be:Function munkanapos(ByVal mettol As Date, Optional hanynap As Integer) As Date
Dim unnepek As Range, munkanap As Date, napi As Range, napok As Date
Set unnepek = Sheet1.Range("G2:G19")
munkanap = mettol
If hanynap = 0 Then hanynap = 0
For napok = mettol To mettol + hanynap
Set napi = unnepek.Find(what:=napok, LookIn:=xlValues, lookat:=xlWhole)
If Not napi Is Nothing Then
If Application.Weekday(napok, vbMonday) = 6 Then
munkanap = napok
End If
Else
If Application.Weekday(napok, vbMonday) < 6 Then
munkanap = napok
End If
End If
Next
munkanapos = munkanap
End FunctionA függvény megmondja, hogy a kezdő dátumtól (meddig) a megadott napokkal (hanynap) később melyik lesz a munkanap.
Ez működik cellában meghívva is (csak a cellaformátumot kell dátumra állítani).Üdv.
(A makróddal kapcsolatban szerintem majd írok privit, ha neked is megfelel.)
Új hozzászólás Aktív témák
- Szünetmentes tápegységek (UPS)
- S.T.A.L.K.E.R. - Anomaly
- Milyen okostelefont vegyek?
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- S.T.A.L.K.E.R.: Call of Pripyat
- Lightyear - befektetési app
- Battlefield 6
- Nintendo Switch 2
- Anime filmek és sorozatok
- Vezetékes FEJhallgatók
- További aktív témák...
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- 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
- Keresem a Barkács Balázs Játékokat
- HIBÁTLAN iPhone 13 256GB Pink -1 ÉV GARANCIA - Kártyafüggetlen, MS3732
- GIGA AKCIÓ! Lenovo ThinkPad P15 Gen 2 Intel i7-11850H 32GB 512GB Nvidia RTX A4000 1 év garancia
- AKCIÓ! Apple Watch SE 2024 44mm Cellular okosóra garanciával hibátlan működéssel
- ÁRGARANCIA!Épített KomPhone Ryzen 5 5600X 16/32/64GB RAM RTX 5060 8GB GAMER PC termékbeszámítással
- Samsung Galaxy S22 Ultra 256GB, Kártyafüggetlen , 1 Év Garanciával
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


Fferi50

