Genel Bakış
XMLFİLTRELE (FILTERXML), XML biçimindeki bir metinden XPath ifadesiyle belirtilen veriyi döndürür. Bir hücredeki XML içeriğinden etiket değerlerini ayıklamak ve WEBHİZMETİ işlevinin getirdiği XML yanıtını işlemek için kullanılır.
XML etiket adları ve XPath ifadeleri büyük küçük harfe duyarlıdır; etiketleri XML metninde yazıldığı gibi kullanın. Formülün içinde XPath ifadesini çift tırnak içinde metin olarak yazın.
Sonuçlar sırasıyla Lahmacun, İzmir ve Zeynep olur. Her satırda XPath ifadesi, XML içindeki etiket yolunu izleyerek ilgili düğümün içeriğini bulur. Formül her satırda aynı yapıda olduğundan yalnızca XML metni ve XPath ifadesi değişir.
Sonuçlar sırasıyla Lahmacun, Pide ve Mantı olur. Köşeli parantez içindeki sayı, aynı adı taşıyan düğümlerden kaçıncısının alınacağını belirtir. last() ise her zaman sonuncu düğümü seçer; düğüm sayısı değişse bile ifadeyi değiştirmeniz gerekmez.
Sonuçlar sırasıyla Ankara, İzmir ve Bursa olur. Formül, A sütunundaki sayıyı XPath ifadesinin içine ekleyerek her satırda bir sonraki şehri seçer. Sıra numarası sütunu yerine SATIR işlevini kullanarak da aynı sonucu elde edebilirsiniz.
Sonuçlar sırasıyla Pide, #DEĞER! ve #DEĞER! olur. İlk satırdaki XML geçerlidir ve değer alınır. İkinci satırda açılan yemek etiketi kapatılmadığı için XML geçersizdir. Üçüncü satırda ise tanımlanmamış bir ad alanı öneki kullanıldığından işlev #DEĞER! hatası verir.
Söz dizimi ve parametre
- Kategori
- Web
- İngilizce adı
- FILTERXML
- Platform
- Windows
2 bağımsız değişken
2 zorunlu
| Bağımsız değişken | Durum | Ne işe yarar |
|---|---|---|
| xmlxml | Zorunlu | XML biçimindeki geçerli metni, bu metni içeren bir hücreyi veya XML döndüren bir işlemi belirtir. |
| xpathxpath | Zorunlu | XML içinden hangi verinin alınacağını belirten XPath biçimindeki metni belirtir. |
Geçerli kullanımlar
=XMLFİLTRELE(A2;B2)
=XMLFİLTRELE(A2;"//yemek/ad")
=XMLFİLTRELE(WEBHİZMETİ(A2);B2)
Desteklenen Excel sürümleri
2013 ve sonrası
- 2003 Desteklenmiyor
- 2007 Desteklenmiyor
- 2010 Desteklenmiyor
- 2013 Destekleniyor
- 2016 Destekleniyor
- 2019 Destekleniyor
- 2021 Destekleniyor
- 2024 Destekleniyor
- 365 Destekleniyor
1. Etiket değerini alma
A sütunundaki XML metinlerinden B sütunundaki XPath ifadesine uyan değeri alalım. C2 hücresine aşağıdaki formülü yazıp aşağı kopyalayın:=XMLFİLTRELE(A2;B2)
=FILTERXML(A2,B2)
XMLFİLTRELE
Formülünü incelemek için bir hücre seçin.| A | B | C | |
|---|---|---|---|
| 1 | XML metni | XPath | Sonuç |
| 2 | <menu><yemek><ad>Lahmacun</ad></yemek></menu> | //yemek/ad | Lahmacun |
| 3 | <liste><sehir><ad>İzmir</ad></sehir></liste> | //sehir/ad | İzmir |
| 4 | <kayit><personel><ad>Zeynep</ad></personel></kayit> | //personel/ad | Zeynep |
TemelExcelDepo v1.0.0
2. Birden çok düğümden sıra ile seçme
Aynı XML metninde üç yemek bulunuyor. B sütunundaki XPath ifadesi hangi düğümün alınacağını belirler. C2 hücresine aşağıdaki formülü yazıp aşağı kopyalayın:=XMLFİLTRELE(A2;B2)
=FILTERXML(A2,B2)
XMLFİLTRELE
Formülünü incelemek için bir hücre seçin.| A | B | C | |
|---|---|---|---|
| 1 | XML metni | XPath | Sonuç |
| 2 | <menu><yemek><ad>Lahmacun</ad></yemek><yemek><ad>Pide</ad></yemek><yemek><ad>Mantı</ad></yemek></menu> | //yemek(1)/ad | Lahmacun |
| 3 | <menu><yemek><ad>Lahmacun</ad></yemek><yemek><ad>Pide</ad></yemek><yemek><ad>Mantı</ad></yemek></menu> | //yemek(2)/ad | Pide |
| 4 | <menu><yemek><ad>Lahmacun</ad></yemek><yemek><ad>Pide</ad></yemek><yemek><ad>Mantı</ad></yemek></menu> | //yemek(last())/ad | Mantı |
Düğüm SırasıExcelDepo v1.0.0
3. XPath ifadesini sıra numarasıyla oluşturma
XPath ifadesini sabit yazmak yerine A sütunundaki sıra numarasından metin birleştirme ile oluşturabilirsiniz. C2 hücresine aşağıdaki formülü yazıp aşağı kopyalayın:=XMLFİLTRELE(B2;"//sehir["&A2&"]/ad")
=FILTERXML(B2,"//sehir["&A2&"]/ad")
XMLFİLTRELE
Formülünü incelemek için bir hücre seçin.| A | B | C | |
|---|---|---|---|
| 1 | Sıra | XML metni | Şehir |
| 2 | 1 | <liste><sehir><ad>Ankara</ad></sehir><sehir><ad>İzmir</ad></sehir><sehir><ad>Bursa</ad></sehir></liste> | /ad")]Ankara |
| 3 | 2 | <liste><sehir><ad>Ankara</ad></sehir><sehir><ad>İzmir</ad></sehir><sehir><ad>Bursa</ad></sehir></liste> | /ad")]İzmir |
| 4 | 3 | <liste><sehir><ad>Ankara</ad></sehir><sehir><ad>İzmir</ad></sehir><sehir><ad>Bursa</ad></sehir></liste> | /ad")]Bursa |
Sıra NumarasıExcelDepo v1.0.0
4. Geçersiz XML ve hata durumları
XML metni geçerli değilse işlev hata verir. C2 hücresine aşağıdaki formülü yazıp aşağı kopyalayın:=XMLFİLTRELE(A2;B2)
=FILTERXML(A2,B2)
XMLFİLTRELE
Formülünü incelemek için bir hücre seçin.| A | B | C | |
|---|---|---|---|
| 1 | XML metni | XPath | Sonuç |
| 2 | <menu><yemek><ad>Pide</ad></yemek></menu> | //yemek/ad | Pide |
| 3 | <menu><yemek><ad>Pide</ad></menu> | //yemek/ad | #DEĞER! |
| 4 | <x:menu><x:yemek><x:ad>Pide</x:ad></x:yemek></x:menu> | //yemek/ad | #DEĞER! |
HatalarExcelDepo v1.0.0
Kullanırken dikkat edin
- xml parametresi: xml parametresi XML biçiminde bir metin olmalıdır ve 255 karakterden kısa olmalıdır. xml geçerli değilse işlev #DEĞER! hatası verir. xml geçersiz bir ad alanı içeriyorsa da sonuç #DEĞER! olur.
- xpath parametresi: xpath parametresi, XML içindeki hangi düğümün alınacağını belirten XPath biçiminde bir metin olmalıdır. Örneğin //yemek/ad ifadesi yemek etiketinin içindeki ad etiketinin değerini, //yemek[2]/ad ifadesi ikinci yemek düğümünün adını verir.
- Web hizmeti ile kullanım: WEBHİZMETİ işlevinin getirdiği XML yanıtını xml parametresi olarak verebilirsiniz. Servis adresinin A2 hücresinde yazılı olduğu bir örnek aşağıdadır:
Servis geçerli bir XML döndürmezse ya da yanıt bulunamazsa sonuç #DEĞER! olur. Adres içinde özel karakterler varsa URLKODLA işleviyle adresi kodlayabilirsiniz.=XMLFİLTRELE(WEBHİZMETİ(A2);"//city/name")=FILTERXML(WEBSERVICE(A2),"//city/name") - Sürüm ve platform: İşlev Excel 2013 ile eklenmiştir ve yalnızca Windows sürümünde kullanılabilir.
- İlgili işlevler: WEBHİZMETİ: Bir web servisinden XML yanıtı almak için kullanılır; sonucu XMLFİLTRELE içine xml olarak verirsiniz. URLKODLA: Web servisi adresindeki özel karakterleri kodlamak için tercih edilir. SATIR: XPath ifadesindeki düğüm sırasını satır numarasından üretmek istediğinizde kullanılabilir.
Desteklenen Excel sürümleri
- Microsoft 365
- Excel 2013
- Excel 2016
- Excel 2019
- Excel 2021
- Excel 2024