PowerQuery Refresh All sonrası güncellenen veriye zaman damgasi atama

U4US_ist

Altın Üye
Katılım
22 Şubat 2024
Mesajlar
20
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
22-02-2025
Her hafta başı 100'e yakın csv dosyasini PowerQuery'de düzenleyen (csv içerisindeki gereksiz şeyleri atıyorum veya toplamalar yapıyorum) bir yapı oluşturdum. Düzenleme sonrasında tüm tabloları birleştirip tek bir tabloya sahip oluyorum. İlgili csv dosyalarini yerleri belirli klasörlere taşıdıktan sonra "Refresh All" yaparak eski verilerin üzerine güncelliyorum. Ama bazen güncellemede sorun yada cvs bir sorun olabiliyor. Bu yüzden verilerin değiştiğinden emin olmak için bir yan sütuna zaman damgası yapmak istyorum. Olası güncelleme sırasında bir hata olursa veri değişmezse zaman damgası da eski/farklı olaı kontrol edip düzeltebilirim diye düşünüyorum. Bunu nasıl yapabilirim bilgisi olan var mı ?

Aşağıdaki örnekteki gibi Count kolonu baz alıp E kolona zaman damgasi atamasi yapabilir miyim

251636
 

bosislermuduru

Altın Üye
Katılım
2 Temmuz 2018
Mesajlar
64
Excel Vers. ve Dili
2003 ,2007,2013,2019@PowerQuery
Altın Üyelik Bitiş Tarihi
14-05-2029
Power query now kodu ekle
DateTime.LocalNow()
251637
 
Son düzenleme:

U4US_ist

Altın Üye
Katılım
22 Şubat 2024
Mesajlar
20
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
22-02-2025
bilgi için teşekkür ederim ancak bu "count" kolonundaki rakamların değişip değişmedini sağlar mı ? Yani "count" kolonundaki veri bu haftaya mı ait yoksa geçen haftaya mı ondan emin olmam lazım ..
 

bosislermuduru

Altın Üye
Katılım
2 Temmuz 2018
Mesajlar
64
Excel Vers. ve Dili
2003 ,2007,2013,2019@PowerQuery
Altın Üyelik Bitiş Tarihi
14-05-2029
bir önceki kod tabloyu yenilediğinde anlık tarih bilgisin verir, bildiğin gibi ana veriler değişmezse verilerin sayısı da değişmez,

Bildiğim Kadarıylas PQ geriye dönük kayıt tutmaz, ama istersen dosyaların Tarih bilgilerinden faydaalanabilirsin örneğin dosya tarihi bu hafta olmayan verileri hesaplatmayabilirsin

ancak daha teknik bilgi için örnek göndermen daaha yararlı olacaktır.
 

U4US_ist

Altın Üye
Katılım
22 Şubat 2024
Mesajlar
20
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
22-02-2025
şirket politakası gereği veriyi dışarı çıkartmam mümkün değil ancak şöyle anlatayım. Elimdeki csv dosyaları homojen değil. Bu cvs dosyalarını bir klasör altında topladım. Ve Powerquery'e bu csv dosyalarını tek tek ekledim. akabinde dosyalar üzerinde düzeltmeler (toplama, çıkartma, boş satırları silme, başlıkları değişrme vs.. ) yaptıktan sonra tüm küçük tabloları bir büyük tabloda merge ettim. nihai olarak ekimde yaklaşık 500 satır x 5 kolonlu bir tablo elde ettim. bu tablodaki en kritik kolon da "count" kolonu. Bir sonraki hafta gelen csv'leri aynı klasöre atıp refresh all dedikten sonra veriler gerçekten değişmiş mi yoksa hala geçen haftanın verileri mi var. Yada gelen csv bu haftaki sanılıp geçen haftaki yollandıkya gibi gibi aklımda bi sürü soru oluşuyor. Bunların önüne geçmek için.. Refresh all bastıktan sonra "count" kolonundaki rakamların bir timestamp'ini alıp bi sonraki refresh all'da karşılaştırma yapabilirim diye düşündüm. Ama nasıl :)
 

bosislermuduru

Altın Üye
Katılım
2 Temmuz 2018
Mesajlar
64
Excel Vers. ve Dili
2003 ,2007,2013,2019@PowerQuery
Altın Üyelik Bitiş Tarihi
14-05-2029
csv dosyalarınız belirli bir yapıda saklıyorsanız dosya tarihlerini baz alabilirsiniz

örneğin ben banka kayıtlarıyla çalışan bir PQ de , dosyanın tarihi(txt)ile sistem tarihiyle aynı değilse tabloya eklemediyorum
Sizde ek bir sorguyla hata denetimi yapabilirsiniz,

Konuyla İlgili Gün İçinde Örnekler Göndereceğim
 

U4US_ist

Altın Üye
Katılım
22 Şubat 2024
Mesajlar
20
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
22-02-2025
Çok teşekkür ederim.
 

bosislermuduru

Altın Üye
Katılım
2 Temmuz 2018
Mesajlar
64
Excel Vers. ve Dili
2003 ,2007,2013,2019@PowerQuery
Altın Üyelik Bitiş Tarihi
14-05-2029
Yeni Bir Sorgu Oluşturun Aşağıdaki Kodları Yazın
BuTablo Size Ogün Oluşmamış Dosyaları Getirecektir.
Yalnız Adresleri Aşağıdaki Gibi Elle Yazmanız Gerekecektir



JSON:
let


//Adres Örneği :   Adresler={"D:\Yedek\Masaüstü\F-Yazdır","D:\Yedek\Masaüstü\Google","D:\Yedek\Masaüstü\veri.csv"}



Adresler={"D:\Yedek\Masaüstü\F-Yazdır"},


 Dosyabilgisi=let
    #"Tabloya Dönüştürüldü" = Table.FromList(Adresler, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Kaldırılan Yinelenenler" = Table.Distinct(#"Tabloya Dönüştürüldü"),
    #"Sütunu Sınırlayıcıya Göre Böl" = Table.SplitColumn(#"Kaldırılan Yinelenenler", "Column1", Splitter.SplitTextByEachDelimiter({"\"}, QuoteStyle.Csv, true), {"Dosya Adresi", "Column1.2"}),
    #"Sütunu Sınırlayıcıya Göre Böl1" = Table.SplitColumn(#"Sütunu Sınırlayıcıya Göre Böl", "Column1.2", Splitter.SplitTextByEachDelimiter({"."}, QuoteStyle.None, true), {"Dosya Adı", "Dosya Uzantısı"}),
    #"Özel Eklendi" = Table.AddColumn(#"Sütunu Sınırlayıcıya Göre Böl1", "Özel", each Folder.Files(if [Dosya Uzantısı]=null then
[Dosya Adresi]&"\"&[Dosya Adı]

else [Dosya Adresi])),
    #"Genişletilen Özel" = Table.ExpandTableColumn(#"Özel Eklendi", "Özel", {"Content", "Name", "Extension", "Date accessed", "Date modified", "Date created", "Attributes", "Folder Path"}, {"Content", "Name", "Extension", "Date accessed", "Date modified", "Date created", "Attributes", "Folder Path"}),
    #"Özel Eklendi1" = Table.AddColumn(#"Genişletilen Özel", "Durumu", each if [Dosya Uzantısı]=null then "Göster" else 
if  [Dosya Adresi]&"\"&[Dosya Adı]&"."&[Dosya Uzantısı]=[Folder Path]&[Name] then "Göster"
else "Gösterilmez"),
    #"Filtrelenen Satırlar" = Table.SelectRows(#"Özel Eklendi1", each ([Durumu] = "Göster"))
in
    #"Filtrelenen Satırlar",
    #"Değiştirilen Tür" = Table.TransformColumnTypes(Dosyabilgisi,{{"Date modified", type datetime}, {"Date created", type datetime}, {"Date accessed", type date}}),
    #"Bugün Olmayan Kayıtları Getir" = Table.SelectRows(#"Değiştirilen Tür", each not Date.IsInCurrentDay([Date modified]))
in
    #"Bugün Olmayan Kayıtları Getir"
 
Üst