Ana içeriğe geç
Kesit Power BI
İleri · Veri Hazırlama

Klasörden dosya birleştirme: Folder.Files, Binary, yardımcı sorgular

Folder.Files çıktısı, Content sütunundaki Binary, Csv.Document, fonksiyonla okuma ve genişletme; Combine Files’ın yardımcı sorguları ve tipik tuzaklar.

Uygulamada aç, 9 alıştırmayı çözÜcretsiz, hesap gerekmez, kurulum yok.

Bu sayfa dersin okuma sürümüdür. Metin bir kutuyu çalıştırmanı ya da adıma geçmeni söylüyorsa dersi uygulamada aç.

Combine Files ne yapar?

Klasör bağlayıcısı dosya başına bir satır getirir. Şerit Combine ile bir örnek dosya seçer, o dosyadaki temizliği fonksiyona çevirir ve her dosyaya uygular. Yardımcı sorgular grubunda örnek dosya, parametre, işlev ve Transform Sample file oluşur. Sen temizliği yalnız bu örnek sorguda yaparsın.

BenzetimLab gerçek diske bağlanmaz. Folder.Files("C:\Veri\Satis") üç aylık CSV ve bir notlar dosyasından oluşan sabit bir klasör döndürür; dosya içeriği Binary olarak taşınır. Gerçek Binary’nin bayt işlemleri, Excel.Workbook ve kodlama seçenekleri alt küme dışındadır. Mantık gerçek klasör birleştirmeyle aynıdır.

Elle yazılışı

Folder.Files("C:\Veri\Satis")

Learn: Folder.Files klasördeki ve alt klasörlerdeki her dosya için bir satır, özellikler ve içeriğe bağlantı döndürür. Dört adım var: dosyaları süz, tek dosyayı okuyan fonksiyon yaz, her satırda çağır, genişlet.

let
    Dosyalar = Folder.Files("C:\Veri\Satis"),
    Csvler = Table.SelectRows(Dosyalar, each [Extension] = ".csv"),
    Oku = (ikili as binary) as table =>
        Table.PromoteHeaders(Csv.Document(ikili, [Delimiter = ";"])),
    Okunan = Table.AddColumn(Csvler, "Veri", each Oku([Content])),
    Sade = Table.SelectColumns(Okunan, {"Name", "Veri"}),
    Acik = Table.ExpandTableColumn(Sade, "Veri", {"Tarih", "Bayi", "Tutar"}),
    Tipli = Table.TransformColumnTypes(Acik, {{"Tarih", type date}, {"Tutar", type number}})
in
    Tipli

Name sütununu tutmak iyi alışkanlıktır: Combine Files bunun için Source.Name sütununu üretir, hatalı satırın hangi dosyadan geldiğini gösterir.

Tipik tuzaklar

BelirtiNedenÇözüm
Fazladan null satırlarKlasördeki yabancı dosya da okunduCombine yerine Transform data ile önce uzantıya ve ada göre süz
The column 'Column1' of the table wasn't foundÖrnek sorguda başlık yükselttin, çıktı sorgusundaki eski tür adımı Column1’i arıyorO adımı Uygulanan adımlardan sil
Bir dosyada sütun eksikYeni dosyanın şeması farklıGenişletmede null gelir ya da tür adımı hata verir; dosya sözleşmesi koy, Name ile bul
Yeni sütun gelmiyorExpandTableColumn’daki sütun listesi kalıcıdırListeyi kodda güncelle ya da Table.ColumnNames ile dinamik üret
Türler Herhangi geliyorBirleşik sütunların türü yokSon adım tür ver
Sonuç filtre listesinde eksik görünüyorListe eksik olabilir uyarısıLoad more ile genişlet, sonra karar ver

Klasör yolunu parametre yap

Yolu parametre yaparsan başka makine ve bulutta çalışır. Bulutta paylaşılmış klasör için SharePoint.Files ve ağ geçidi gerekir; yerel yol Service’te ağ geçidi ister. Çok dosyada Learn’ün tavsiyesi: filtreyi erken uygula, yalnız gereken dosyaları oku.

Alıştırmalara geç (9)