TCMB Döviz Kurları alınması (Google Sheet)

Katılım
6 Mart 2024
Mesajlar
343
Excel Vers. ve Dili
2010 TR & 2016 TR
sadece Dolar ve Euro nun Alış satış Efektif Alış ve satış değerlerini almak için formülde ne gibi değişiklik yapmak gerekir
Merhaba,
Esasında bir önceki mesajımda Olta takımını vermiştim,
mesajı dikkatli incelemenizi öneririm çünkü:
TCMB xml yapısında değişiklik yapacak olursa şuan vereceğim kod çalışmaz.

ABD DOLARI DÖVİZ ALIŞ: "//Currency[@Kod='USD']/ForexBuying"
ABD DOLARI DÖVİZ SATIŞ: "//Currency[@Kod='USD']/ForexSelling"

ABD DOLARI EFEKTİF ALIŞ: "//Currency[@Kod='USD']/BanknoteBuying"
ABD DOLARI EFEKTİF SATIŞ: "//Currency[@Kod='USD']/BanknoteSelling"

EURO DÖVİZ ALIŞ: "//Currency[@Kod='EUR']/ForexBuying"
EURO DÖVİZ SATIŞ: "//Currency[@Kod='EUR']/ForexSelling"

EURO EFEKTİF ALIŞ:"//Currency[@Kod='EUR']/BanknoteBuying"
EURO EFEKTİF SATIŞ: "//Currency[@Kod='EUR']/BanknoteSelling"
 
Son düzenleme:

Mdemir63

Altın Üye
Katılım
7 Temmuz 2006
Mesajlar
2,962
Excel Vers. ve Dili
Ofis2010 32Bit Türkçe
Altın Üyelik Bitiş Tarihi
19-02-2026
Merhaba,
Esasında bir önceki mesajımda Olta takımını vermiştim,
mesajı dikkatli incelemenizi öneririm çünkü:
TCMB xml yapısında değişiklik yapacak olursa şuan vereceğim kod çalışmaz.

ABD DOLARI DÖVİZ ALIŞ: "//Currency[@Kod='USD']/ForexBuying"
ABD DOLARI DÖVİZ SATIŞ: "//Currency[@Kod='USD']/ForexSelling"

ABD DOLARI EFEKTİF ALIŞ: "//Currency[@Kod='USD']/BanknoteBuying"
ABD DOLARI EFEKTİF SATIŞ: "//Currency[@Kod='USD']/BanknoteSelling"

EURO DÖVİZ ALIŞ: "//Currency[@Kod='EUR']/ForexBuying"
EURO DÖVİZ SATIŞ: "//Currency[@Kod='EUR']/ForexSelling"

EURO EFEKTİF ALIŞ:"//Currency[@Kod='EUR']/BanknoteBuying"
EURO EFEKTİF SATIŞ: "//Currency[@Kod='EUR']/BanknoteSelling"
Teşekkürler Hocam
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,421
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Böyle özet bir liste oluşur.

C++:
=HSTACK(VSTACK("USD";"EUR";"GBP");IMPORTXML(
      "https://www.tcmb.gov.tr/kurlar/" &
      IF(WEEKDAY(TODAY();2)<=5;"today.xml";TEXT(TODAY()-LOOKUP(WEEKDAY(TODAY();2);{6;7};{1;2});"yyyymm/ddmmyyyy") & ".xml");
      "//Currency[@Kod='USD' or @Kod='EUR' or @Kod='GBP']/ForexBuying";"en-us"))
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,421
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bunda da başlıklar ve tarih bilgisi eklenir...

Gerisi kullanıcılara kalmış... ;)

C++:
=HSTACK(VSTACK("TARİH:";"KUR TİPİ";"USD";"EUR";"GBP");VSTACK(IF(WEEKDAY(TODAY();2)<=5;TEXT(TODAY();"dd.mm.yyyy");TEXT(TODAY()-LOOKUP(WEEKDAY(TODAY();2);{6;7};{1;2});"dd.mm.yyyy"));"DÖVİZ ALIŞ";IMPORTXML(
      "https://www.tcmb.gov.tr/kurlar/" &
      IF(WEEKDAY(TODAY();2)<=5;"today.xml";TEXT(TODAY()-LOOKUP(WEEKDAY(TODAY();2);{6;7};{1;2});"yyyymm/ddmmyyyy") & ".xml");
      "//Currency[@Kod='USD' or @Kod='EUR' or @Kod='GBP']/ForexBuying";"en-us")))
 
Katılım
6 Mart 2024
Mesajlar
343
Excel Vers. ve Dili
2010 TR & 2016 TR
Bunda da başlıklar ve tarih bilgisi eklenir...
Harika bir formül, elinize sağlık!

Özellikle tablo büyüdükçe hız kazanmak için küçük bir performans optimizasyonu önerebilirim:
  1. XML dosyasını tek bir hücrede (Örn: Sayfa1!A1'de) bir kez çekerek (tek IMPORTXML ile tüm verileri) sayfaya kaydederiz.
  2. Diğer sayfalarda ise kur değerlerini çekmek için sadece basit hücre referanslarını kullanırız (Örn: =Sayfa1!D1).
Bu sayede Google Sheets, XML dosyasını her formül için tekrar tekrar indirmez.
İstediğimiz zaman Sayfa1'i gizleyerek tabloyu sadeleştirebiliriz.
 
Katılım
29 Ocak 2024
Mesajlar
275
Excel Vers. ve Dili
Office 2016
Bunda da başlıklar ve tarih bilgisi eklenir...

Gerisi kullanıcılara kalmış... ;)

C++:
=HSTACK(VSTACK("TARİH:";"KUR TİPİ";"USD";"EUR";"GBP");VSTACK(IF(WEEKDAY(TODAY();2)<=5;TEXT(TODAY();"dd.mm.yyyy");TEXT(TODAY()-LOOKUP(WEEKDAY(TODAY();2);{6;7};{1;2});"dd.mm.yyyy"));"DÖVİZ ALIŞ";IMPORTXML(
      "https://www.tcmb.gov.tr/kurlar/" &
      IF(WEEKDAY(TODAY();2)<=5;"today.xml";TEXT(TODAY()-LOOKUP(WEEKDAY(TODAY();2);{6;7};{1;2});"yyyymm/ddmmyyyy") & ".xml");
      "//Currency[@Kod='USD' or @Kod='EUR' or @Kod='GBP']/ForexBuying";"en-us")))
Korhan Hocam yine harika bir formül oluşturmuşunuz,
emeğinize sağlık!
 
Katılım
29 Ocak 2024
Mesajlar
275
Excel Vers. ve Dili
Office 2016
Kıymetli Hocalarım merhaba,
Dolar kurunu çekerken TODAY() yerine hücrede yazan (F3) tarih bilgisini almak için aşağıdaki formülü oluşturdum ama;
Hata verdi, nasıl düzenleyebiliriz.
yardımlarınız için şimdiden teşekkürler,

Kod:
=IMPORTXML(
 "https://www.tcmb.gov.tr/kurlar/" &
 IF(
   WEEKDAY(F3;2)<=5;
   TEXT(F3;"yyyymm") & "/" & TEXT(F3;"ddmmyyyy") & ".xml";
   TEXT(F3 - LOOKUP(WEEKDAY(F3;2);{6;7};{1;2});"yyyymm") & "/" & TEXT(F3 - LOOKUP(WEEKDAY(F3;2);{6;7};{1;2});"ddmmyyyy") & ".xml"
 );
 "//Currency[CurrencyCode='USD']/ForexSelling"
)
iyi Çalışmalar dilerim.
 

volki_112

Altın Üye
Katılım
29 Eylül 2023
Mesajlar
805
Excel Vers. ve Dili
2019 Türkçe
Altın Üyelik Bitiş Tarihi
13-12-2029
Kıymetli Hocalarım merhaba,
Dolar kurunu çekerken TODAY() yerine hücrede yazan (F3) tarih bilgisini almak için aşağıdaki formülü oluşturdum ama;
Hata verdi, nasıl düzenleyebiliriz.
yardımlarınız için şimdiden teşekkürler,

Kod:
=IMPORTXML(
"https://www.tcmb.gov.tr/kurlar/" &
IF(
   WEEKDAY(F3;2)<=5;
   TEXT(F3;"yyyymm") & "/" & TEXT(F3;"ddmmyyyy") & ".xml";
   TEXT(F3 - LOOKUP(WEEKDAY(F3;2);{6;7};{1;2});"yyyymm") & "/" & TEXT(F3 - LOOKUP(WEEKDAY(F3;2);{6;7};{1;2});"ddmmyyyy") & ".xml"
);
"//Currency[CurrencyCode='USD']/ForexSelling"
)
iyi Çalışmalar dilerim.
F3 de yazan değerin biçimine bakın. today formülünden gelen biçimden farklı olabilir.
 
Katılım
6 Mart 2024
Mesajlar
343
Excel Vers. ve Dili
2010 TR & 2016 TR
Formül olayını @Korhan Ayhan daha düzgün düzenleme yapacaktır, sanırım meşgul şuan
ön hazırlık olarak @pNouma
1. Düzenlemek istediğin orjinal Fonksiyon nedir.
2. Fonksiyonda "TODAY()" yerine F3 Hücre değeri tarih olarak nasıl yazılı ( noktalı, boşluklu, kesmeli ) örnek bir F3 değeri yazınız.
 
Katılım
6 Mart 2024
Mesajlar
343
Excel Vers. ve Dili
2010 TR & 2016 TR
Kod:
=IMPORTXML(
"https://www.tcmb.gov.tr/kurlar/" &
IF(
WEEKDAY(F3;2)<=5;
TEXT(F3;"yyyymm") & "/" & TEXT(F3;"ddmmyyyy") & ".xml";
TEXT(F3 - LOOKUP(WEEKDAY(F3;2);{6;7};{1;2});"yyyymm") & "/" & TEXT(F3 - LOOKUP(WEEKDAY(F3;2);{6;7};{1;2});"ddmmyyyy") & ".xml"
);
"//Currency[CurrencyCode='USD']/ForexSelling"
)
formülün son kısımda @ salyangozu ve yerel ayarı unutmuşsun
( TCMB xml dosyasında kuruş ayracını . (nokta) kullandığı için "en-US" )

"//Currency[@CurrencyCode='USD']/ForexSelling";"en-US"
 
Üst