Excel’da sana funksiyalari: DATEDIF, NETWORKDAYS, EOMONTH
Amaliyot3 daqInnovialabs tahririyati
Qisqacha
Excel’da sana — bu son, shuning uchun muddatlar qo‘shish bilan, ish kunlari bayramlar ro‘yxati bilan NETWORKDAYS va WORKDAY orqali, yosh va staj DATEDIF, oy oxirlari esa EOMONTH orqali hisoblanadi.
Qisqa javob
Excel sanani kunlarning tartib raqami sifatida saqlaydi, siz ko‘radigan narsa esa faqat katak formati. Shuning uchun:
- 30 kalendar kundan keyingi muddat —
=A2+30; - sanalar orasidagi ish kunlari — NETWORKDAYS;
- N ish kunidan keyingi sana — WORKDAY;
- sanalar orasidagi to‘liq yillar va oylar — DATEDIF;
- oyning oxirgi kuni — EOMONTH.
Xuddi shu funksiyalar Google Sheets’da ham ishlaydi. Rus tilidagi Excel’da nomlari boshqacha: РАЗНДАТ, ЧИСТРАБДНИ, РАБДЕНЬ, КОНМЕСЯЦА. Mintaqaviy sozlamalarga qarab argumentlar vergul o‘rniga nuqtali vergul bilan ajratilishi mumkin.
Kalendar va ish kunlaridagi muddatlar
Kalendar muddati — oddiy qo‘shish:
=A2+14
Dam olish va bayram kunlarini hisobga olgan ish kunlaridagi muddat. Bayramlar ro‘yxatini alohida varaqda saqlang va diapazonga nom bering, masalan, Bayramlar:
=WORKDAY(A2, 10, Bayramlar)
WORKDAY boshlang‘ich sananing o‘zini hisoblamaydi: sanash keyingi kundan boshlanadi.
Olti kunlik ish haftasi. Agar faqat yakshanba dam olish kuni bo‘lsa, .INTL versiyalaridan foydalaning. Yetti belgili satr dushanbadan boshlanadigan haftani tasvirlaydi, bunda 1 — dam olish kuni:
=WORKDAY.INTL(A2, 10, "0000001", Bayramlar)
Sanalar orasidagi ish kunlari
=NETWORKDAYS(A2, B2, Bayramlar)
=NETWORKDAYS.INTL(A2, B2, "0000001", Bayramlar)
NETWORKDAYS, agar ular ish kuni bo‘lsa, boshlang‘ich va oxirgi ikkala sanani ham hisobga oladi. Qo‘lda sanashdan bir kunlik farq ko‘pincha shundan kelib chiqadi.
Bayramlar ro‘yxatini har yili yangilang: ayrim bayramlar oy taqvimiga bog‘liq, dam olish kunlari esa rasmiy qarorlar bilan ko‘chirilishi mumkin.
Yosh va staj: DATEDIF
DATEDIF Excel’ning formula maslahatlarida ko‘rinmaydi, lekin ishlaydi. Uchinchi argument birlikni belgilaydi:
| Kod | Nima qaytaradi |
|---|---|
| "Y" | To‘liq yillar |
| "M" | To‘liq oylar |
| "D" | Kunlar |
| "YM" | To‘liq yillardan ortiq oylar |
| "YD" | To‘liq yillardan ortiq kunlar |
| "MD" | To‘liq oylardan ortiq kunlar |
Bugungi kundagi yosh:
=DATEDIF(B2, TODAY(), "Y")
«3 yil 7 oy» ko‘rinishidagi staj:
=DATEDIF(B2, TODAY(), "Y") & " yil " & DATEDIF(B2, TODAY(), "YM") & " oy"
Muhim: boshlang‘ich sana oxirgi sanadan oldin bo‘lishi kerak, aks holda #NUM! xatosi chiqadi. "MD" kodi ayrim hollarda noto‘g‘ri natija beradi va Microsoft unga tayanmaslikni tavsiya qiladi.
Oy oxirlari: EOMONTH
Ikkinchi argument — oylardagi siljish: 0 — joriy oy, 1 — keyingi, -1 — oldingi.
=EOMONTH(A2, 0) oyning oxirgi kuni
=EOMONTH(A2, -1)+1 oyning birinchi kuni
=EOMONTH(A2, 1) keyingi oy oxirigacha to‘lov
=DAY(EOMONTH(A2, 0)) oydagi kunlar soni
Agar natija 46387 kabi son bo‘lib ko‘rinsa, bu xato emas: katakka sana formatini bering. Kunni saqlagan holda butun oylarga siljitish uchun EDATE bor.
Sana formatlari
- Katak formati (Ctrl+1) faqat ko‘rinishni o‘zgartiradi, qiymat sanaligicha qoladi va u bilan hisoblash mumkin.
- TEXT sanani yozuvlar uchun satrga aylantiradi:
=TEXT(A2, "dd.mm.yyyy"). Format kodlari Excel tiliga bog‘liq: masalan, rus tilidagi Excel’da bu "ДД.ММ.ГГГГ". - Keyinchalik hisob-kitob qilinadigan kataklarda TEXT’dan foydalanmang: natija allaqachon matn.
Matn sifatida saqlangan sanalar
Belgilari: sanalar chap chetga tekislangan, tartiblash «alifbo bo‘yicha» ketadi, =ISNUMBER(A2) FALSE qaytaradi.
Tuzatish usullari:
- Text to Columns (Matnni ustunlarga). Ustunni belgilang, Data menyusida Text to Columns’ni tanlang, oxirgi qadamda Date formati va DMY tartibini ko‘rsating.
- DATEVALUE —
=DATEVALUE(A2)matn mintaqaviy sana formatiga mos kelsa ishlaydi. - Qismlardan yig‘ish — «25.12.2026» kabi satrlar uchun, sozlamalarga bog‘liq emas:
=DATE(RIGHT(A2, 4), MID(A2, 4, 2), LEFT(A2, 2))
Bundan oldin ortiqcha bo‘sh joylarni TRIM bilan, eksportdagi bo‘linmas bo‘sh joylarni esa SUBSTITUTE bilan olib tashlang.