Aracılığıyla paylaş


Ö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 formül dilini kullanarak kendi Power Query özel işlevinizi kendiniz oluşturabilirsiniz veya Power Query kullanıcı arabirimi size özel işlev oluşturma ve yönetme sürecini hızlandırmanıza, basitleştirmenize ve geliştirmenize yönelik özellikler sunar.

İlk olarak kullanıcı arabirimi koduyla özel işlev oluşturmatemel adımlarını ele alacağız, ardından karmaşık eylemleri yeniden kullanılabilir bir işleve dönüştürmekiçin arabirimi kullanmaya odaklanacağız.

Ö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 diğer makalelere bağlantılar sağlar.

Kullanıcı arabirimindeki koddan özel işlev oluşturma

Not

Aşağıdaki adımlar Power BI Desktop'ta veya Windows için Excel'de bulunan Power Query deneyimi kullanılarak izlenebilir.

  1. Verilerinizin barındırıldığı yere bağlanmak için bağlayıcı deneyimini kullanın. Verilerinizi seçtiğinizde, Veri Dönüştürme veya Düzenle düğmesine basın. Bu sizi Power Query deneyimine götürür.
  2. Soldaki Sorgular bölmesinde boş bir noktaya sağ tıklayın.
  3. Boş sorguseçin.
  4. Yeni boş sorgu penceresinde Giriş menüsünü seçin, ardından Gelişmiş düzenleyici.
  5. Şablonu özel işlevinizle değiştirin. Mesela:
    let
     HelloWorld = () => ("Hello World")
    in
     HelloWorld
    
  6. seçinBitti.

Power Query M formül diliyle özel işlevler geliştirme hakkında daha fazla bilgi için şu makaleye bakın: Power Query M İşlevlerini Anlama. Aşağıdaki bölümlerde, kod yazmadan özel işlevler geliştirmek için Power Query kullanıcı arabirimini nasıl kullanabileceğinizi açıklayan öğreticiler ve sorgunuzda özel işlevinizi nasıl çağırabileceğinize ilişkin yönergeler yer almaktadır.

Tablo referansı eğitimi kullanarak özel işlev oluşturma

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.

Örnek dosyaları bu makalede kullanılan aşağıdaki indirme bağlantısı'dan indirerek bu örneği takip edebilirsiniz. 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örgidin. 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.

Klasöre gitmek için Klasör bağlayıcısını kullanarak başlayın ve ardından Veri Dönüştürme veya Düzenleseçeneklerini seçin. Bu adımlar sizi Power Query deneyimine götürür. İçerik alanında istediğiniz İkili değerine 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.csvdosyasıdır.

Örnek dosyanız olacak bir dosyanın nasıl seçileceğine ait ekran görüntüsü.

Bu seçenek, doğrudan bu dosyaya ikili olarak bir gezinti adımı ile yeni bir sorgu oluşturur ve bu yeni sorgunun adı, seçilen dosyanın dosya yoludur. Bu sorguyu Örnek Dosya olarak yeniden adlandırın.

Yeni Örnek Dosya sorgusunu gösteren ekran görüntüsü.

adında ve İkilitüründe Dosya Parametresi adlı yeni bir parametre oluşturun. Örnek Dosya sorgusunu Varsayılan Değer ve Geçerli Değerolarak kullanın.

Dosya parametresi değerlerinin doldurulduğu ekran görüntüsü.

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ü, ikili olarak değerlendirilen bir sorgunuz olduğunda yalnızca Tür açılan menüsünüParametreler iletişim kutusunun içinde 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 türetilebildiğ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ölmesinden Dosya Parametresi üzerine sağ tıklayın. Referans seçeneğini belirleyin.

Dosya Parametresi için Başvuru seçeneğinin seçili olduğu ekran görüntüsü.

Yeni oluşturulan sorguyu Dosya Parametresi (2)'den Örnek dosya dönüştürolarak yeniden adlandırın.

Örnek Dönüştürme dosyası sorgusunun yeniden adlandırıldığı ekran görüntüsü.

Bu yeni Dönüştür Örnek dosya sorgusuna sağ tıklayın ve İşlev Oluştur seçeneğini belirleyin.

Dönüştürme Örneği dosyasının sorgusu için kullanılan Oluştur işlevi seçeneğinin ekran görüntüsü.

Bu işlem, Dönüştürme Örneği dosyası sorgusuyla bağlantı oluşturan yeni bir işlevi etkili bir şekilde oluşturur. Dönüştürme Örnek dosyası 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 Transform dosyasınıİşlev adı olarakkullanın.

Dönüştürme dosyası için Oluştur işlevi penceresinin ekran görüntüsü .

İş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 dosyanızdaki sorgusunda referans verilen tüm parametreler.
  • Dönüştürme Örneği dosyanız sorgusu, yaygın olarak örnek sorguolarak bilinir.
  • Yeni oluşturduğunuz işlev, bu örnekte Dönüştürme dosyası.

Sorgular bölmesinde işlev grubunun ekran görüntüsü.

Örnek bir sorguya dönüşümler uygulamak

Yeni işleviniz oluşturulduktan sonra, Örnek Dosyasını Dönüştüradlı sorguyu seçin. Bu sorgu artık Dönüştürme dosyası işleviyle ilişkilendirildiğinden, 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ölmesinden ikili dosyaya sağ tıklayabilir ve ikiliyi CSV dosyası olarak yorumlamak için CSV seçeneğini belirleyebilirsiniz.

CSV'nin vurgulandığı ikili seçenekli açılır menünün ekran görüntüsü.

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.

İşlemeden önce örnek CSV verilerinin ekran görüntüsü.

Dönüştürme Örneği dosyası uygulanması gereken sonraki dönüştürme adımları kümesi şunlardır:

  1. ilk dört satırı kaldır — Bu eylem, dosyanın üst bilgi bölümünün parçası olarak kabul edilen satırlardan kurtulur.

    Dönüştürme Örneği dosyasından üst satırlar kaldırıldıktan sonra ekran görüntüsü.

    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 filtrelemegidin.

  2. Ü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.

    İlk satırdan sonraki ekran görüntüsü üst bilgi olarak kullanılır.

Power Query, sütun üst bilgilerinizi tanıtdıktan sonra varsayılan olarak her sütun için veri türlerini otomatik olarak algılayan yeni bir Değiştirilen Tür adımı ekler. Çevrim Örneği dosyası sorgunuz, sonraki görüntü olarak görünmektedir.

Not

Başlıkları yükseltme ve indirgeme hakkında daha fazla bilgi edinmek için sütun başlıklarını yükseltme veya indirgemegidin.

Son dönüştürme örnek sorgusunun ekran görüntüsü.

Dikkat

Dönüştürme dosyanızın işlevi, Dönüştürme Örneği dosyasının sorgusunda gerçekleştirilen adımlara dayanır. Ancak, Dönüştürme dosyası işlevinin kodunu el ile değiştirmeye çalışırsanı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'. yazan bir uyarıyla karşılanırsınız

Özel işlevi yeni sütun olarak çağırma

Ö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 sekmesinde, Genel grubundan Özel İşlevi Çağır'ı seçin. Özel İşlev Çağır penceresinin içine Yeni sütun adı olarak Çıkış Tablosu girin. İşlevinizin adını, Dönüştür dosyası, İşlev sorgusu açılan listesinden 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 Parametresigeçirilecek değer / bağımsız değişken olarak İçerik sütununu seçin.

Özel İşlevi Çağır düğmesinin vurgulandığı ekran görüntüsü, Özel İşlev Çağır iletişim kutusundaki ayarlarla gösterilir.

Tamamseçtikten sonra, Çıktı Tablosu adlı yeni bir sütun oluşturulur. Bu sütun, sonraki görüntüde gösterildiği gibi hücrelerinde Tablo değerlerine sahiptir. Kolaylık olması için, Ad ve Çıktı Tablosudışındaki tüm sütunları bu tablodan kaldırın.

Özel işlevin çağrıldığı ve yalnızca Ad ve Çıkış Tablosu sütunlarının kaldığı ekran görüntüsü.

Not

Tablodaki sütunları seçme veya kaldırma hakkında daha fazla bilgi edinmek için sütun seçme veya kaldırma bölümüne gidin.

İşleviniz, işlevinizin bağımsız değişkeni olarak content sütunundaki değerler kullanılarak tablodaki her satıra uygulandı. Veriler artık aradığınız şekle dönüştürüldüğüne göre, Genişlet simgesini seçerek Çıktı Tablosu sütununu genişletebilirsiniz. Genişletilmiş sütunlar için herhangi bir ön ek kullanmayın.

Tüm tablo sütunlarının seçili olduğu genişletilmiş çıktı tablosu iletişim kutusunun ekran görüntüsü.

Adı veya Tarih sütunundaki değerleri denetleyerek klasördeki tüm dosyalardan veri sahibi olduğunuzu doğrulayabilirsiniz. Bu durumda, Tarih sütunundaki değerleri de kontrol edebilirsiniz; her dosya yalnızca belirli bir yılın tek bir ayına ait verileri içerir. Birden fazla dosya görüyorsanız, birden çok dosyadaki verileri tek bir tabloda başarıyla birleştirdiğiniz anlamına gelir.

Son tablonun tüm dosyalardan veri içerdiğini doğrulayan tarih açılan listesini içeren ekran görüntüsü.

Not

Şu ana kadar okuduğunuz, Dosyaları birleştirme 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.

Mevcut özel işleve yeni parametre ekleme

Hayal edin ki, şu anda inşa ettiklerinizin üzerine yeni bir gereksinim var. Yeni gereksinim, dosyaları birleştirmeden önce içindeki verileri yalnızca ÜlkePanamaeşit olduğu satırları almak için filtrelemenizi gerektirir.

Bu gereksinimi gerçekleştirmek için metin veri türüyle Market adlı yeni bir parametre oluşturun. Geçerli Değeriçin, değer Panamagirin.

Gerekli değerleriyle yeni parametrenin ekran görüntüsü.

Bu yeni parametreyle, Dönüştürme Örnek dosyası sorgusunu seçin ve Market parametresindeki değeri kullanarak Ülke alanını filtreleyin.

Yeni Market parametresini kullanarak Ülkeyi Filtrele sütunuyla satırları filtrele iletişim kutusunun ekran görüntüsü.

Not

Sütunları değerlere göre filtreleme hakkında daha fazla bilgi edinmek için değerleri filtrelemegidin.

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.

İşlevin ekran görüntüsü artık iki parametreyle güncelleştirildi.

Ancak CSV dosyaları sorgunun 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ıyor, çünkü bağımsız değişkenlerden yalnızca biri Dönüştürme dosyası işlevine Çağrılan Özel İşlev adımı sırasında geçirildi.

İşlev güncelleştirmesinin ardından görüntülenen hata iletisinin ekran görüntüsü.

Hataları düzeltmek için, Uygulanan Adımlar içinde Çağrılan Özel İşlev'e çift tıklayarak Özel İşlev Çağırma penceresini açın. Market parametresinde Panama değerini el ile girin.

Güncelleştirilmiş çağrılan özel işlev bağımsız değişkenlerinin ekran görüntüsü.

Artık Uygulanan Adımlariçindeki Genişletilmiş Çıktı Tablosu'e dönebilirsiniz. Yalnızca ÜlkePanama eşit olduğu satırların CSV Dosyaları sorgunun son sonuç kümesinde gösterildiğini doğrulamak için sorgunuzu denetleyin.

Güncelleştirilmiş bağımsız değişkenlerden sonraki son çıkış tablosunun ekran görüntüsü.

Yeniden kullanılabilir bir mantık parçasından özel işlev oluşturma

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

Özgün kod listesinin ekran görüntüsü.

Örnek olarak hizmet veren bir değere sahip bir parametreye sahip olarak başlarsınız. Bu durumda, PTY-CM1090-LAX değeridir.

Örnek parametre kodu değerlerinin girilmiş olduğu Parametreleri Yönet iletişim kutusunun ekran görüntüsü.

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:

  • Kaynak = PTY
  • Hedef = LAX
  • Havayolu = CM
  • FlightID = 1090

Örnek dönüştürme sorgusunun her bölümünün kendi sütununda bulunduğu ekran görüntüsü.

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 diligidin.

Ardından sorguya sağ tıklayıp İşlev Oluştur 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.

Özel İşlev Çağır değerlerinin doldurulduğu kod listesinin ekran görüntüsü.

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.

Özel bir işlev çağrıldıktan sonra son çıkış sorgusunu gösteren ekran görüntüsü.