Özel işlevleri kullanma
Kendinizi farklı sorgulara veya değerlere aynı dönüşüm kümesini uygulamanız gereken bir durumda bulursanız, ihtiyacınız olduğu kadar çok kez yeniden kullanılabilecek bir Power Query özel işlevi oluşturmak yararlı olabilir. Power Query özel işlevi, giriş değerleri kümesinden tek bir çıkış değerine eşlemedir ve yerel M işlevlerinden ve işleçlerinden oluşturulur.
Power Query M işlevlerini anlama bölümünde açıklandığı gibi kodu kullanarak kendi Power Query özel işlevinizi el ile oluşturabilirsiniz ancak Power Query kullanıcı arabirimi size özel işlev oluşturma ve yönetme sürecini hızlandırmaya, basitleştirmeye ve iyileştirmeye yönelik özellikler sunar.
Bu makale, yalnızca Power Query kullanıcı arabirimi aracılığıyla sağlanan bu deneyime ve bundan en iyi şekilde nasıl yararlanmak istediğinize odaklanır.
Önemli
Bu makalede, Power Query kullanıcı arabiriminde erişilebilen yaygın dönüşümleri kullanarak Power Query ile özel bir işlevin nasıl oluşturulacağı özetlenmiştir. Özel işlevler oluşturmak için temel kavramlara odaklanır ve bu makalede başvuruda bulunan belirli dönüşümler hakkında daha fazla bilgi için Power Query belgelerindeki ek makalelere bağlantılar sağlar.
Not
Aşağıdaki örnek, Power BI Desktop'ta bulunan masaüstü deneyimi kullanılarak oluşturulmuştur ve Windows için Excel'de bulunan Power Query deneyimi kullanılarak da takip edilebilir.
Aşağıdaki indirme bağlantısından bu makalede kullanılan örnek dosyaları indirerek bu örnekle birlikte izleyebilirsiniz. Kolaylık olması için bu makalede Klasör bağlayıcısı kullanılır. Klasör bağlayıcısı hakkında daha fazla bilgi edinmek için Klasör'e gidin. Bu örneğin amacı, tüm dosyalardaki tüm verileri tek bir tabloda birleştirmeden önce bu klasördeki tüm dosyalara uygulanabilecek özel bir işlev oluşturmaktır.
Dosyalarınızın bulunduğu klasöre gitmek için Klasör bağlayıcısı deneyimini kullanarak başlayın ve Verileri Dönüştür veya Düzenle'yi seçin. Bu adımlar sizi Power Query deneyimine götürür. İçerik alanında istediğiniz İkili değere sağ tıklayın ve Yeni Sorgu Olarak Ekle seçeneğini belirleyin. Bu örnekte, listeden ilk dosya için seçim yapılmıştır ve bu, Nisan 2019.csv dosyasıdır.
Bu seçenek, gezinti adımıyla doğrudan bu dosyaya İkili olarak yeni bir sorgu oluşturur ve bu yeni sorgunun adı seçili dosyanın dosya yoludur. Bu sorguyu Örnek Dosya olarak yeniden adlandırın.
Dosya Parametresi adı ve İkili türüyle yeni bir parametre oluşturun. Örnek Dosya sorgusunu Varsayılan Değer ve Geçerli Değer olarak kullanın.
Not
Power Query'de parametre oluşturmayı ve yönetmeyi daha iyi anlamak için Parametreler makalesini okumanızı öneririz.
Özel işlevler herhangi bir parametre türü kullanılarak oluşturulabilir. Herhangi bir özel işlevin parametre olarak ikili dosyaya sahip olması gerekmez.
İkili parametre türü yalnızca, ikili olarak değerlendirilen bir sorgunuz olduğunda Parametreler iletişim kutusu Türü açılan menüsünde görüntülenir.
Parametresiz özel bir işlev oluşturmak mümkündür. Bu durum genellikle bir girişin işlevin çağrıldığı ortamdan çıkarılabildiği senaryolarda görülür. Örneğin, ortamın geçerli tarih ve saatini alan ve bu değerlerden belirli bir metin dizesi oluşturan bir işlev.
Sorgular bölmesinde Dosya Parametresi'ne sağ tıklayın. Başvuru seçeneğini belirleyin.
Yeni oluşturulan sorguyu Dosya Parametresi 'nden (2) Örnek Dosyayı Dönüştür olarak yeniden adlandırın.
Bu yeni Örnek Dosyayı Dönüştür sorgusuna sağ tıklayın ve İşlev Oluştur seçeneğini belirleyin.
Bu işlem, Dönüşüm Örneği dosya sorgusuyla bağlantılı yeni bir işlevi etkili bir şekilde oluşturur. Dönüştürme Örneği dosya sorgusunda yaptığınız tüm değişiklikler otomatik olarak özel işlevinize çoğaltılır. Bu yeni işlevin oluşturulması sırasında İşlev adı olarak Transform dosyasını kullanın.
İşlevi oluşturduktan sonra, işlevinizin adıyla sizin için yeni bir grup oluşturulduğuna dikkat edin. Bu yeni grup şunu içerir:
- Dönüştürme Örneği dosya sorgunuzda başvuruda bulunılan tüm parametreler.
- Örnek sorgu olarak bilinen Dönüşüm Örneği dosya sorgunuz.
- Yeni oluşturduğunuz işlev, bu örnekte Dönüştür dosyası.
Yeni işleviniz oluşturulduktan sonra Örnek Dosyasını Dönüştür adlı sorguyu seçin. Bu sorgu artık Transform dosyası işleviyle bağlantılı olduğundan, bu sorguda yapılan tüm değişiklikler işleve yansıtılır. Bu bağlantı, bir işleve bağlı örnek sorgu kavramı olarak bilinir.
Bu sorguya gerçekleşmesi gereken ilk dönüştürme, ikiliyi yorumlayan dönüştürmedir. Önizleme bölmesinde ikili dosyaya sağ tıklayıp CSV seçeneğini belirleyerek ikili dosyayı CSV dosyası olarak yorumlayabilirsiniz.
Klasördeki tüm CSV dosyalarının biçimi aynıdır. Hepsinin ilk dört satırı kapsayan bir üst bilgisi vardır. Sütun başlıkları 5. satırda bulunur ve veriler sonraki görüntüde gösterildiği gibi 6. satırdan aşağı doğru başlar.
Dönüşüm Örneği dosyasına uygulanması gereken sonraki dönüştürme adımları kümesi şunlardır:
İlk dört satırı kaldırın— Bu eylem, dosyanın üst bilgi bölümünün parçası olarak kabul edilen satırlardan kurtulur.
Not
Satırları kaldırma veya tabloyu satır konumuna göre filtreleme hakkında daha fazla bilgi edinmek için Satır konumuna göre filtreleme bölümüne gidin.
Üst bilgileri yükselt— Son tablonuzun üst bilgileri artık tablonun ilk satırındadır. Bunları bir sonraki görüntüde gösterildiği gibi yükseltebilirsiniz.
Power Query, sütun başlıklarınızı tanıtdıktan sonra varsayılan olarak her sütun için veri türlerini otomatik olarak algılayan yeni bir Değiştirilmiş Tür adımı ekler. Dönüşüm Örneği dosya sorgunuz sonraki görüntüye benzer.
Not
Üst bilgileri yükseltme ve indirgeme hakkında daha fazla bilgi edinmek için Sütun üst bilgilerini yükseltme veya indirgeme bölümüne gidin.
Dikkat
Dönüştürme dosyası işleviniz, Dönüştürme Örneği dosya sorgusunda gerçekleştirilen adımlara dayanır. Ancak, Transform dosyası işlevinin kodunu el ile değiştirmeye çalışırsanız, şu uyarıyla karşılanırsınız:The definition of the function 'Transform file' is updated whenever query 'Transform Sample file' is updated. However, updates will stop if you directly modify function 'Transform file'.
Özel işlevin oluşturulması ve tüm dönüştürme adımlarının birleştirilmiş olmasıyla, klasöründeki dosyaların listesinin bulunduğu özgün sorguya geri dönebilirsiniz (bu örnekte CSV Dosyaları ). Şeritteki Sütun Ekle sekmesinin içinde Genel grubundan Özel İşlev Çağır'ı seçin. Özel İşlev Çağır penceresinin içine Çıkış Tablosu'nu Yeni sütun adı olarak girin. İşlev sorgusu açılan listesinden işlevinizin adını (Dönüştür dosyası) seçin. Açılan menüden işlevi seçtikten sonra, işlevin parametresi görüntülenir ve tablodan bu işlev için bağımsız değişken olarak kullanılacak sütunu seçebilirsiniz. Dosya Parametresi için geçirilecek değer / bağımsız değişken olarak İçerik sütununu seçin.
Tamam'ı seçtikten sonra Çıkış Tablosu adlı yeni bir sütun oluşturulur. Sonraki görüntüde gösterildiği gibi, bu sütunun hücrelerinde Tablo değerleri vardır. Kolaylık olması için, Ad ve Çıkış Tablosu dışındaki tüm sütunları bu tablodan kaldırın.
Not
Tablodaki sütunları seçme veya kaldırma hakkında daha fazla bilgi edinmek için Sütunları seçme veya kaldırma bölümüne gidin.
İşleviniz, işlevinizin bağımsız değişkeni olarak İçerik sütunundaki değerler kullanılarak tablodaki her bir satıra uygulandı. Veriler artık aradığınız şekle dönüştürüldüğüne göre, Genişlet simgesini seçerek Çıkış Tablosu sütununu genişletebilirsiniz. Genişletilmiş sütunlar için herhangi bir ön ek kullanmayın.
Ad veya Tarih sütunundaki değerleri denetleyerek klasördeki tüm dosyalardan veri sahibi olduğunuzu doğrulayabilirsiniz. Bu durumda, her dosya yalnızca belirli bir yılın tek bir ayına ait verileri içerdiğinden Tarih sütunundaki değerleri de kontrol edebilirsiniz. Birden fazla dosya görüyorsanız, birden çok dosyadaki verileri tek bir tabloda başarıyla birleştirdiğiniz anlamına gelir.
Not
Şu ana kadar okuduğunuz, Dosyaları birleştir deneyimi sırasında gerçekleşen ama el ile yapılan işlemle temel olarak aynıdır.
Dosyaları birleştirme deneyiminin Power Query'de nasıl çalıştığını ve özel işlevlerin oynadığı rolü daha fazla anlamak için Dosyaları birleştirmeye genel bakış ve CSV dosyalarını birleştirme makalesini de okumanızı öneririz.
Şu anda derlediğiniz şeye göre yeni bir gereksinim olduğunu düşünün. Yeni gereksinim, dosyaları birleştirmeden önce yalnızca Ülke'nin Panama'ya eşit olduğu satırları almak için içindeki verileri filtrelemenizi gerektirir.
Bu gereksinimi gerçekleştirmek için metin veri türüyle Market adlı yeni bir parametre oluşturun. Geçerli Değer için Panama değerini girin.
Bu yeni parametreyle, Örnek Dosyasını Dönüştür sorgusunu seçin ve Market parametresindeki değeri kullanarak Ülke alanını filtreleyin.
Not
Sütunları değerlere göre filtreleme hakkında daha fazla bilgi edinmek için Değerleri filtreleme bölümüne gidin.
Bu yeni adımı sorgunuza uygulamak, Dönüştürme dosyası işlevini otomatik olarak güncelleştirir. Bu işlev artık Dönüşüm Örneği dosyanızın kullandığı iki parametreye göre iki parametre gerektirir.
Ancak CSV dosyaları sorgusunun yanında bir uyarı işareti vardır. İşleviniz güncelleştirildiğinden iki parametre gerektirir. Bu nedenle işlevi çağırdığınız adım hata değerleriyle sonuçlanır, çünkü bağımsız değişkenlerden yalnızca biri Çağrılan Özel İşlev adımı sırasında Dönüştürme dosyası işlevine geçirilir.
Hataları düzeltmek için, Uygulanan Adımlar'da Çağrılan Özel İşlev'e çift tıklayarak Özel İşlev Çağır penceresini açın. Market parametresinde Panama değerini el ile girin.
Artık Uygulanan Adımlar'da Genişletilmiş Çıkış Tablosu'na dönebilirsiniz. Csv Dosyaları sorgusunun son sonuç kümesinde yalnızca Country'nin Panama'ya eşit olduğu satırların gösterildiğini doğrulamak için sorgunuzu denetleyin.
Aynı dönüştürme kümesini gerektiren birden çok sorgunuz veya değeriniz varsa, yeniden kullanılabilir bir mantık parçası işlevi gören özel bir işlev oluşturabilirsiniz. Daha sonra bu özel işlev, seçtiğiniz sorgulara veya değerlere karşı çağrılabilir. Bu özel işlev size zaman kazandırabilir ve istediğiniz zaman değiştirebileceğiniz merkezi bir konumdaki dönüşüm kümenizi yönetmenize yardımcı olabilir.
Örneğin, metin dizesi olarak birkaç kodu olan ve aşağıdaki örnek tabloda olduğu gibi bu değerlerin kodunu çözen bir işlev oluşturmak istediğiniz bir sorgu düşünün:
kod |
---|
PTY-CM1090-LAX |
LAX-CM701-PTY |
PTY-CM4441-MIA |
MIA-UA1257-LAX |
LAX-XY2842-MIA |
Örnek olarak hizmet veren bir değere sahip bir parametreye sahip olarak başlarsınız. Bu durumda PTY-CM1090-LAX değeridir.
Bu parametreden, ihtiyacınız olan dönüştürmeleri uyguladığınız yeni bir sorgu oluşturursunuz. Bu durumda PTY-CM1090-LAX kodunu birden çok bileşene bölmek istiyorsunuz:
- Origin = PTY
- Hedef = LAX
- Havayolu = CM
- FlightID = 1090
Aşağıdaki M kodu, bu dönüştürme kümesini gösterir.
let
Source = code,
SplitValues = Text.Split( Source, "-"),
CreateRow = [Origin= SplitValues{0}, Destination= SplitValues{2}, Airline=Text.Start( SplitValues{1},2), FlightID= Text.End( SplitValues{1}, Text.Length( SplitValues{1} ) - 2) ],
RowToTable = Table.FromRecords( { CreateRow } ),
#"Changed Type" = Table.TransformColumnTypes(RowToTable,{{"Origin", type text}, {"Destination", type text}, {"Airline", type text}, {"FlightID", type text}})
in
#"Changed Type"
Not
Power Query M formül dili hakkında daha fazla bilgi edinmek için Power Query M formül dili'ne gidin.
Ardından sorguya sağ tıklayıp İşlev Oluştur'u seçerek bu sorguyu işleve dönüştürebilirsiniz. Son olarak, bir sonraki görüntüde gösterildiği gibi özel işlevinizi sorgularınıza veya değerlerinize çağırabilirsiniz.
Birkaç dönüşüm daha yaptıktan sonra, istediğiniz çıkışa ulaştığınızı ve özel bir işlevden böyle bir dönüşüm için mantığı uyguladığınızı görebilirsiniz.