Excel'de Otomatik Çalışma Günü Hesaplama

Kerem Aydın·13 Temmuz 2026·⏱4 dk

İki tarih arasındaki hafta sonlarını ve tatilleri hariç tutarak çalışma günü sayısını hızlıca öğrenmek için =NETWORKDAYS(başlangıç_tarihi; bitiş_tarihi; [tatiller]) işlevini kullanın. Bu formül, Cumartesi ve Pazar günlerini yanı sıra tatil listesinde belirttiğiniz tüm tarihleri otomatik olarak yok sayar. Özel çalışma programları (örneğin vardiya usulü çalışma) için, kendi hafta sonu günlerinizi ayarlamanıza olanak tanıyan gelişmiş NETWORKDAYS.INTL sürümü uygulanır.

Kısa cevap: =NETWORKDAYS(A1; B1; C1:C5) yazın; burada A1 dönem başlangıcı, B1 dönem bitişi ve C1:C5 ise tatil tarihlerinin listesidir. Sonuç anında görünecektir.

Temel NETWORKDAYS İşlevi

NETWORKDAYS işlevi (İngilizce network days — ağ/program çalışma günleri), personel muhasebesi ve proje planlaması için standart bir araçtır. Standart hafta sonlarını (Cumartesi ve Pazar) hariç tutarak günleri sayar.

Sözdizimi: =NETWORKDAYS(başlangıç_tarihi; bitiş_tarihi; [tatil_dizisi])

  • Başlangıç_tarihi: Dönem başlangıç tarihini içeren hücre.
  • Bitiş_tarihi: Bitiş tarihini içeren hücre.
  • Tatil_dizisi (isteğe bağlı): Hesaplamadan çıkarılması gereken resmi tatil veya kurumsal izin günlerinin tarihlerini içeren hücre aralığı.

Kullanım örneği: A2 hücresinde proje başlangıç tarihi (01.04.2026), B2 hücresinde teslim tarihi (30.04.2026) ve D2:D10 aralığında Nisan ayının tatil günlerinin listelendiğini varsayalım. Formül şu şekilde olacaktır: =NETWORKDAYS(A2; B2; D2:D10)

Sonuç, bu dönemdeki çalışma günü sayısı olacaktır. Üçüncü bağımsız değişken atlanırsa, Excel yalnızca Cumartesi ve Pazar günlerini dikkate alır.

NETWORKDAYS.INTL ile Özel Programların Hesaba Katılması

Standart iki günlük hafta sonu şeması herkese uygun değildir. Örneğin sadece Pazartesi ve Salı günleri çalışan veya Cuma ve Cumartesi günleri hafta sonu yapan vardiyalı çalışanlar için NETWORKDAYS.INTL işlevi kullanılır.

Sözdizimi: =NETWORKDAYS.INTL(başlangıç_tarihi; bitiş_tarihi; [hafta_sonu_kodu]; [tatiller])

Buradaki kilit parametre hafta_sonu_kodudur. Bu kod, 1'den 17'ye kadar bir sayı veya Pazartesi gününden başlayarak yedi karakterlik bir dize ("0" — çalışma günü, "1" — hafta sonu) olarak belirtilebilir.

KodDizeHafta Sonu Günleri
1"0000011"Cumartesi, Pazar (standart)
2"0000110"Pazar, Pazartesi
.........
7"1100000"Cuma, Cumartesi
11"0000010"Sadece Pazar
17"0000001"Sadece Cumartesi

"Cuma-Cumartesi" programı için örnek: =NETWORKDAYS.INTL(A2; B2; 7; D2:D10) Veya metin formatında: =NETWORKDAYS.INTL(A2; B2; "1100000"; D2:D10)

İpucu: Kodları ezberlememek için Excel'de formülü yazmaya başlayın. "Hafta sonu türü" bağımsız değişkenini seçerken, program mevcut tüm seçeneklerin açıklamalarını içeren bir açılır ipucu gösterecektir.

İş Tamamlanma Tarihinin Hesaplanması (WORKDAY)

Sıklıkla tersine bir görevi çözmeniz gerekir: Başlangıç tarihi ve görevin tamamlanması için gerekli çalışma günü sayısı bellidir. Teslim tarihini belirlemeniz gerekir. Bunun için WORKDAY ve WORKDAY.INTL işlevleri hizmet eder.

Formül: =WORKDAY(başlangıç_tarihi; gün_sayısı; [tatiller])

İşlev, belirtilen sayıda çalışma gününü başlangıç tarihine ekler ve hafta sonları ile tatilleri atlar.

Senaryo: Görev 10 Nisan 2026 tarihinde (A2) başlıyor. Tamamlanması için 15 çalışma günü ayrılmış. Tatiller D2:D5 aralığında belirtilmiş. Formül: =WORKDAY(A2; 15; D2:D5) Sonuç: Görevin fiilen tamamlanacağı tarih.

Benzer şekilde, hafta sonu günlerinin kodunun da belirtilebildiği özel haftalar için WORKDAY.INTL çalışır.

Tatil Listesinin Hazırlanması

Formüllerin doğru çalışması için tatil listesinin düzgün biçimlendirilmesi kritik öneme sahiptir.

  1. Ayrı bir aralık: Çalışma kitabındaki herhangi bir sayfada "Tatiller" başlıklı bir sütun oluşturun ve yıl içindeki tüm resmi olmayan günlerin tarihlerini buraya girin.
  2. Hücre biçimi: Tarih içeren hücrelerin "Metin" değil, "Tarih" biçimine sahip olduğundan emin olun. Aksi takdirde formül #DEĞER! hatası verir.
  3. Adlandırılmış aralık: Kolaylık sağlaması açısından tatil içeren aralığa bir ad atayın (örneğin Holidays).
    • Tarihleri içeren aralığı seçin.
    • Ad kutusuna (formül çubuğunun solunda) Holidays yazın ve Enter'a basın.
    • Artık formül daha okunabilir hale gelecektir: =NETWORKDAYS(A2; B2; Holidays).

Bu, raporun yüzlerce satırındaki formülleri değiştirmeden, tatil listesini tek bir yerden kolayca güncellemenizi sağlar.

Hesaplamalarda Sık Yapılan Hatalar

  • #DEĞER! Hatası: Bağımsız değişkenlerde Excel'in tarih olarak tanımadığı değerler geçirildiğinde ortaya çıkar. Hücre biçimini kontrol edin.
  • Negatif sonuç: Bitiş tarihi başlangıç tarihinden önceyse, işlev negatif bir sayı veya sıfır döndürür. Bu durumlar için formülü ABS() (mutlak değer) içine alabilir veya EĞER koşulu kullanabilirsiniz.
  • Tatillerin yok sayılması: En sık yapılan hata, üçüncü bağımsız değişkenin belirtilmesini unutmaktır. Sonuç olarak, Mayıs bayramı veya Yeni Yıl tatilleri çalışma günü olarak sayılır ve proje süreleri bozulur.
  • INTL'de yanlış kod: Yanlış uzunlukta (7 karakter olmayan) veya 0 ve 1 dışındaki karakterler içeren bir dize kullanmak #DEĞER! hatasına yol açar.

SSS

Çalışma günleri yerine çalışma saatleri hesaplanabilir mi? Standart işlevler tam günleri sayar. Saat hesaplaması için NETWORKDAYS sonucunu bir gündeki çalışma saati sayısıyla (örneğin 8 ile) çarpmanız gerekir. Tarihler içindeki iş başlangıç ve bitiş saatlerini dikkate alan kesin saat hesaplamaları için, zaman çıkarma işlemi içeren daha karmaşık bir formül gerekecektir.

Hesaplamada çalışan izni nasıl dikkate alınır? NETWORKDAYS işlevleri, "tatiller" listesine girilmedikleri sürece izin aralıklarını otomatik olarak çıkaramaz. En basit yöntem, belirli bir hesaplama için tatil listesi olarak kullanılan aynı hücre aralığına çalışanın izin tarihlerini eklemektir.

Bu formüller Excel'in eski sürümlerinde çalışır mı? NETWORKDAYS işlevi tüm modern sürümlerde mevcuttur. NETWORKDAYS.INTL Excel 2010'da tanıtıldı. 2010 öncesi sürümlerde özel programlar için işlev kombinasyonları veya VBA makroları kullanmanız gerekecektir.