Power Query ile YKB Döviz Kurlarını Listeleme

Power Query ile YKB Döviz Kurlarını Listeleme, M kodları kullanarak Yapı ve Kredi’nin web sitesinden kur bilgisini yazdırmayı öğretmektedir

Power Query ile YKB Döviz Kurlarını Listeleme (Detaylı M Kodu Rehberi)

Döviz kurları, dalgalı yapıları nedeniyle takibi dikkat gerektiren finansal göstergelerdir. Özellikle ticari faaliyetler, yatırımlar veya kişisel tasarruflar dövize endeksli olmaktadır. Anlık ve geçmiş kur verilerine erişim büyük önem taşımaktadır. Bu tür verilerin web sitelerinden manuel olarak kopyala-yapıştır yöntemiyle toplanmaktadır. Ancak bu durumlar zaman alıcı ve hataya açık bir süreç olabilmektedir. Microsoft Excel’in etkili araçlarından biri olan Power Query (Veri Al ve Dönüştür) bulunmaktadır. Bu aracın kullandığı güçlü M dili sayesinde, bu işlemler önemli ölçüde otomatikleştirilebilmektedir.

M kodları Yapı Kredi Bankası’nın web sitesinden canlı döviz kurlarının (EUR, USD, Altın/XAU) Excel’e nasıl çekileceğini açıklamaktadır. Bununla birlikte, çekilen bu verilerin zaman içinde bir “Master” tablosunda nasıl arşivleneceği gösterilmektir. Ayrıca, her bir kod satırı açıklanarak gösterilmektedir.

Neden Yapı Kredi? Neden Power Query?

Yapı Kredi Bankası: Türkiye’nin önde gelen bankalarından biri olması sebebiyle, döviz kuru verileri için genellikle güvenilirdir. Bu nedenle güncel bir kaynak olarak kabul edilmektedir. (Ancak, web’den veri çekme işlemlerinin her zaman belirli riskler taşıdığı ve bu konuya makalenin ilerleyen bölümlerinde değinileceği unutulmamalıdır.)

Power Query: Excel 2016 ve üzeri sürümler ile Microsoft 365 aboneliklerinde yerleşik olarak sunulmaktadır. Bu araç, veri alma, temizleme ve dönüştürme konularında çok yönlü bir çözüm sunmaktadır. Hem kullanıcı arayüzü üzerinden hem de M dili ile kod yazarak karmaşık veri işleme operasyonları gerçekleştirilmektedir. Önemli bir avantajı da, sistem bir kez kurulduktan sonra verilerin tek bir işlemle güncellenebilmesidir.

Başlamadan Önce Bilinmesi Gerekenler (Önemli Uyarılar)

Bölüm 1: Yapı Kredi’den Anlık Döviz Kurlarını Çekme (İlk M Kodu Analizi)

Bu bölümde, Yapı Kredi Bankası’nın "Döviz Bilgileri" sayfasından anlık işlem zamanını ve belirlenen döviz kurlarını (örneğin EUR, USD, XAU) çeken ilk M kodu incelenecektir.

Adım 1: Power Query Editörünü Açma ve Yeni Sorgu Oluşturma

  1. Excel’de "Veri" sekmesine gidin.
  2. "Veri Al" (Get Data) > "Diğer Kaynaklardan" (From Other Sources) > "Boş Sorgu" (Blank Query) seçeneğine tıklayın.
  3. Power Query Editörü açılacaktır.

Adım 2: İlk M Kodunu Yapıştırma

Açılan Power Query Editörü’nde, "Görünüm" (View) sekmesinden "Gelişmiş Düzenleyici"yi (Advanced Editor) açın. Mevcut tüm metni silin ve aşağıdaki M kodunu yapıştırın:

let
    a = Web.BrowserContents("https://www.yapikredi.com.tr/yatirimci-kosesi/doviz-bilgileri"),
    b = Html.Table(a, {{"IslemZamani", ".currency-label > SPAN:nth-child(1):nth-last-child(1)"}}),   
    islemZamani= b{0}[IslemZamani],
    d = Html.Table(a, {{"Column1", "DIV.table-radius:nth-child(11) > TABLE.table.table-striped.table-bordered.table-control > * > TR > :nth-child(1)"}, {"Column2", "DIV.table-radius:nth-child(11) > TABLE.table.table-striped.table-bordered.table-control > * > TR > :nth-child(2)"}, {"Column3", "DIV.table-radius:nth-child(11) > TABLE.table.table-striped.table-bordered.table-control > * > TR > :nth-child(3)"}, {"Column4", "DIV.table-radius:nth-child(11) > TABLE.table.table-striped.table-bordered.table-control > * > TR > :nth-child(4)"}, {"Column5", "DIV.table-radius:nth-child(11) > TABLE.table.table-striped.table-bordered.table-control > * > TR > :nth-child(5)"}}, [RowSelector="DIV.table-radius:nth-child(11) > TABLE.table.table-striped.table-bordered.table-control > * > TR"]),
    e = Table.PromoteHeaders(d, [PromoteAllScalars=true]),
    f = Table.RemoveColumns(e,{"Döviz Açıklaması", "Değişim"}),
    g = Table.SelectRows(f, each ([Döviz Cinsi] = "EUR" or [Döviz Cinsi] = "USD" or [Döviz Cinsi] = "XAU")),
    h = Table.AddColumn(g, "IslemZamani", each islemZamani),
    i = Table.TransformColumnTypes(h,{{"IslemZamani", type datetime}})   
in
    i

"Bitti" (Done) butonuna tıklayın.

Adım 3: M Kodu Adımlarının Detaylı Açıklaması

Bu M kodu adımlarının her biri aşağıda detaylandırılmıştır:

Adım 3: M Kodu Adımlarının Detaylı Açıklaması

Adım 4: Sorguyu Adlandırma ve Yükleme

  1. Power Query Editörü’nün sağ tarafında bulunan "Sorgu Ayarları" (Query Settings) bölmesindeki "Ad" (Name) kısmına, oluşturulan bu sorgu için bir isim verin (Örneğin: YK_Anlik_Kur).
  2. Daha sonra, "Giriş" (Home) sekmesinde yer alan "Kapat ve Yükle" (Close & Load) butonunun altındaki oka tıklayıp "Kapat ve Şuraya Yükle…" (Close & Load To…) seçeneğini seçin.
  3. Açılan "Veri İçeri Aktar" (Import Data) penceresinde aşağıdaki ayarları yapın:
    • "Tablo" (Table) seçeneğini işaretleyin.
    • "Yeni çalışma sayfası" (New worksheet) veya "Varolan çalışma sayfası" (Existing worksheet) seçeneklerinden birini tercih ederek verilerin yükleneceği konumu belirleyebilirsiniz. ÖNEMLİ NOT: İkinci M kodunun doğru çalışabilmesi için, bu ilk sorgudan elde edilen verilerin Excel’de "Guncel" adında bir tabloya yüklenmesi gerekmektedir. Bu nedenle, verilerin yeni bir çalışma sayfasına tablo olarak yüklenmesi ve Excel’e dönüldükten sonra oluşturulan bu Excel tablosuna "Guncel" adının verilmesi tavsiye edilmektedir. (Tablo seçildikten sonra Excel’in "Tablo Tasarımı" sekmesinden tablo adı kolayca değiştirilebilmektedir.)
  4. "Tamam" butonuna tıklayın. Anlık kur verileri belirttiğiniz Excel sayfasına yüklenecektir.

Bölüm 2: Döviz Kurlarını Tarihi Bir Arşivde Biriktirme (İkinci M Kodu Analizi)

İlk sorgu, anlık kur verilerini çekmektedir. Bu kurların günlük olarak biriktirilmesiyle kapsamlı bir kur arşivi oluşturulabilmektedir. İkinci M kodu bu amaca hizmet etmektedir.

Adım 1: "Master" Adında Boş Bir Arşiv Tablosu Oluşturma

Bu adım önemlidir. Power Query ile yeni çekilen kurların ekleneceği bir ana tabloya ihtiyaç duyulmaktadır.

  1. Excel’de yeni bir çalışma sayfası açın.
  2. İlk satıra şu başlıkları yazınız:
    Döviz Cinsi Alış (TL) Satış (TL) IslemZamani
  3. Bu başlıkları içeren hücreleri seçin ve Excel’in "Ekle" (Insert) sekmesinden "Tablo" seçeneğine tıklayın. Açılan pencerede "Tablomun üst bilgileri var" (My table has headers) kutucuğunun işaretli olduğundan emin olun ve "Tamam" butonuna tıklayın.
  4. Oluşan bu Excel tablosunu seçin. Excel’in "Tablo Tasarımı" (Table Design) sekmesinde, sol üst bölümde yer alan "Tablo Adı" (Table Name) alanına "Master" yazın ve Enter tuşuna basın. Bu tablo, başlangıçta sadece başlık satırından oluşacak ve veri içermeyecektir.

Adım 2: "Master" Tablosunu Power Query’e Kaynak Olarak Tanıtma (Önerilen İyileştirme)

İkinci M kodunda yer alan `& Master` gibi dolaylı bir referans, bazen belirsizliklere yol açmaktadır. Daha sağlam bir yaklaşım, "Master" adlı Excel tablosunun öncelikle Power Query’e ayrı bir sorgu olarak tanıtılmasıdır.

  1. Excel’de "Veri" sekmesine gidin.
  2. "Tablodan/Aralıktan" (From Table/Range) seçeneğine tıklayın. (Bu işlem öncesinde, "Master" adlı Excel tablonuzdaki herhangi bir hücrenin seçili olması gerekmektedir.)
  3. "Master" tablosu Power Query Editörü’ne yüklenecektir. Editörün sağ tarafındaki "Sorgu Ayarları" bölmesinde, bu yeni sorguya "MasterKayitlar" adını verin.
  4. Bu sorgu üzerinde herhangi bir veri dönüşümü yapılmasına gerek yoktur. "Giriş" sekmesinden "Kapat ve Yükle" butonunun altındaki oka tıklayıp "Kapat ve Şuraya Yükle…" seçeneğini seçin.
  5. Açılan pencerede "Yalnızca Bağlantı Oluştur" (Only Create Connection) seçeneğini işaretleyin ve "Tamam" butonuna tıklayın. Bu işlemle "Master" tablosu, Power Query için tanımlı bir veri kaynağı haline gelir.

Adım 3: İkinci M Kodunu Yeni Bir Sorguya Yapıştırma

Şimdi, arşivleme işlemini gerçekleştirecek ikinci sorgu oluşturulacaktır.

  1. Excel’de tekrar "Veri" > "Veri Al" > "Diğer Kaynaklardan" > "Boş Sorgu" adımlarını izleyerek yeni bir Power Query sorgusu açın.
  2. "Gelişmiş Düzenleyici"yi açın ve aşağıdaki güncellenen ve iyileştirilen M kodunu yapıştırın:
let
    // 1. Adım: "Guncel" adlı Excel tablosundan (ilk sorgunun çıktısı) veriyi al
    Kaynak_Guncel = Excel.CurrentWorkbook(){[Name="Guncel"]}[Content],
    TipDonusumu_Guncel = Table.TransformColumnTypes(Kaynak_Guncel,{{"Döviz Cinsi", type text}, {"Alış (TL)", type number}, {"Satış (TL)", type number}, {"IslemZamani", type datetime}}),

    // 2. Adım: "MasterKayitlar" sorgusundan (Master Excel tablosunun bağlantısı) mevcut arşiv verisini al
    Kaynak_Master = MasterKayitlar,
    // MasterKayitlar sorgusu zaten doğru tiplerde olmalı, ama emin olmak için bir tip dönüşümü eklenebilir:
    // TipDonusumu_Master = Table.TransformColumnTypes(Kaynak_Master,{{"Döviz Cinsi", type text}, {"Alış (TL)", type number}, {"Satış (TL)", type number}, {"IslemZamani", type datetime}}),

    // 3. Adım: Güncel verileri mevcut arşiv verilerine ekle (append)
    BirlestirilmisTablo = Table.Combine({Kaynak_Master, TipDonusumu_Guncel}), // Önce Master, sonra Güncel

    // 4. Adım: Yinelenenleri Kaldır (Opsiyonel ama Önemli!)
    // Eğer aynı IslemZamani ve Döviz Cinsi için birden fazla kayıt oluşması istenmiyorsa
    // Özellikle tüm sütunlara göre yinelenenleri kaldırmak daha güvenli olabilir
    YinelenenleriKaldır = Table.Distinct(BirlestirilmisTablo, {"Döviz Cinsi", "IslemZamani"}),
    // Veya tüm sütunlara göre: Table.Distinct(BirlestirilmisTablo)

    // 5. Adım: Son bir tip dönüşümü (genellikle iyi bir pratiktir)
    SonTipDonusumu = Table.TransformColumnTypes(YinelenenleriKaldır,{{"Alış (TL)", type number}, {"Satış (TL)", type number}, {"IslemZamani", type datetime}})
in
    SonTipDonusumu

Adım 4: İkinci M Kodu Adımlarının Detaylı Açıklaması (Güncellenen Kod)

Adım 5: Arşiv Sorgusunu Adlandırma ve Yükleme

  1. Power Query Editörü’nde bu sorguya bir isim verin (Örneğin: GuncelKurlariArsiveEkle).
  2. "Giriş" sekmesinde yer alan "Kapat ve Yükle" butonunun altındaki oka tıklayıp "Kapat ve Şuraya Yükle…" seçeneğini seçin.
  3. Açılan "Veri İçeri Aktar" penceresinde aşağıdaki ayarları yapın:
    • "Tablo" seçeneğini işaretleyin.
    • "Varolan çalışma sayfası" seçeneğini işaretleyin ve hedef olarak "Master" adlı Excel tablonuzun bulunduğu hücrelerden birini (örneğin, tablonun başlık hücresini) gösterin. Bu sorgunun çıktısı, "Master" tablosunun mevcut içeriğinin üzerine yazılarak tabloyu güncelleyecektir.
  4. "Tamam" butonuna tıklayın.

Bu işlemler sonucunda, her iki sorgu da ("YK_Anlik_Kur" ve ardından "GuncelKurlariArsiveEkle") çalıştırıldığında, yeni kur verileri önce "Guncel" adlı tabloya, ardından da "Master" tablosundaki kur arşivine eklenecektir.

Sorguları Çalıştırma ve Otomatik Yenileme

Önemli Hususlar: Sorun Giderme ve İpuçları

Power Query ile YKB Döviz Kurlarını Listeleme – Geliştirme Fikirleri ve Ek Olanaklar

Bu sistemle önemli bir temel oluşturulmuştur. İleride aşağıdaki geliştirmeler de değerlendirilebilecektir:

Power Query ile YKB Döviz Kurlarını Listeleme – Sonuç

Bu içerik, döviz kurlarını Yapı Kredi Bankası’ndan Excel‘e otomatik olarak çekmenizi sağlamaktadır. Bu işlem için M kodları ve Power Query yöntemleri kullanılmaktadır. Böylece verilerin işlenmesi için kapsamlı bir çözüm sunulmuştur.

Power Query ile YKB Döviz Kurlarını Listeleme, kullanıcıların ilgili konuda bilgi sahibi olmalarını sağlamaktadır. Ayrıca, sunulan çözümü etkin bir şekilde uygulamalarını sağlamak amacıyla hazırlanmıştır. M dilinin, pratikle daha etkin kullanılan güçlü bir araç olduğu unutulmamalıdır. Power Query ile YKB Döviz Kurlarını Listeleme ile ilgili sorular gerekebilmektedir. Ayrıca, sistemin geliştirilmesine yönelik öneriler için yorumlar bölümü kullanılmalıdır.

Dosya Bilgileri

Dosya Adı: power_query_ile_ykb_doviz_kurlarini_listeleme.xlsx
Dosya Boyutu: 24.04 KB
Toplam İndirme Sayısı: 0
Bu içerikteki dosyayı indirmek için giriş yapmalısınız. ExcelDepo üyelik bilgileriniz ile bu siteye de giriş yapabilirsiniz.
Giriş Yap
Exit mobile version