• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

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

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:
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
 
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"))
 
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")))
 
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.
 
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!
 
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.
 
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.
 
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.
 
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"
 
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"
çok teşekkürler Hocam
 
Geri
Üst