Yazılarımız

Veri Akademi

EXCEL’DE NAKİT AKIŞI VE TAHSİLAT TAKİBİ MODELLEMEK

Bir projenin “kârlı” görünmesi, kasada para olduğu anlamına gelmez. Özellikle B2B çalışan ekiplerde, faturalar kesilirken nakit girişinin gecikmesi; personel, bulut maliyeti ve tedarik ödemelerini sıkıştırır. Bu yüzden Excel’de nakit akışı ve tahsilat takibi modellemek, sadece finansın değil; ürün, satış ve operasyonun da karar hızını artırır.

Bu yazıda, tek bir dosya içinde tahsilat takibi, nakit projeksiyonu ve vade analizi kurmak için uçtan uca bir şablon yaklaşımı göreceksiniz. Amaç; “bu ay ne olur?” sorusunu, müşteriye ve vadeye göre açık, izlenebilir ve güncellenebilir bir yapıyla cevaplamasıdır.

İlerledikçe; veri tasarımı, formüller, kontrol katmanları, raporlama ve otomasyon adımlarını kurarak; ekibin düzenli kullanabileceği, versiyonlanabilir bir model oluşturmayı öğreneceksiniz. Daha kapsamlı uygulamalar için Excel eğitimi içeriğine de göz atabilirsiniz.

Vade tarihleri ve beklenen ödemelerle oluşturulmuş aylık nakit giriş çıkış tablosunun ekran düzeni

Excel’de nakit akışı modeli kurmak için veri tasarlaması

Modelin sağlam olması, tablolarda doğru kolonların tanımlanmasıyla başlar. “Tek sayfa her şey” yaklaşımı ilk gün hızlı görünür ama ileride kırılgan hale gelmesi muhtemeldir. Bunun yerine veriyi üç temel tabloya bölmek, hem bakım maliyetini düşürür hem de raporlamayı kolaylaştırır.

Müşteri ve sözleşme kartını standardize etmesi

Bir “Müşteriler” tablosu; müşteri kodu, unvan, segment, ödeme günü, sözleşme tipi, KDV durumu ve tahsilat sorumlusu gibi alanları içerir. Buradaki amaç, fatura satırlarında tekrar tekrar yazmak yerine anahtar alanla eşleştirmesi ve hatayı azaltmasıdır. Ödeme günü gibi alanların tek formatta tutulması, vade hesaplamasını stabilize eder.

Fatura ve tahsilat hareketlerini ayrıştırması

Faturalar ve tahsilatlar ayrı tablolarda tutulduğunda; bir faturanın kısmi ödenmesi, iade/mahsup gibi senaryolar daha rahat yönetilir. “Faturalar” tablosunda; FaturaNo, MüşteriKodu, FaturaTarihi, VadeTarihi, Tutar, ParaBirimi, Durum gibi alanlar bulunur. “Tahsilatlar” tablosu; TahsilatNo, FaturaNo (veya MüşteriKodu), TahsilatTarihi, Tutar, Kanal (EFT/pos), Not gibi alanları içerir.

Harcamaları planlı ve gerçekleşen olarak ayırması

Nakit çıkışı tarafı çoğu modelde ihmal edilir. Oysa bulut faturası, lisanslar, maaşlar, ajans ödemeleri gibi kalemler; nakit dengesini belirler. “Giderler” tablosunu planlı ve gerçekleşen olarak iki sütunla yönetmek, hem sapma takibini hem de ileriye dönük projeksiyonu kolaylaştırır.

Tahsilat takibi tablosunu kurmak ve vadeyi hesaplaması

Bu bölümde hedef; her fatura için “ne kadar açık kaldı, ne zaman bekleniyor, gecikme var mı” sorularına tek satırda cevap vermesidir. Buradaki kritik nokta; tarih alanlarının tutarlı tutulması ve anahtarların doğru eşleşmesidir.

Vade tarihini ödeme kuralıyla türetmesi

Her müşteri için “net 30”, “ayın 15’i”, “fatura tarihinden sonraki ilk cuma” gibi farklı kurallar olabilir. Basit senaryoda vade, fatura tarihine gün ekleyerek oluşturulabilir. Daha karmaşık kurallarda ise yardımcı bir “KuralTipi” alanı ve CASE benzeri yaklaşım tercih edilmesi gerekir.

Açık bakiye ve gecikme gününü hesaplaması

Fatura tutarından, o faturaya bağlı tahsilat toplamını düşerek açık bakiye bulunur. Ardından bugün tarihine göre gecikme gününü türeterek; tahsilat önceliği çıkarılabilir. Bu iki ölçüm, ekipteki aksiyonları netleştirmesi açısından en değerli alandır.

// Örnek Excel formülleri (Türkçe fonksiyon adları sürüme göre değişebilir)
// Varsayım: Faturalar tablosu adı: tblFaturalar, Tahsilatlar tablosu adı: tblTahsilatlar

// 1) Fatura bazlı tahsilat toplamı
=TOPLA.ÇOKETOPLA(tblTahsilatlar[Tutar]; tblTahsilatlar[FaturaNo]; [@FaturaNo])

// 2) Açık bakiye
=[@Tutar] - TOPLA.ÇOKETOPLA(tblTahsilatlar[Tutar]; tblTahsilatlar[FaturaNo]; [@FaturaNo])

// 3) Gecikme günü (vade geçtiyse pozitif, geçmediyse 0)
=MAKS(0; BUGÜN() - [@VadeTarihi])

// 4) Beklenen tahsil ayı (raporlama için)
=TARİH(YIL([@VadeTarihi]); AY([@VadeTarihi]); 1)

// 5) İş günü bazlı kalan gün (hafta sonunu hariç tutması)
=İŞGÜNÜ([@FaturaTarihi]; [@VadeGün]) - BUGÜN()

Nakit projeksiyonu oluşturmak için dönemlemeyi kurgulaması

Projeksiyon, her gün değişen tahsilat davranışını tahmin etmek zorunda değildir; ama karar verilebilir bir “senaryo” üretmelidir. Pratik yaklaşım; ay bazında tahsilat ve giderleri bir dönemselleştirme tablosunda toplamaktır.

Aylık nakit giriş çıkış matrisini üretmesi

“Dönemler” adlı bir satır listesinde her ayın ilk günü (2026-02-01 gibi) tutulur. Bu alan; pivot, grafik ve SUMIFS toplama işlemlerinde anahtar olur. Nakit giriş tarafı için beklenen tahsil ayı, çıkış tarafı için gider ayı kullanılması; tek bir “ay” kolonuyla raporlama sağlamasıdır.

Senaryo katsayılarıyla tahsilat olasılığını modellemesi

B2B tahsilatta gerçekçi yaklaşım; “tamamı gelir” varsayımı yerine olasılık katsayılarıyla çalışmasıdır. Örneğin; segment bazında %95, %80, %60 gibi katsayılar tanımlanır. Böylece en iyi ve temkinli senaryolar aynı dosyada üretilebilir. Bu, CFO/COO tarafında haftalık planlamayı kolaylaştırır.

  • Temkinli senaryo: Gecikme günü 15+ olanlarda katsayıyı düşürmesi
  • Standart senaryo: Müşteri segmentine göre sabit katsayı kullanması
  • Agresif senaryo: İletişime geçen müşterilerde tahmin tarihini öne çekmesi

Vade analizi ve müşteri risk görünümünü raporlaması

Tahsilat takibi “satır” düzeyinde, vade analizi ise “özet” düzeyinde karar aldırır. Yöneticiler genellikle; 0–7, 8–30, 31–60, 61+ gün gibi bucket’larla görmeyi ister. Bu yapı, alacak yaşlandırması (aging) mantığıyla ilerler ve riskli müşterileri hızlıca öne çıkarır.

Aging bucket alanını hesaplaması ve sınıflandırması

Gecikme gününe göre bucket üretip pivotla müşteri bazında toplam almak; “kim ne kadar gecikmiş” sorusunu netleştirir. Ayrıca müşteri risk skoru gibi bir metrikle; satışın yeni teklif açarken daha temkinli davranması sağlanabilir.

Pivottan dashboard üretmesi ve filtrelemeyi kolaylaştırması

Bir pivot tablo üzerinde; Müşteri, Segment, Bucket ve Açık Bakiye toplamları, tek sayfalık bir dashboard’a taşınır. Dilimleyici (slicer) ile tahsilat sorumlusu ve segment filtresi eklemek; aksiyon toplantılarında hızlı kesit almayı mümkün kılar. Bu rapor, “sadece finansın dosyası” olmaktan çıkıp ekipçe kullanılan bir kontrol paneli haline gelmesi beklenir.

Müşteri segmentine göre aging bucket dağılımını gösteren pivot tablo ve üstte filtre alanları

Excel modelini sürdürülebilir kılmak için kontrol katmanı eklemesi

Modelin en zayıf halkası, veri girişidir. Yanlış tarih formatı, boş müşteri kodu veya tekrarlı fatura numarası; raporu sessizce bozar. Bu yüzden bir “Kontroller” sayfası eklemek, düzenli kullanımda büyük fark yaratır.

Veri doğrulama ve zorunlu alan kontrolleri koyması

MüşteriKodu alanını listeyle sınırlandırmak, para birimini sabit değerlerle seçtirmek ve tarih aralığı kontrolü yapmak; hatayı daha girerken yakalar. Ayrıca tekrarlı anahtarları kontrol eden basit sayımlar, dosyanın güvenilirliğini artırır. Bu katman, özellikle çok kullanıcılı süreçlerde kritik hale gelmesi muhtemeldir.

Uyarı listesiyle aksiyon kuyruğunu netleştirmesi

“Bugün aranacaklar”, “7 gün içinde vadesi gelenler”, “30+ gecikmişler” gibi listeler; tahsilat ekibinin günü planlamasını sağlar. Bu listeleri formülle ya da Power Query ile üretip, ilgili sorumluya göre filtrelenebilir hale getirmek; operasyonel faydayı hızlandırır.

Otomasyon ve güncelleme akışını basitleştirmesi

Modelin düzenli güncellenmesi; bir kişiye bağımlı olmadan ilerlemesi için otomasyon gerekir. Excel içinde en basit otomasyon; veri yenileme, pivot güncelleme ve çıktı sayfalarını PDF’e alma gibi tekrar eden adımları tek tuşla çalıştırmasıdır.

Power Query ile içe aktarmayı standardize etmesi

E-posta eklerinden veya ERP/CRM dışa aktarımlarından gelen veriler; her seferinde farklı kolon sırasıyla gelebilir. Power Query, bu veriyi bir “staging” katmanında normalize eder ve tabloya düzenli şekilde basar. Böylece kullanıcı, sadece “Yenile” butonuna basarak raporu güncellemesi mümkündür.

Makro ile rapor yenileme akışını tek adım yapması

Aşağıdaki örnek, tabloların ve pivotların güncellenmesi için basit bir VBA akışı gösterir. Kurumsal ortamlarda makro politikaları değişebilir; ancak mantık olarak “yenile, hesaplat, raporla” zincirini standartlaştırır.

' VBA örneği: veri yenileme + pivot güncelleme akışı
Sub NakitModeliYenile()
    On Error GoTo Hata
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual

    ' Power Query sorgularını yeniler
    ThisWorkbook.RefreshAll

    ' Hesaplamayı tetikler
    Application.CalculateFull

    ' Tüm pivotları günceller
    Dim ws As Worksheet
    Dim pt As PivotTable
    For Each ws In ThisWorkbook.Worksheets
        For Each pt In ws.PivotTables
            pt.RefreshTable
        Next pt
    Next ws

Cikis:
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
    Exit Sub

Hata:
    MsgBox "Yenileme sırasında hata oluştu: " & Err.Description, vbExclamation
    Resume Cikis
End Sub

Sık yapılan hatalar ve pratik iyileştirmeleri uygulaması

Excel’de nakit akışı ve tahsilat takibi modellemek, çoğu ekipte ilk denemede “çalışır” ama birkaç hafta sonra dağılır. Bunun nedeni genellikle tasarım değil; disiplin ve net kuralların olmamasıdır. Aşağıdaki maddeler, modelin uzun vadede sağlam kalmasına yardım eder.

Tekil anahtar ve tarih formatını baştan kilitlemesi

FaturaNo’nun tekil olması, müşteri kodunun değişmemesi ve tarihlerin yerel ayarlardan bağımsız şekilde girilmesi; rapor doğruluğunu belirler. Çoklu para biriminde; kur tarihini ve çevrim yöntemini ayrı bir tabloda tutmak, sonradan düzeltme ihtiyacını azaltır.

Raporu “günlük operasyon” ritmine bağlaması

Haftalık tahsilat toplantısında aynı dashboard’un kullanılması, raporu yaşayan bir araca dönüştürür. Ayrıca satış ekibine “riskli müşteriler” görünümünü açmak, yeni teklif ve limit kararlarını daha tutarlı hale getirmesi beklenir. Böylece Excel dosyası; sadece kayıt değil, karar destek aracı olur.


Özetle: Doğru veri tasarımı, vade ve açık bakiye hesapları, dönemsel projeksiyon ve aging raporları bir araya geldiğinde; Excel, küçük ve orta ölçekli ekipler için güçlü bir nakit yönetimi sistemi haline gelebilir. Önemli olan; modelin güncellenebilir, denetlenebilir ve ekipçe kullanılabilir şekilde kurgulanmasıdır.

 CADSAY