Çalışma günlerini hesaplamak için Excel WORKDAY ve NETWORKDAYS işlevleri

  • Bunu Paylaş
Michael Brown

Bu kısa eğitimde, özel hafta sonu parametreleri ve tatiller ile iş günlerini hesaplamak için Excel NETWORKDAYS ve WORKDAY işlevlerinin kullanımı açıklanmaktadır.

Microsoft Excel, hafta içi günlerin hesaplanması için özel olarak tasarlanmış iki işlev sunar: WORKDAY ve NETWORKDAYS.

Bu İŞ GÜNÜ fonksiyonu, gelecekte veya geçmişte N iş günü olan bir tarih döndürür ve bunu belirli bir tarihe iş günü eklemek veya çıkarmak için kullanabilirsiniz.

Kullanarak AĞ GÜNLERİ işlevini kullanarak, belirttiğiniz iki tarih arasındaki iş günü sayısını hesaplayabilirsiniz.

Excel 2010 ve sonraki sürümlerde, yukarıda belirtilen işlevlerin daha güçlü modifikasyonları mevcuttur: WORKDAY.INTL ve NETWORKDAYS.INTL, hangi günlerin ve kaç günün hafta sonu olduğunu tanımlamanıza olanak tanır.

Şimdi her bir işleve daha yakından bakalım ve Excel çalışma sayfalarınızda çalışma günlerini hesaplamak için nasıl kullanabileceğinizi görelim.

    Excel WORKDAY işlevi

    Excel WORKDAY işlevi, başlangıç tarihinden belirli sayıda iş günü ileride veya önce olan bir tarih döndürür. Hafta sonlarının yanı sıra belirttiğiniz tatilleri de hariç tutar.

    WORKDAY işlevi, Cumartesi ve Pazar hafta sonu günleri olmak üzere standart çalışma takvimine dayalı olarak iş günlerini, kilometre taşlarını ve son tarihleri hesaplamak için tasarlanmıştır.

    WORKDAY, Excel 2007 - 365'te yerleşik bir işlevdir. Daha önceki sürümlerde Analysis ToolPak'i etkinleştirmeniz gerekir.

    Excel'de WORKDAY kullanırken, aşağıdaki bağımsız değişkenleri girmeniz gerekir:

    WORKDAY(start_date, days, [holidays])

    İlk 2 bağımsız değişken gerekli, sonuncusu ise isteğe bağlıdır:

    • Başlangıç_tarihi - hafta içi günlerin sayılmaya başlanacağı tarih.
    • Günler - start_date öğesine eklenecek / ondan çıkarılacak iş günü sayısı. Pozitif bir sayı gelecek bir tarih döndürür, negatif bir sayı geçmiş bir tarih döndürür.
    • Tatiller - İş günü olarak sayılmaması gereken tarihlerin isteğe bağlı bir listesi. Bu, hesaplamalardan hariç tutmak istediğiniz tarihleri içeren bir hücre aralığı veya tarihleri temsil eden seri numaralarının bir dizi sabiti olabilir.

    Artık temel bilgileri bildiğinize göre, Excel çalışma sayfalarınızda WORKDAY işlevini nasıl kullanabileceğinizi görelim.

    Tarihe iş günü eklemek / çıkarmak için WORKDAY nasıl kullanılır?

    Excel'de iş günlerini hesaplamak için şu basit kuralları izleyin:

    • için ekle iş günü olarak pozitif bir sayı girin. günler bir WORKDAY formülünün bağımsız değişkeni.
    • için çıkarma iş günlerinde negatif bir sayı kullanın. günler Tartışma.

    A2 hücresinde bir başlangıç tarihiniz, B2:B5 hücrelerinde bir tatil listeniz olduğunu ve gelecekteki ve geçmişteki 30 iş günü tarihini bulmak istediğinizi varsayalım. Bunu aşağıdaki formülleri kullanarak yapabilirsiniz:

    B2:B5'teki tatiller hariç olmak üzere başlangıç tarihine 30 iş günü eklemek için:

    =IŞ GÜNÜ(A2, 30, B2:B5)

    B2:B5'teki tatiller hariç olmak üzere başlangıç tarihinden 30 iş günü çıkarmak için:

    =IŞ GÜNÜ(A2, -30, B2:B5)

    Hafta içi günlerini hesaplamak için güncel tarih başlangıç tarihi olarak TODAY() fonksiyonunu kullanın:

    Bugünün tarihine 30 iş günü eklemek için:

    =IŞ GÜNÜ(BUGÜN(), 30)

    Bugünün tarihinden 30 iş günü çıkarmak için:

    =IŞ GÜNÜ(BUGÜN(), -30)

    Başlangıç tarihini doğrudan formüle vermek için TARİH işlevini kullanın:

    =IŞ GÜNÜ(TARIH(2015,5,6), 30)

    Aşağıdaki ekran görüntüsü tüm bunların ve birkaç WORKDAY formülünün daha sonuçlarını göstermektedir:

    Ve doğal olarak, başlangıç tarihine eklenecek / başlangıç tarihinden çıkarılacak iş günü sayısını bir hücreye girebilir ve ardından formülünüzde bu hücreye başvurabilirsiniz. Örneğin:

    =IŞ GÜNÜ(A2, C2)

    A2'nin başlangıç tarihi ve C2'nin başlangıç tarihinin gerisinde (negatif sayılar) veya ilerisinde (pozitif sayılar) hafta sonu olmayan gün sayısı olduğu durumlarda, hariç tutulacak tatil günleri yoktur.

    İpucu: Excel 365 ve 2021'de, bir dizi çalışma günü oluşturmak için SIRA ile birlikte ÇALIŞMA GÜNÜ'nü kullanabilirsiniz.

    Excel WORKDAY.INTL işlevi

    WORKDAY.INTL, WORKDAY fonksiyonunun aşağıdakilerle çalışan daha güçlü bir modifikasyonudur özel hafta sonu parametreleri WORKDAY'in yanı sıra, gelecekte veya geçmişte belirli sayıda iş günü olan bir tarih döndürür, ancak haftanın hangi günlerinin hafta sonu günü olarak kabul edileceğini belirlemenizi sağlar.

    WORKDAY.INTL işlevi Excel 2010'da tanıtılmıştır ve bu nedenle önceki Excel sürümlerinde kullanılamaz.

    Excel WORKDAY.INTL işlevinin sözdizimi aşağıdaki gibidir:

    WORKDAY.INTL(start_date, days, [weekend], [holidays])

    İlk iki argüman gereklidir ve WORKDAY'e benzer:

    Başlangıç_tarihi - ilk tarih.

    Günler - başlangıç tarihinden önceki (negatif değer) veya sonraki (pozitif değer) iş günü sayısını belirtir. günler argümanı ondalık sayı olarak verilirse, tamsayıya kesilir.

    Son iki bağımsız değişken isteğe bağlıdır:

    Hafta sonu - hangi hafta içi günlerin hafta sonu günü olarak sayılması gerektiğini belirtir. Bu, aşağıda gösterildiği gibi bir sayı veya dize olabilir.

    Sayı Hafta sonu günleri
    1 veya atlanmış Cumartesi, Pazar
    2 Pazar, Pazartesi
    3 Pazartesi, Salı
    4 Salı, Çarşamba
    5 Çarşamba, Perşembe
    6 Perşembe, Cuma
    7 Cuma, Cumartesi
    11 Sadece Pazar günleri
    12 Sadece Pazartesi
    13 Sadece Salı günleri
    14 Sadece Çarşamba
    15 Sadece Perşembe
    16 Sadece Cuma
    17 Sadece Cumartesi

    Hafta sonu dizesi - Pazartesi ile başlayan ve haftanın yedi gününü temsil eden yedi 0 ve 1'den oluşan bir dizi. 1 iş günü olmayan bir günü, 0 ise bir iş gününü temsil eder:

    • "0000011" - Cumartesi ve Pazar günleri hafta sonudur.
    • "1000001" - Pazartesi ve Pazar günleri hafta sonudur.

    İlk bakışta hafta sonu dizeleri gereksiz görünebilir, ancak ben şahsen bu yöntemi daha çok seviyorum çünkü herhangi bir sayı hatırlamak zorunda kalmadan anında bir hafta sonu dizesi oluşturabilirsiniz.

    Tatiller - İş günü takviminden hariç tutmak istediğiniz tarihlerin isteğe bağlı bir listesi. Bu, tarihleri içeren bir hücre aralığı veya bu tarihleri temsil eden seri değerlerin bir dizi sabiti olabilir.

    Excel'de WORKDAY.INTL kullanma - formül örnekleri

    Az önce tartıştığımız teorinin oldukça büyük bir kısmı oldukça karmaşık ve kafa karıştırıcı görünebilir, ancak elinizi formüllerde denemek işleri gerçekten kolaylaştıracaktır.

    Veri kümemizde, A2 hücresindeki başlangıç tarihi ve A5:A8'deki tatil listesiyle, özel hafta sonlarıyla birlikte iş günlerini hesaplayalım.

    için ekle Başlangıç tarihine kadar 30 iş günü, Cuma ve Cumartesi hafta sonu olarak sayılır ve A5:A8'deki tatiller hariçtir:

    =WORKDAY.INTL(A2, 30, 7, A5:A8)

    veya

    =WORKDAY.INTL(A2, 30, "0000110", A5:A8)

    için çıkarma Başlangıç tarihinden itibaren 30 iş günü, Pazar ve Pazartesi hafta sonu olarak sayılır ve A5:A8'deki tatiller hariçtir:

    =WORKDAY.INTL(A2, -30, 2, A5:A8)

    veya

    =WORKDAY.INTL(A2, -30, "1000001", A5:A8)

    10 iş günü eklemek için güncel tarih Pazar günü tek hafta sonu günüdür, tatil yoktur:

    =WORKDAY.INTL(TODAY(), 10, 11)

    veya

    =WORKDAY.INTL(A2, 10, "0000001")

    Excel sayfanızda formüller şuna benzer görünebilir:

    Not: Excel WORKDAY ve WORKDAY.INTL işlevlerinin her ikisi de tarihleri temsil eden seri numaraları döndürür. Bu numaraların tarih olarak görüntülenmesini sağlamak için numaraların bulunduğu hücreleri seçin ve Ctrl+1 tuşuna basarak Hücreleri Biçimlendir iletişim kutusu. Sayı sekmesini seçin, ardından Tarih içinde Kategori listesine gidin ve istediğiniz tarih biçimini seçin. Ayrıntılı adımlar için lütfen Excel'de tarih biçimi nasıl değiştirilir bölümüne bakın.

    Excel WORKDAY ve WORKDAY.INTL hataları

    Excel WORKDAY veya WORKDAY.INTL formülünüz bir hata döndürüyorsa, bunun nedeni muhtemelen aşağıdakilerden biri olabilir:

    #NUM! aşağıdaki durumlardan biri gerçekleşirse hata oluşur:

    • bir kombinasyonu start_date ve günler argümanları geçersiz bir tarihle sonuçlanır veya
    • hafta sonu WORKDAY.INTL işlevindeki bağımsız değişken geçersizdir.

    #VALUE! aşağıdaki durumlardan biri gerçekleşirse hata oluşur:

    • start_date veya içindeki herhangi bir değer TATİLLER geçerli bir tarih değilse veya
    • günler bağımsız değişkeni sayısal değildir.

    Excel NETWORKDAYS işlevi

    Excel'deki NETWORKDAYS işlevi, hafta sonları ve isteğe bağlı olarak belirttiğiniz tatiller hariç olmak üzere, iki tarih arasındaki iş günü sayısını döndürür.

    Excel NETWORKDAYS'in sözdizimi sezgiseldir ve hatırlanması kolaydır:

    NETWORKDAYS(start_date, end_date, [holidays])

    İlk iki argüman zorunlu, üçüncüsü ise isteğe bağlıdır:

    • Başlangıç_tarihi - İş günlerinin sayılmaya başlanacağı ilk tarih.
    • Bitiş_tarihi - iş günlerini saydığınız dönemin sonu.

    Hem başlangıç tarihi hem de bitiş tarihi döndürülen iş günü sayısına dahil edilir.

    • Tatiller - iş günü olarak sayılmaması gereken tatil günlerinin isteğe bağlı bir listesi.

    Excel'de NETWORKDAYS nasıl kullanılır - formül örneği

    Diyelim ki A2:A5 hücrelerinde bir tatil listesi, B sütununda başlangıç tarihleri, C sütununda bitiş tarihleri var ve bu tarihler arasında kaç iş günü olduğunu bilmek istiyorsunuz. Uygun NETWORKDAYS formülünü bulmak kolaydır:

    =NETWORKDAYS(B2, C2, $A$2:$A$5)

    Excel NETWORKDAYS işlevinin, başlangıç tarihi bitiş tarihinden küçük olduğunda pozitif bir değer ve bitiş tarihi başlangıç tarihinden daha yeni olduğunda negatif bir değer döndürdüğüne dikkat edin (satır 5'te olduğu gibi):

    Excel NETWORKDAYS.INTL işlevi

    NETWORKDAYS gibi, Excel'in NETWORKDAYS.INTL işlevi de iki tarih arasındaki hafta içi günlerin sayısını hesaplar, ancak hangi günlerin hafta sonu günü olarak sayılacağını belirtmenize olanak tanır.

    NETWORKDAYS.INTL fonksiyonunun sözdizimi NETWORKDAYS'e çok benzer, ancak haftanın hangi günlerinin hafta sonu olarak sayılması gerektiğini belirten ek [weekend] parametresine sahiptir.

    NETWORKDAYS.INTL( start_date, end_date, [weekend], [holidays] )

    Bu hafta sonu argümanı bir sayı veya dize kabul edebilir. Sayılar ve hafta sonu dizeleri hafta sonu WORKDAY.INTL fonksiyonunun parametresi.

    NETWORKDAYS.INTL işlevi Excel 365 - 2010'da kullanılabilir.

    Excel'de NETWORKDAYS.INTL kullanma - formül örneği

    Önceki örnekteki tarih listesini kullanarak, Pazar gününün tek hafta sonu günü olduğu iki tarih arasındaki iş günü sayısını hesaplayalım. Bunun için hafta sonu bağımsız değişkenini kullanın veya altı 0 ve bir 1 ("0000001") içeren bir dize oluşturun:

    =NETWORKDAYS.INTL(B2, C2, 11, $A$2:$A$5)

    Ya da

    =NETWORKDAYS.INTL(B2, C2, "0000001", $A$2:$A$5)

    Aşağıdaki ekran görüntüsü, her iki formülün de tamamen aynı sonuçları verdiğini kanıtlamaktadır.

    Excel'de iş günleri nasıl vurgulanır

    WORKDAY ve WORKDAY.INTL işlevlerini kullanarak, Excel çalışma sayfalarınızda yalnızca iş günlerini hesaplamakla kalmaz, aynı zamanda iş mantığınızın gerektirdiği şekilde bunları vurgulayabilirsiniz. Bunun için, WORKDAY veya WORKDAY.INTL formülü içeren bir koşullu biçimlendirme kuralı oluşturursunuz.

    Örneğin, B sütunundaki bir tarihler listesinde, A2:A3 hücrelerindeki iki tatil günü hariç, yalnızca bugünün tarihinden itibaren 15 iş günü içinde olan gelecek tarihleri vurgulayalım:

    =AND($B2>BUGÜN(), $B2<=İŞGÜNÜ(BUGÜN(), 15, $A$2:$A$3))

    Mantıksal testin ilk kısmı geçmiş tarihleri keser, yani bir tarihin bugüne eşit veya bugünden büyük olup olmadığını kontrol edersiniz: $B2>TODAY(). İkinci kısımda ise, bir tarihin hafta sonu günleri ve belirtilen tatiller hariç olmak üzere gelecekte 15 hafta içi günden fazla olup olmadığını doğrularsınız: $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3)

    Formül doğru görünüyor, ancak buna dayalı bir kural oluşturduğunuzda, yanlış tarihleri vurguladığını fark edeceksiniz:

    Şimdi bunun neden olduğunu anlamaya çalışalım. Sorun, birinin çıkarabileceği gibi İŞGÜNÜ işlevinde değildir. İşlev doğrudur, ancak... aslında ne yapar? A2:A3 hücrelerindeki hafta sonu günleri (Cumartesi ve Pazar) ve tatiller hariç olmak üzere, şu andan itibaren 15 iş günü sonrasına ait bir tarih döndürür.

    Peki, bu formüle dayalı kural ne yapar? Bugüne eşit veya bugünden büyük olan ve WORKDAY işlevi tarafından döndürülen tarihten küçük olan TÜM tarihleri vurgular. Gördünüz mü? Tüm tarihleri! Hafta sonlarını ve tatilleri renklendirmek istemiyorsanız, Excel'e bunu yapmamasını açıkça söylemeniz gerekir. Bu nedenle, formülümüze iki koşul daha ekliyoruz:

    • Hafta sonlarını hariç tutmak için WEEKDAY işlevi: WEEKDAY($B2, 2)<6
    • Tatilleri hariç tutmak için COUNTIF işlevi: COUNTIF($A$2:$A$3, $B2)=0

    Aşağıdaki ekran görüntüsünde gösterildiği gibi, geliştirilmiş formül mükemmel bir şekilde çalışmaktadır:

    =AND($B2>TODAY(), $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3), COUNTIF($A$2:$A$3, $B2)=0, WEEKDAY($B2, 2)<6)

    Gördüğünüz gibi, WORKDAY ve WORKDAY.INTL fonksiyonları Excel'de iş günlerini hesaplamayı hızlı ve kolay hale getiriyor. Elbette, gerçek hayattaki formülleriniz muhtemelen daha karmaşık olacaktır, ancak temelleri bilmek son derece yardımcı olur, çünkü yalnızca küçük bir dizi temel şeyi hatırlayabilir ve geri kalanını türetebilirsiniz. Okuduğunuz için teşekkür ediyor ve gelecek hafta blogumuzda görüşmeyi umuyorum!

    Michael Brown, yazılım araçlarını kullanarak karmaşık süreçleri basitleştirme tutkusuna sahip, kendini adamış bir teknoloji meraklısıdır. Teknoloji endüstrisinde on yılı aşkın deneyimiyle Microsoft Excel ve Outlook'un yanı sıra Google E-Tablolar ve Dokümanlar'daki becerilerini geliştirdi. Michael'ın blogu, bilgisini ve uzmanlığını başkalarıyla paylaşmaya, üretkenliği ve verimliliği artırmaya yönelik takip etmesi kolay ipuçları ve eğitimler sağlamaya adamıştır. İster deneyimli bir profesyonel, ister yeni başlayan olun, Michael'ın blogu, bu temel yazılım araçlarından en iyi şekilde yararlanmak için değerli bilgiler ve pratik tavsiyeler sunar.