WEBHİZMETİ (WEBSERVICE) Fonksiyonu Nedir?
WEBHİZMETİ fonksiyonu, bir web kaynağına HTTP GET isteği yaparak dönen içeriği metin olarak hücreye getiren bir fonksiyondur. Örnek olarak, bir hava durumu veya finansal veri sağlayan API’den JSON/XML formatında veri çekebilir, sonrasında Excel’de işlemler yapabilirsiniz. Genellikle FILTERXML gibi ek fonksiyonlar veya Power Query ile birlikte kullanılarak gelen ham veriyi ayrıştırmak mümkün olur.
Önemli Noktalar:
- Sadece Metin Döndürür: WEBHİZMETİ fonksiyonu, URL’nin yanıtını ham metin olarak getirir. Yanıt JSON, XML, düz metin vs. olabilir.
- HTTP GET İsteği: Genellikle bir parametresiz veya parametreli URL’ye GET isteğinde bulunur. POST, SOAP vb. yöntemleri desteklemez.
- Excel Versiyonu: Microsoft 365 veya Excel 2013 ve sonrası sürümlerde (Windows) kullanılabilir.
- Güvenlik ve Bağlantı: Bilinmeyen veya güvenilmeyen URL’lerle veri çekmek riskli olabilir. Kurumsal güvenlik duvarları ve proxy ayarları fonksiyonun çalışmasını kısıtlayabilir.
Sözdizimi
WEBHİZMETİ(url)
Argümanlar:
- url (gerekli):
Veri talep edilecek web adresi. Genellikle “http://” veya “https://” ile başlayan tam bir URL metni. Hücre içinde oluşturduğunuz bir metin olabilir (ör."https://api.xyz.com/data"
).
Not: Fonksiyon tek bir argüman alır ve eğer bağlantı başarısız, URL yanlış, sunucu yanıt vermiyor veya metin çok büyükse hata döndürebilir.
Örnek Tablo ve Formül Kullanımı
Aşağıda basit bir örnek olarak, numbersapi.com benzeri ücretsiz bir servisten sayı hakkında rastgele bilgi çekmek istediğimizi varsayalım. Bu web servis, "http://numbersapi.com/<sayı>"
formatında bir GET isteğine düz metin döndürür.
A Sütunu (Sayı) | B Sütunu (Formül) | C Sütunu (Açıklama) |
---|---|---|
42 | =WEBHİZMETİ(“http://numbersapi.com/” & A2) | 42 sayısıyla ilgili kısa bir metinsel bilgi (#) |
2023 | =WEBHİZMETİ(“http://numbersapi.com/” & A3) | 2023 hakkında metinsel bilgi |
7 | =WEBHİZMETİ(“http://numbersapi.com/” & A4) | 7 sayısıyla ilgili rastgele bilgi (Örn: “7 is the number…”) |
- A2 hücresine
"42"
, A3’e"2023"
, A4’e"7"
yazın. - B2 hücresine aşağıdaki formülü girin:
=WEBHİZMETİ("http://numbersapi.com/" & A2)
- B3 hücresinde:
=WEBHİZMETİ("http://numbersapi.com/" & A3)
- B4 hücresinde:
=WEBHİZMETİ("http://numbersapi.com/" & A4)
Bu formüller, ilgili URL’ye istek göndererek metinsel yanıtı hücrede görüntüleyecektir. Örneğin “42” için “42 is the answer to the ultimate question of life…” gibi bir metin dönebilir. Dönen sonuç her istekte farklı olabilir veya sabit bir metin olabilir.
Muhtemel Hatalar veya Sorunlar
- #BAĞ (Connecting…) şeklinde bir uyarı veya #HESAPLA! (Calculating) geçici durum: Veri çekilirken hücrede geçici hata/uyarı görebilirsiniz.
- #DEĞER!: URL geçerli bir metin değilse veya boşsa bu hata dönebilir.
- #BAŞV!: Dosya boyutu, kaynak erişim sorunları vb.
- #YOK: Bağlantı engellenmiş, yanıt yok, vb.
İpuçları:
- Veriyi Ayrıştırma: Gelen yanıt JSON veya XML içeriyorsa FILTERXML, Power Query veya makrolarla ayrıştırabilirsiniz.
- Dinamik Parametreler: URL’nin bir kısmını hücrelerden alarak, parametreler ekleyip dinamik istekler oluşturabilirsiniz.
- Hesaplamayı Kontrol: WEBHİZMETİ fonksiyonu her hesaplamada yeniden veriye istek atar. Eğer sürekli değişmesi gerekmiyorsa, veri çekildikten sonra hücreleri kopyalayıp “Özel Yapıştır (Değerler)” yapabilirsiniz.
Sonuç
WEBHİZMETİ (WEBSERVICE) fonksiyonu, Excel’in dış dünyaya açılan kapısıdır. Bir URL’ye GET isteği gönderip yanıtı metin olarak döndürür. Bu özellik basit API’lardan veri almak, küçük servis entegrasyonları yapmak veya online kaynaklardan anlık bilgi çekmek isteyen kullanıcılar için faydalıdır. Formül her yeniden hesaplandığında veri tazelenir, bu sayede güncel veriyi çalışma sayfasında tutabilirsiniz.
Web kategorisindeki diğer formüller için buraya bakabilirsiniz.
🟢Eğitim talepleri için bizimle buradan iletişime geçebilirsiniz. 👉 https://forms.office.com/r/0gMDksLjLg
🟢News from Microsoft 365 bültenimize abone olabilir. 👉 https://www.linkedin.com/newsletters/7076133011028611072/
🟢Microsoft 365 Copilot Community grubumuza katılabilirsiniz. 👉 https://www.linkedin.com/groups/9559408/
Sevgiler ❤️
Bir yorum bırak