Jak używać funkcji FILTERXML w Excelu

Przetwarzanie danych XML w Excelu

Funkcja, którą omówimy, pozwala na manipulowanie i ekstrakcję danych z dokumentów XML bezpośrednio w środowisku MS Excel. Jest to niezwykle przydatne narzędzie, które może być wykorzystywane do wielu różnych zastosowań biznesowych i analitycznych, takich jak przetwarzanie informacji z różnych źródeł danych czy integracja informacji.

Składnia i przykłady

Funkcja przyjmuje dwa argumenty:

  • xml – tekst w formacie XML, który chcemy przetworzyć.
  • xpath – ciąg znaków definiujący zapytanie XPath, które posłuży do ekstrakcji informacji z dokumentu XML.

Szablon użycia w Excelu wygląda następująco:

=FILTERXML(xml, xpath)

Oto prosty przykład, jak można użyć tej funkcji:

=FILTERXML("<team><player>Jan Kowalski</player><player>Anna Nowak</player></team>", "//player")

W tym przypadku funkcja zwróci imiona zawodników z listy zespołu, czyli „Jan Kowalski” i „Anna Nowak”. Jest to efekt działania zapytania XPath //player, które selektywnie wyszukuje wszystkie elementy o nazwie player.

Praktyczne zastosowania

Przetwarzanie danych pogodowych

Załóżmy, że mamy dane XML dotyczące prognozy pogody, które wyglądają następująco:

<weather> <city name="Warszawa"> <temperature value="20" unit="C"/> </city> <city name="Kraków"> <temperature value="18" unit="C"/> </city> </weather>

Chcemy wyekstrahować informacje o temperaturze dla danych miast. W tym celu możemy użyć następującej formuły:

=FILTERXML(xml, "//city[@name='Warszawa']/temperature/@value")

Funkcja z powyższym zapytaniem XPath zwróci wartość 20, co odpowiada temperaturze w Warszawie. Zapytanie to dokładnie wskazuje na atrybut value dla elementu temperature w mieście o nazwie Warszawa.

Ekstrakcja danych z dokumentów faktur

Załóżmy teraz, że otrzymujemy dokumenty faktur w formacie XML, jak poniżej:

<invoice> <product> <name>Klawiatura</name> <price>120</price> </product> <product> <name>Monitor</name> <price>800</price> </product> </invoice>

Celem jest wyodrębnienie ceny monitora. Odpowiednia formuła to:

=FILTERXML(xml, "//product[name='Monitor']/price")

Wynikiem będzie liczba 800, co oznacza cenę monitora. Wyraz //product[name='Monitor']/price skutecznie lokalizuje i ekstrahuje wartość zagnieżdżoną pod tagiem price, ale tylko dla produktu, którego nazwa to „Monitor”.

Te przykłady demonstrują, jak przy użyciu jednej funkcji można efektywnie przetwarzać kompleksowe dokumenty XML, co jest szczególnie przydatne w przypadkach, gdy musimy regularnie przetwarzać lub integrować dane z zewnętrznych źródeł w środowisku Excela.

Więcej informacji: https://support.microsoft.com/pl-pl/office/filterxml-funkcja-4df72efc-11ec-4951-86f5-c1374812f5b7

Inne funkcje
Zwraca ciąg zakodowany w adresie URL
Zwraca dane z usługi sieci Web