- Luck Dragon: Asszociációs játék. :)
- gban: Ingyen kellene, de tegnapra
- sziku69: Szólánc.
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sziku69: Fűzzük össze a szavakat :)
- Magga: PLEX: multimédia az egész lakásban
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- ricsi99: 6. Genes alaplap tündöklése.. kontra MS/Zintel korlátozásai.(Mehetnek a levesbe)
- sh4d0w: Tele a hócipőm
- Geri Bátyó: Agglegénykonyha 6 – Néhány egyszerű tésztaétel
-
LOGOUT
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
TrollBalint #25778 üzenetére
Szia!
A javított függvényemben is sikerült egy hibát benne hagyni, ezért nem úgy számol, ahogyan kellene.
A napjai = napjai+1 sort oda kell átirni, ahol a munkanap=napok sorok vannak, az után a sorok után, mivel csak akkor szabad növelni, ha munkanapot talált.
Tehát az a rész így nézne ki:
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
napjai=napjai+1
End If
Else
If Application.Weekday(napok, vbMonday) < 6 Then
munkanap = napok
napjai=napjai+1
End If
End If
LoopTermészetesen az oszlopot is elnéztem, valóban nem a H, hanem az I oszlop adatait kell átírni a G alá. Mégpedig azért, mert a függvény logikája a következő:
Az ünnepek között felsorolt hétköznap (H-P) azt jelenti, hogy az a nap nem munkanap.
Az ünnepek között felsorolt szombat viszont azt jelenti, hogy az a szombat munkanap.Elnézést kérek a hibák miatt.
Üdv.
-
azopi74
addikt
válasz
TrollBalint #25778 üzenetére
Milyen sok hivatkozás és lista?
Én a te általad készített hivatkozásokat és listákat használtam, és a te képletedet használtam a nap típus meghatározására is
Csak táblává alakítottam a range-eidet, mert utálok cellahivatkozásokkal szórakozni, így szerintem sokkal olvashatóbb a képlet, és átláthatóbb az egész, mintha Range hivatkozásokkal nyomnánk be (no meg a munka is sokkal gyorsabb vele, mint range-ekkel, és robusztusabb is)
Nem olvashatóbb az, hogy
=IF(COUNTIF(Munkanapok[Munkanapok],[@Day])>0,"Workday",IF(OR(WEEKDAY([@Day],2)>5,COUNTIF(Mszunet[Munkaszüneti napok],[@Day])),"Holiday","Workday"))
, mint az, hogy
=IF(COUNTIF(Settings!$K$2:$K$4,Settings!$E2)>0,"Workday",IF(OR(WEEKDAY(Settings!$E2,2)>5,COUNTIF(Settings!$I$2:$I$16,Settings!$E2)),"Holiday","Workday"))
?
(ez a te függvényed)
Ilyen adatbázis szintű feladatok, strukturált táblázatok esetén mindig egészségesebb táblákkal dolgozni minden szempontból. Megéri, egy mozdulat az egész (Insert - Table) Most részletezném minden előnyét, mert estig azokat sorolnám, kezdd el használni, sose fogz többé range-ekkel és cellákkal bajlódni
(csak amikor nagyon muszáj,, mert pl olyan szemét formában kapod az adatokat)
.
Táblák egyébként Excel 2002 óta vannak támogatva, valamiért mégis kevesen használják számomra érthetetlen módon.
A függvények, amiket használtam, alap excel függvények, mindegyiknek mennie kell 2007-en.
Countifs 2003 óta megy (előtte tömbfüggvényekkel kellett bajlódni ilyesmikhez)
Index, match és vlookup pedig emberemlékezet óta van az excel-ben, azok nélkül elég nehéz lenne az életBár vlookup-ut ki lehetne dobni
. 97 óta biztosan benne vannek, előtte nem tudom, mert nem nagyon használtam. Más függvényt nem használtam.
A képletek:
Eltelt munkanapok:
=COUNTIFS([Type],"Workday",[Day],"<="&[@Day])
Szerintem ezt nem kell magyarázni, (bár ezt lehetett volna sime countif-fel is, de az nem áll az ujjaimra
az mnapok - hoz használt képlet:
=COUNTIFS(DayType[Type],"Workday",DayType[Day],">="&[@KezdoDatum],DayType[Day],"<"&[@ZaroDatum])
Csak annyit tesz, hogy összeszámolja a kezdő és végső dátum közötti munkanapokat (ahol teljesül mindhárom feltétel)
Zarodatum-hoz használt kalkuláció egy kicsit összetettebb, de nem túl bonyolult:
=INDEX(DayType[Day],MATCH(VLOOKUP([KezdoDatum],DayType,3,0)+[mnapok],DayType[WorkDayCum],0),1)
VLOOKUP([KezdoDatum],DayType,3,0)+[mnapok] [I]-> Spoiler[/I]
Kikeresi a napok táblájában az adott napig eltelt munkapok számát, hozzáadja a hozzáadandó munkanap számot. Bár nem szép megoldás a vlookup, kerülendő a használata, egyrészt korlátoltsága, másrészt sebezhetősége miatt, így szinte mindig INDEX + MATCH használata javasolt helyette. De most ezt választottam az egyszerűség kedvéért.
=INDEX(DayType[Day],MATCH([I][SP]VLOOKUP([KezdoDatum],DayType,3,0)+[mnapok][/SP][/I],DayType[WorkDayCum],0),1)
Visszakeresi ugyanitt azt az első napot, ami az előző függvény által visszadott érték, vagyis ameddig az eredetileg eltelt + hozzáadandó munkanapok teltek el. Itt már ugye, ha akartam se tudtam volna VLOOKUP-ot használni a korlátai miatt, csak úgy, ha további segédoszlopot használok. Egyébként többfüggvénnyel mindenféle segédoszlop nélkül is meg lehetett volna oldani a dolgot
Új hozzászólás Aktív témák
Hirdetés
- HATALMAS AKCIÓK! GARANCIA, SZÁMLA - Windows 10 11, Office 2016 2019 2021,2024, vírusírtók, VPN
- Samsung Galaxy Tab S8 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Telefon felvásárlás!! Samsung Galaxy A12/Samsung Galaxy A22/Samsung Galaxy A32/Samsung Galaxy A52
- BESZÁMÍTÁS! Intel Core i5 4570 4 mag 4 szál processzor garanciával hibátlan működéssel
- ÁRGARANCIA!Épített KomPhone i5 13400F 16/32/64GB RAM RX 9060 XT 8GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest