Hirdetés
- HiFi műszaki szemmel - sztereó hangrendszerek
- Lenovo Legion Go: a legsokoldalúbb kézikonzol
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Milyen billentyűzetet vegyek?
- AMD Navi Radeon™ RX 9xxx sorozat
- Milyen TV-t vegyek?
- Milyen processzort vegyek?
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Vezetékes FEJhallgatók
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
-
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
- HiFi műszaki szemmel - sztereó hangrendszerek
- nVidia tulajok OFF topikja
- Lenovo Legion Go: a legsokoldalúbb kézikonzol
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Háztartási gépek
- Milyen billentyűzetet vegyek?
- AMD Navi Radeon™ RX 9xxx sorozat
- World of Tanks - MMO
- Milyen NAS-t vegyek?
- Autós topik
- További aktív témák...
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7600X 16/32/64GB RAM RX 9060XT 16GB GAMER PC termékbeszámítással
- Panasonic CF-XZ6 AIO all-in-one laptop tablet 2k touch i5-7300u speciális ütésálló rugged
- BESZÁMÍTÁS! Asus H370 i5 9600KF 16GB DDR4 512GB SSD RTX 2060 Super 8GB Zalman N4 ADATA 600W
- Bomba ár! Lenovo X1 Yoga 1st - i7-6G I 8GB I 256SSD I 14" WQHD I HDMI I W10 I CAM I Garancia!
- HIBÁTLAN iPhone 12 mini 64GB Red -1 ÉV GARANCIA - Kártyafüggetlen, MS2036
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest