
Bendroji formulė
=EOMONTH(date,0)+1-WEEKDAY(EOMONTH(date,0)+1-dow)
Santrauka
Norėdami gauti paskutinę mėnesio savaitės dieną (ty paskutinį šeštadienį, paskutinį penktadienį, paskutinį pirmadienį ir kt.), Galite naudoti formulę, pagrįstą EOMONTH ir WEEKDAY funkcijomis.
Parodytame pavyzdyje formulė D5 yra:
=EOMONTH(B5,0)+1-WEEKDAY(EOMONTH(B5,0)+1-C5)
Paaiškinimas
Pirma, ši formulė nustato kito mėnesio pirmą dieną * po * nurodytos datos. Tai darau naudodamas EOMONTH, norėdamas gauti paskutinę mėnesio dieną, tada pridėdamas vieną dieną:
=EOMONTH(B5,0)+1
Tada formulė apskaičiuoja dienų, reikalingų „grįžti“ į paskutinę prašomą savaitės dieną ankstesnį mėnesį (ty pradinės datos mėnesį), skaičių:
WEEKDAY(EOMONTH(B5,0)+1-C5)
WEEKDAY viduje EOMONTH vėl naudojamas norint gauti pirmąją kito mėnesio dieną. Nuo šios datos atimama savaitės dienos vertė, o rezultatas perduodamas į WEEKDAY, kuri pateikia dienų skaičių atgal.
Galiausiai atgalinės dienos atimamos iš kito mėnesio pirmos dienos, o tai duoda galutinį rezultatą.
Kitomis darbo dienomis
Puslapio viršuje pateikiant bendrą formulę, savaitės diena sutrumpinta „dow“. Tai skaičius nuo 1 (sekmadienis) iki 7 (šeštadienis), kurį galima pakeisti, norint gauti kitą savaitės dieną. Pavyzdžiui, norėdami gauti paskutinį mėnesio ketvirtadienį, nustatykite dow į 5.
Pastaba: Į šią formulę patekau atsakydamas į „MrExcel“ forumą, kurį pateikė Barry Houdini.