Excel ile çalışırken, İngilizce dilinde hazırladığım Excel dosyalarının, Excel dil ayarı Almanca olan bilgisayarlarda açıldığında format uyumsuzlukları yaşaması en sık karşılaştığım sorunlardan biriydi.
Bu yazıda, Excel dil farklılıklarıyla nasıl başa çıktığımı ve hangi yöntemleri kullandığımı açıklayacağım.
Excel Dil Sorunu: Tarih Formatı Uyumsuzluğu
İngilizce dilinde hazırladığım Excel dosyalarında, “TEXT” (Türkçesi “METNEÇEVİR“) formülüyle formatladığım tarihler, Almanca Excel sürümlerinde açıldığında hatalı bir şekilde gösteriliyordu. Örneğin, İngilizce diline ayarlı bir Excel dosyasında aşağıdaki formül:
=TEXT(A1, "yyyy-mm-dd")
“2023-07-18” sonucunu veriyor. Almanca dil ayarına sahip bir Excel‘de aynı sonucu almak için şu formülü kullanmam gerekiyor:
=TEXT(A1, "jjjj-MM-tt")
Dolayısıyla, bu dil farkı, raporlarımı paylaştığım kişiler Almanca Excel kullanıyorsa işleri oldukça zorlaştırıyordu.
İngilizce’de sorunsuz çalışan bir rapor, Almanca dilinde aynı başarıyı göstermediğinden, TEXT formülü ile formatlamadan kaçınıyordum.
Çözüm Arayışı: VLOOKUP İle Excel Dil Problemini Çözme
Bu sorunu çözmek için uzun süre araştırma yaptım ve sonunda etkili bir yöntem buldum.
İlk olarak, Excel‘in “VLOOKUP” fonksiyonunu kullanarak sistem dilinin İngilizce mi yoksa Almanca mı olduğunu tespit ediyorum. İngilizce ve Almanca dillerinde ay kısaltmalarının “MMMM” formatında aynı olduğunu biliyoruz. Bu bilgiyle, 1. ayın sistem dil ayarına göre “January” mi, “Januar” mı olduğunu sorgulayan ve ona göre doğru formatı veren bir formül hazırladım.
Kullandığım formül şu şekilde:
=VLOOKUP(TEXT(1,"MMMM"), {"January","yyyy-MM-dd"; "Januar","jjjj-MM-tt"}, 2, FALSE)
Bu formül, her iki dilde de ay adını kullanarak, dile uygun tarih formatını belirliyor. Ardından da istenen veriye uyguluyor. Tam haliyle formül şu şekildedir:
=TEXT(A1,(VLOOKUP(TEXT(1,"MMMM"), {"January","yyyy-MM-dd";"Januar","jjjj-MM-tt"}, 2, FALSE)))
Türkçe İçin Ekstra Yöntemler
Her ne kadar deneme fırsatım olmasa da çalışacağını düşündüğüm aşağıdaki yöntemle formüle Türkçe’yi de dahil etmek mümkün.
Türkçe dilinde ay kısaltmaları “AAAA” formatında olduğu için, formülü uyarlarken biraz farklı bir yaklaşım izlemem gerekti. İlk olarak, “Ocak” sonucunu sorgulayıp, formülü bu sonuca göre düzenledim:
=IF(TEXT(1,"AAAA")="Ocak","yyyy-AA-gg",VLOOKUP(TEXT(1,"MMMM"), {"January","yyyy-MM-dd";"Januar","jjjj-MM-tt"}, 2, FALSE))
Formülün tamamı ise şu şekildedir:
=TEXT(A1,(IF(TEXT(1,"AAAA")="Ocak","yyyy-AA-gg",VLOOKUP(TEXT(1,"MMMM"), {"January","yyyy-MM-dd";"Januar","jjjj-MM-tt"}, 2, FALSE))))
Burada önce 1 numaralı ayın sonucunun sistem dil ayarına göre “Ocak” olup olmadığı kontrol ediliyor. Ardından sonuç doğruysa Türkçe format olan “yyyy-AA-gg” kullanılıyor, değilse İngilizce ve Almanca formatlar kontrol ediliyor.
Farklı Uygulamalar
Ayrıca, bu yöntemi uyarlayarak yalnızca tarih formatlamada değil, dil farklılıklarından kaynaklanan sayısal formatlamalarda da kullanabiliriz. Çünkü sayılar da farklı dillerde farklı şekilde nokta veya virgül ile ayrılabiliyor. Bu sayede, sayısal formatlama işlemlerinde de hatasız sonuçlar elde edebilirsiniz.
Bir yanıt yazın