web-dev-qa-db-fra.com

Filtrer les données des cellules à l'aide de Query / Importdata

J'essaie de récupérer des données d'une cellule, en utilisant des données supplémentaires dans la cellule au-dessus pour m'assurer que c'est correct. Voici les données, chaque ligne est mise dans une cellule par la formule.

<total_count>6</total_count>
<games>
<message>
<appid>376210</appid>
<name>The Isle</name>
<playtime_2weeks>4300</playtime_2weeks>
<playtime_forever>23973</playtime_forever>
</message>
<message>
<appid>4000</appid>
<name>Garry&apos;s Mod</name> --------using this
<playtime_2weeks>289</playtime_2weeks> ------to get this!
<playtime_forever>277810</playtime_forever>
</message>
<message>
<appid>578080</appid>
<name>PLAYERUNKNOWN&apos;S BATTLEGROUNDS</name>
<playtime_2weeks>59</playtime_2weeks>
<playtime_forever>8585</playtime_forever>
<img_icon_url>93d896e7d7a42ae35c1d77239430e1d90bc82cae</img_icon_url>
<img_logo_url>2d2732a33511b58c69aff6b098a22687a3bb8533</img_logo_url>
</message>
<message>

La formule que j'utilise actuellement est

=QUERY(IMPORTDATA(A1)," select Col1,Col2 where Col2 = '2weeks' and Col2 matches 'Garry'")

Il génère <name>Garry&apos;s Mod</name> et je ne peux pas sélectionner uniquement "2 semaines" car cela se répète plusieurs fois et pour différents jeux.

De plus, la disposition peut changer à tout moment. L'île est actuelle en haut, mais elle peut changer pour être au milieu ou en bas de la liste à tout moment. Je sais que si j'ai consacré plus de temps à cela, je pourrais simplement utiliser des formules distinctes pour atteindre mon objectif, mais j'essaie d'apprendre à utiliser des formules combinées. Moins d'encombrement, plus d'options et plus facile à regarder.

Des idées?

1
Nate.M-C
=REGEXEXTRACT(QUERY({{A1:A25; ""}, {""; A1:A25}}, 
 "select Col1 where Col2 contains 'Garry'", 0), 
 ">(.*)<")

0

0
user0
=REGEXEXTRACT(INDIRECT("A"&FILTER(ROW(A:A), SEARCH("*Garry*", A:A))+1), ">(.*)<")

0

0
user0
=REGEXEXTRACT(REGEXEXTRACT(QUERY(A:A, , 999^99), 
 "Garry(.*)"), "2weeks>(\d+.\d+|\d+)")

0

0
user0