• DİKKAT !

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak Dosya Yükleme tamamen ücretsizdir.

Çözüldü Power Query M Dilinde Farklı Formatlardaki Karmaşık Tarih Metinlerini Standart Datetime Formatına Dönüştürme

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

avcibahar

Yeni Üye
Katılım
31 Ağu 2026
Mesajlar
5
Aldığı beğeni
2
Konu Sahibi
Windows 10 Google Chrome 152
Selamlar,

Farklı şubelerden ve ERP sistemlerinden gelen Excel tablolarını Power Query (Veri Al ve Dönüştür) kullanarak tek bir konsolide raporda birleştiriyorum. Fakat en büyük sorunum "Tarih" sütununda.Gelen verilerde tarih formatları tamamen karmaşık durumda. Aynı sütunun içinde 31.08.2026, 2026/08/15, 12-07-2026 ve hatta bazılarında 2026-06-20 00:00:00 gibi metinsel ifadeler var. Power Query arayüzünden "Tarih Olarak Değiştir" dediğimde satırların yarısı Error (Hata) veriyor.Ekteki örnek dosyada yer alan bu karmaşık metin sütununu, Power Query M Dili (Gelişmiş Düzenleyici) kullanarak tek bir seferde, bölgesel ayarlardan etkilenmeden hatasız olarak standart tarih formatına nasıl dönüştürebilirim? Yazılması gereken özel DateTime.FromText veya Text.Split fonksiyon kombinasyonu nasıl olmalıdır?
 
Çözüm
1 ile çarptığınız sonuçları tarih sütuna
Değerler şeklinde yapıştırıp
Mevcut çalışma şeklinizle devam edebilirsiniz diye düşünüyorum
Windows 10 Google Chrome 152
Merhaba,
Power Query arayüzündeki standart dönüşümler tek tip format beklediği için bu tarz karmaşık sütunlarda Error hatası üretiyor. Gelişmiş Düzenleyici (M Dili) üzerinden, tüm tarih olasılıklarını içeren esnek bir fonksiyon yazarak bu sorunu aşabiliriz.
Benzer bir senaryoda şu M dili adımı ile çözüme ulaşmıştım. Sütun Ekle > Özel Sütun diyerek aşağıdaki formülü eklemeyi deneyebilirsiniz.


HTML:
JavaScript:
İçeriği görebilmek için Giriş yap ya da Üye ol.

Buradaki mantık şu: Formats = {...} parametresi sayesinde Power Query'ye hücrenin içindeki metni bu 4 yaygın formatla karşılaştırmasını söylüyoruz. Eşleşen formatı bulup akıllıca algılıyor ve bölgesel ayarlardan etkilenmeden Datetime tipine çeviriyor.
Tabi veri seti çok daha büyük olduğunda bu fonksiyonun sorgu katlanmasını (Query Folding) bozup bozmayacağını tam kestiremiyorum. Power Query uzmanı hocalarımızın ekli dosya üzerinden daha performanslı bir M dili veya ara adım önerisi olur mu?
 
Windows 10 Google Chrome 151
Farklı bir sütuna
tarihleri 1 ile çarptırsa olmaz mı?
sütunu da tarih olarak biçimlendirse
 
Konu Sahibi
Windows 10 Google Chrome 152
Patron hocam ve Akuma hocam, değerli dönüşleriniz için çok teşekkürler.
Patron hocam, önerdiğiniz 1 ile çarpma mantığı aslında harika bir yaklaşım. Ancak direkt sütunu çarptığımda Power Query Expression.Error veriyor.
Acaba Power Query arayüzündeki "Hataları Değiştir (Replace Errors)" adımlarını kullanarak ya da "Örnekten Sütun Ekle (Column from Examples)" sihirbazıyla sizin bahsettiğiniz bu pratik mantığı kod yazmadan arayüzden nasıl kurgulayabiliriz?
Gelişmiş düzenleyiciye (M diline) girmeden, sadece arayüz adımlarıyla bu karmaşık tarihleri dönüştürebileceğimiz o pratik şablon kurguyu ekli dosya üzerinde deneyip paylaşabilir misiniz? Sizin arayüz çözümleriniz bizim için çok öğretici oluyor, merakla bekliyorum.
 
Android 10 Google Chrome 151
1 ile çarptığınız sonuçları tarih sütuna
Değerler şeklinde yapıştırıp
Mevcut çalışma şeklinizle devam edebilirsiniz diye düşünüyorum
 
Çözüm
Konu Sahibi
Windows 10 Google Chrome 152
Patron hocam cevabınız için teşekkürler,
Dediğiniz gibi verileri sayfaya değer olarak yapıştırıp 1 ile çarpmak Excel sayfalarında her zaman hayat kurtaran pratik bir yöntemdir. Ancak şubelerden ve ERP'den her gün yeni veriler aktığı ve amacım bu süreci tamamen otomatikleştirmek (güncellenebilir kılmak) olduğu için araya manuel kurgular sokmamam gerekiyor.
Yabancı kaynakları araştırırken M diline hiç girmeden, sadece Power Query arayüz adımlarıyla bu karmaşayı çözen çok temiz bir yöntem keşfettim ve benim gibi bu sorunu yaşayanlar için buraya da adım adım not bırakmak istedim.

Power Query'nin farklı ülkelerin tarih biçimlerini akıllıca tanıma yeteneğini kullanarak bu hatayı tamamen sıfırlayabiliyoruz: [
Bu bağlantı ziyaretçiler için gizlenmiştir. Görmek için lütfen giriş yapın veya üye olun.
,
Bu bağlantı ziyaretçiler için gizlenmiştir. Görmek için lütfen giriş yapın veya üye olun.
]
  1. ERP / Global Formatları Dönüştürme (2026/08/15 ve 2026-06-20 için):
    • Karmaşık tarih metinlerinin olduğu sütuna sağ tıklıyoruz.
    • Türü Değiştir (Change Type) > Yerel Ayar Kullanarak... (Using Locale...) adımlarını izliyoruz.
    • Açılan ekranda Veri Türü'nü Tarih (Date), Bölgeyi (Locale) ise İngilizce (Amerika Birleşik Devletleri) veya İngilizce (Kanada) yapıp tamam diyoruz.
    • Bu adım, ERP sistemlerinden gelen tireli ve ters eğik çizgili tarih metinlerini anında hatasız tarihe çeviriyor. [
      Bu bağlantı ziyaretçiler için gizlenmiştir. Görmek için lütfen giriş yapın veya üye olun.
      ,
      Bu bağlantı ziyaretçiler için gizlenmiştir. Görmek için lütfen giriş yapın veya üye olun.
      ]
  2. Geriye Kalan Hataları Ayıklama (31.08.2026 Türkçe formatlar için):
    • İlk adımdan sonra Türkçe formatta yazılmış olan (noktalı) tarihler doğal olarak Error veriyor.
    • Sütun başlığına sağ tıklayıp Hataları Değiştir (Replace Errors) diyoruz ve kutuyu boş bırakıp tamam diyoruz. Hatalı yerler Null (Boş) oluyor.
  3. İki Sütunu Çakıştırma (Coalesce):
    • Aynı ham sütunu sorgunun en başında Sütunu Çoğalt (Duplicate Column) diyerek kopyalamıştım. İkinci kopyaya da aynı "Yerel Ayar" işlemini bu kez Türkçe (Türkiye) seçerek uyguladım (Böylece o da sadece noktalı tarihleri çözdü).
    • Son adımda iki sütunu birden seçip Sütunları Birleştir / Çakıştır (Merge Columns) dediğimde, ilk sütundaki Null boşluklar ikinci sütundaki Türkçe tarihlerle kusursuzca birleşti. [
      Bu bağlantı ziyaretçiler için gizlenmiştir. Görmek için lütfen giriş yapın veya üye olun.
      ]
Böylece tek bir satır kod yazmadan, tamamen arayüz pencereleriyle dinamik ve her "Yenile" dendiğinde hatasız çalışan bir kurgu oluşturmuş olduk. [
Bu bağlantı ziyaretçiler için gizlenmiştir. Görmek için lütfen giriş yapın veya üye olun.
]
Akuma hocamın ve sizin kıymetli beyin fırtınalarınız sayesinde harika bir metodolojiye ulaşmış olduk, destekleriniz için tekrar çok teşekkürler!
 
Durum
Konu Çözümlendiği İçin Kapatılmıştır.
Geri
Üst