Excel 1900 Artık Yıl Hatası Nedir, Neden Düzeltilmedi?

Elinizde 1900’lü yılların başına uzanan bir arşiv tablosu olduğunu düşünün: tarihler doğru girilmiş, ama haftanın günleri bir türlü tutmuyor. Suçlu sizin veriniz değil. Excel’in iç takviminde, gerçekte hiç yaşanmamış bir gün duruyor: 29 Şubat 1900. Peki Excel 1900 artık yıl hatası nedir ve dünyanın en yaygın hesap tablosu programı kırk yılı aşkın süredir neden olmayan bir günü sayacında taşıyor?
Bu tuhaflık bir gözden kaçma değil; bilinçli bir mühendislik kararının kalıntısı. Microsoft hatayı resmî destek belgelerinde açıkça kabul ediyor, ama düzeltmeyi reddediyor. Biz de bu yazımızda hatanın kökenini, Lotus 1-2-3 mirasını, Microsoft’un gerekçesini ve bu kaymanın sizin tablolarınızda gerçekten sorun çıkarıp çıkarmadığını sizler için derledik.
İçerik Başlıkları
- 1 Excel 1900 Artık Yıl Hatası Nedir?
- 2 1900 Neden Artık Yıl Değildi?
- 3 Excel Neden 1900 Yılını Artık Yıl Sayıyor? Lotus 1-2-3 ve 640 KB Sınırı
- 4 Excel Tarih Hatası Neden Düzeltilmiyor?
- 5 Excel’in Tarih Hatası Günlük Kullanımda Sorun Çıkarır mı?
- 6 Excel’de 1900 Tarih Hatasını Nasıl Fark Edip Önlem Alabilirsiniz?
- 7 Excel’in 1900 Hatası Bize Ne Anlatıyor?
Excel 1900 Artık Yıl Hatası Nedir?
Excel tarihleri aslında “tarih” olarak saklamaz. Programın altında seri numarası tabanlı bir tarih sistemi (serial number) çalışır: varsayılan 1900 tarih sisteminde 1 Ocak 1900’ün seri numarası 1’dir, 2 Ocak 1900’ün numarası 2’dir ve sayaç böyle ilerler. Hücrede gördüğünüz “15.03.2026” ifadesi, arka planda yalnızca bir tam sayıdır.
Sorun tam da bu sayaçta. Excel 1900 yılını artık yıl (leap year) kabul ettiği için 28 Şubat ile 1 Mart arasına hiç yaşanmamış bir 29 Şubat sıkıştırır. Sonuçta 1 Mart 1900’den sonraki bütün tarihler, gerçekte geçen gün sayısından bir fazla numara alır.
| Seri numarası | Excel’in gösterdiği tarih | Gerçekte olması gereken |
|---|---|---|
| 1 | 1 Ocak 1900 | 1 Ocak 1900 (doğru) |
| 59 | 28 Şubat 1900 | 28 Şubat 1900 (doğru) |
| 60 | 29 Şubat 1900 | Böyle bir gün hiç olmadı |
| 61 | 1 Mart 1900 | 1 Mart 1900, seri numarası 60 olmalıydı |

Yani Excel’in iç takvimi, 1 Mart 1900’den önceki tarihler için tam olarak bir gün kaymış durumda. Excel’de 29 Şubat 1900 neden görünüyor sorusunun yanıtı da burada gizli: sorun ekrandaki biçimlendirmede değil, sayacın kendisinde. İşin ilginç yanı ise şu: Excel diğer bütün artık yılları doğru hesaplar. Microsoft’un da belirttiği gibi, 2100 gibi artık yıl olmayan yüzyıl yıllarını bile doğru işler; yalnızca 1900 yılı hatalı ele alınır.
1900 Neden Artık Yıl Değildi?
Kullandığımız Gregoryen takviminde artık yıl kuralı tek satırdan ibaret değildir, üç basamaklıdır:
- Yıl 4’e tam bölünüyorsa artık yıldır.
- Ancak 100’e de tam bölünüyorsa artık yıl değildir.
- 400’e tam bölünüyorsa yine artık yıldır.
1900 yılı 4’e ve 100’e bölünür, ama 400’e bölünmez. Dolayısıyla artık yıl değildi ve 29 Şubat 1900 diye bir gün yaşanmadı. Buna karşılık 2000 yılı 400’e bölündüğü için artık yıldı; kuralın üçüncü basamağını atlayan yazılımların 2000’de değil, asıl 1900’de yanılmasının nedeni de budur.
| Yıl | 4’e bölünür | 100’e bölünür | 400’e bölünür | Artık yıl mı? |
|---|---|---|---|---|
| 1896 | Evet | Hayır | Hayır | Evet |
| 1900 | Evet | Evet | Hayır | Hayır |
| 2000 | Evet | Evet | Evet | Evet |
| 2024 | Evet | Hayır | Hayır | Evet |
| 2100 | Evet | Evet | Hayır | Hayır |
Excel Neden 1900 Yılını Artık Yıl Sayıyor? Lotus 1-2-3 ve 640 KB Sınırı
Hikâye Excel’den önce başlıyor. Elektronik hesap tablosu fikrini 1979’da Apple II üzerinde çalışan VisiCalc popülerleştirdi. 26 Ocak 1983’te satışa çıkan Lotus 1-2-3 ise IBM PC’nin “öldürücü uygulaması” oldu ve kurumsal finans departmanlarının ortak dili hâline geldi.
Lotus 1-2-3’ün geliştiricileri artık yıl testini kısa kesti. Üç basamaklı kuralı uygulamak yerine yalnızca “bu yıl 4’e bölünüyor mu?” sorusunu sordular. Bu kestirme yol 1900’ü yanlışlıkla artık yıl saydı, ama o dönemde kimsenin umurunda değildi.

Nedenini, 1991’de Excel ekibine program yöneticisi (program manager) olarak katılan Joel Spolsky yıllar sonra anlattı. Spolsky, tarih fonksiyonlarındaki tuhaflığı fark edip meslektaşı Ed Fries’a sorduğunda şu yanıtı alır: “Lotus’un 640 KB’a sığması gerekiyordu. Bu çok fazla bellek değil. 1900’ü göz ardı ederseniz, bir yılın artık yıl olup olmadığını sadece en sağdaki iki bitin sıfır olup olmadığına bakarak anlayabilirsiniz.” Bu, ikili sistemde “4’e bölünüyor mu?” sorusunun en ucuz karşılığıdır. Fries’a göre Lotus ekibi, çok geçmişte kalmış iki aylık bir sapmanın kimseyi ilgilendirmeyeceğini düşünmüştü. Spolsky’nin bu anısını aktardığı “My First BillG Review” yazısı, konunun birinci elden en bilinen kaydıdır; hatta 30 Haziran 1992’de Bill Gates’e yaptığı ilk şartname sunumunda tam da bu ayrıntı işine yaramıştır.
Microsoft da hatayı düzeltmek yerine aynı varsayımı kendi programlarında sürdürdü. Şirketin resmî belgesi bunu açıkça yazıyor: Multiplan ve Excel piyasaya çıktığında ikisi de 1900’ü artık yıl kabul ediyordu. Amaç açıktı: aynı seri tarih sistemini kullanarak Lotus 1-2-3 dosyalarıyla kusursuz uyumlu olmak. Kullanıcıların çalışma sayfalarını programlar arasında sorunsuz taşıyabilmesi, o dönemde pazara girmenin ön koşuluydu.
Excel Tarih Hatası Neden Düzeltilmiyor?
Microsoft’un yanıtı, konuya ayrılmış resmî destek belgesinde yer alıyor ve gayet net: bu davranışı düzeltmek teknik olarak mümkün olsa da, düzeltmenin dezavantajları avantajlarından ağır basıyor.
Belgeye göre hata bugün düzeltilirse şunlar yaşanır:
- Mevcut Excel çalışma sayfalarındaki ve diğer belgelerdeki neredeyse bütün tarihler bir gün geri kayar; bu kaymayı gidermek, özellikle tarih içeren formüllerde ciddi zaman ve emek ister.
- WEEKDAY (HAFTANINGÜNÜ) gibi fonksiyonlar farklı değerler döndürür ve çalışma sayfalarındaki formüller yanlış sonuç üretmeye başlar.
- Excel ile tarihleri seri numarası olarak paylaşan diğer programlar arasındaki uyumluluk bozulur.
Hata düzeltilmezse ortaya çıkan tek sorun ise WEEKDAY fonksiyonunun 1 Mart 1900’den önceki tarihlerde yanlış değer döndürmesidir. Excel tarih hatası neden düzeltilmiyor sorusunun özü de burada: kullanıcıların ezici çoğunluğu 1900 öncesi tarihlerle çalışmadığından Microsoft bunu kabul edilebilir bir bedel sayıyor. Şirketin bu destek belgesi 2026 baharında yeniden gözden geçirildi ve aynı gerekçeyi koruyor.
Aslında bu, yazılım dünyasında sık rastlanan bir örüntü: geriye dönük uyumluluk (backward compatibility) uğruna nesiller boyu taşınan tuhaflıklar. Aynı mantığı Windows’ta CON adında klasör oluşturulamamasında ya da tarayıcıların kendini hâlâ Mozilla olarak tanıtmasında da görürsünüz.
Hata Nasıl Resmî Bir Standarda Dönüştü?
Bu öykünün en çarpıcı bölümü, hatanın bir noktada uluslararası belgeye dönüşmesidir. Office Open XML biçiminin ilk sürümü olan ECMA-376, uyumlu yazılımların Lotus kaynaklı bu davranışı birebir taklit etmesini şart koştu: 59 numara 28 Şubat’a, 61 numara 1 Mart’a karşılık gelir; aradaki 60 ise var olmayan 29 Şubat’tır. ISO/IEC 29500 olarak kabul edilen ikinci sürüm, alternatif olarak ISO 8601 tarih gösterimine de izin verdi. Yine de eski davranış hâlâ geçerli ve xlsx dosyalarının temelinde duruyor.
Excel’in Tarih Hatası Günlük Kullanımda Sorun Çıkarır mı?
Kısa yanıt: çoğu zaman hayır. Excel seri numarası tabanlı tarih sistemi üzerinden çalıştığı için, iki tarih arasındaki farkı hesapladığınızda her iki tarih de aynı bir günlük kaymayı taşır ve hata kendiliğinden sadeleşir. Bugünle gelecek ay arasındaki gün sayısını hesaplarken 1900’ün hayalet gününün hiçbir etkisi olmaz.
Sorun yalnızca üç durumda yüzeye çıkar:
- 1900 başına ve öncesine uzanan tarihler. 1 Ocak 1900 gerçekte pazartesiydi; Excel’in WEEKDAY fonksiyonu ise pazar der. Tarihsel arşiv, nüfus kaydı veya eski borsa verisi işliyorsanız haftanın günü hesaplarınız kayar.
- Ham seri numaralarının dışa aktarılması. Excel’den çıkan seri numaralarını bir SQL veritabanına ya da Python koduna taşıdığınızda dönüşümü elle düzeltmeniz gerekir; aksi hâlde bir günlük kayma veriye sızar.
- 1900 ve 1904 tarih sistemleri arasındaki dosya alışverişi. Bu, en görünür ve en can sıkıcı senaryodur.
Üçüncü madde özellikle eski Mac kullanıcılarının başına gelen klasik sorundur; Excel 1900 ve 1904 tarih sistemi farkı burada çıplak gözle görülür hâle gelir. Excel’in eski Mac sürümleri sayacı 1 Ocak 1904’ten başlatıyordu; Mac için Excel 2011 ve sonrasında varsayılan yine 1900 sistemi oldu. Microsoft’un Excel tarih sistemleri belgesine göre 1900 sistemindeki bir tarihin seri numarası, aynı tarihin 1904 sistemindeki numarasından her zaman 1.462 gün fazladır; yani tam olarak dört yıl bir gün. Bunun somut karşılığı şudur: 1900 sistemiyle hazırlanmış bir kitaptaki 5 Temmuz 2007 tarihini 1904 sistemli bir kitaba yapıştırırsanız karşınıza 6 Temmuz 2011 çıkar.

Excel’de 1900 Tarih Hatasını Nasıl Fark Edip Önlem Alabilirsiniz?
Hatayı ortadan kaldıramazsınız, ama etkisini birkaç basit alışkanlıkla sıfıra indirebilirsiniz:
- Hatayı bizzat test edin. Excel’de 29 Şubat 1900 neden görünüyor sorusunu kendi tablonuzda sınayabilirsiniz: boş bir hücreye 60 yazın ve hücreye tarih biçimi verin. Ekranda 29 Şubat 1900 görüyorsanız hata yerinde duruyor demektir.
=TARİH(1900;2;29)formülü de 1 Mart’a yuvarlanmak yerine 60 değerini döndürür. - 1900 öncesi tarihleri Excel’de hesaplatmayın. Tarihsel veriyle çalışıyorsanız tarihleri metin olarak veya ISO 8601 biçiminde (YYYY-AA-GG) saklayın, hesaplamayı Excel dışında yapın.
- Haftanın gününü elle doğrulayın. 1 Mart 1900’den önceki tarihlerde WEEKDAY sonucunu bir gün ileri kaydırmanız gerekir; sonucu olduğu gibi rapora taşımayın.
- Dışa aktarırken doğru başlangıç noktasını seçin. Excel seri numarası tabanlı tarih sistemi ile aynı mantığı paylaşan Google E-Tablolar ve LibreOffice Calc, sayacı bu yüzden 30 Aralık 1899’dan başlatır; böylece 1 Mart 1900’den itibaren Excel ile aynı numaraları üretirler, yalnızca daha eski tarihlerde bir gün ayrışırlar. Unix zaman damgası dönüşümlerinde kullanılan 25569 sabiti de (1 Ocak 1970’in Excel seri numarası) aynı sayaca dayanır.
- Devraldığınız dosyanın tarih sistemini kontrol edin. Tarihler topluca dört yıl bir gün kaymışsa, karşınızdaki büyük ihtimalle Excel 1900 ve 1904 tarih sistemi farkıdır; Seçenekler menüsündeki Gelişmiş sekmesi altında yer alan 1904 tarih sistemi ayarına bakın.
Excel’i düzenli kullanıyorsanız bu tür ayrıntılar tablolarınızın güvenilirliğini doğrudan etkiler. Veriyi baştan doğru kurgulamak isteyenler için Excel PivotTable oluşturma rehberimiz iyi bir başlangıç noktası olabilir.
Excel’in 1900 Hatası Bize Ne Anlatıyor?
Excel 1900 artık yıl hatası bir beceriksizlik öyküsü değil. Sınırlı belleğe sahip 1980’ler donanımında verilmiş pratik bir kararın, milyarlarca çalışma kitabı tarafından kalıcılaştırılmasının öyküsü. Excel neden 1900 yılını artık yıl sayıyor sorusunun en kısa yanıtı da budur: çünkü Lotus 1-2-3 öyle sayıyordu ve uyumluluk her şeyin önüne geçti. Excel’in pazar payı ise bu kestirme yolu fiilî bir standarda dönüştürdü.
Bugün bu hatayı düzeltmek, dünya genelindeki tarihe dayalı formüllerin büyük bölümünü bozmak anlamına gelirdi. Bu yüzden hiç yaşanmamış olan 29 Şubat 1900, hesap tablolarında yaşamaya devam ediyor. Size düşen tek şey, 1900 öncesine uzanan tarihlerle çalışırken ya da ham seri numaralarını başka sistemlere taşırken bir adım daha dikkatli olmak.
Eğer bu tarz teknoloji tarihi içerikleri ilginizi çekiyorsa, sitemizde yer alan “Steve Jobs Xerox PARC Ziyareti: Çalıntı Fikir Efsanesi” adlı yazımıza da göz atabilirsiniz.
