J'utilise IMPORTXML
pour créer ce qui est essentiellement un fichier de flux d'inventaire de véhicules.
Mon problème survient lorsqu'un prix n'est pas inclus sur notre site Web principal. Ce qui se passe apparemment, c'est que lorsque le prix n'est pas inclus, le IMPORTXML
saute celui-ci, sans aucune erreur ou quoi que ce soit, et avec le prochain prix qu'il trouve à sa place sur la feuille.
C'est un problème car nous essayons d'aligner ces camions avec leur vin, PDSF, prix, etc.
https://docs.google.com/spreadsheets/d/1KceS3krlbpU2FjQly-tK8N5qiwshIq3rQFQ36WRNV5U/edit?usp=sharing
Pour donner un exemple précis dans ma fiche ce numéro de vin: 1FTMF1E5XKKE62311
n'a actuellement pas de prix indiqué sur notre site. Au lieu d'insérer une cellule vide ou une erreur, le IMPORTXML
insère le prix de l'unité indiquée après cela. Cela crée un groupe de prix vierges à la fin de la feuille, même si les prix de ces véhicules sont sur notre site Web. Fondamentalement, cela jette la feuille entière après le premier prix ignoré.
Voici comment nous tirons actuellement sur le prix d'Internet:
=IFERROR({IMPORTXML(A4,"//div[@class='col-xs-12 visible-xs margin-top-1x']//span[@style='font-weight:bold;font-size:1.2em;'][@class='pull-right primaryPrice']");
IMPORTXML(A5,"//div[@class='col-xs-12 visible-xs margin-top-1x']//span[@style='font-weight:bold;font-size:1.2em;'][@class='pull-right primaryPrice']");
IMPORTXML(A6,"//div[@class='col-xs-12 visible-xs margin-top-1x']//span[@style='font-weight:bold;font-size:1.2em;'][@class='pull-right primaryPrice']");
IMPORTXML(A7,"//div[@class='col-xs-12 visible-xs margin-top-1x']//span[@style='font-weight:bold;font-size:1.2em;'][@class='pull-right primaryPrice']");
IMPORTXML(A8,"//div[@class='col-xs-12 visible-xs margin-top-1x']//span[@style='font-weight:bold;font-size:1.2em;'][@class='pull-right primaryPrice']");
IMPORTXML(A9,"//div[@class='col-xs-12 visible-xs margin-top-1x']//span[@style='font-weight:bold;font-size:1.2em;'][@class='pull-right primaryPrice']");
IMPORTXML(A10,"//div[@class='col-xs-12 visible-xs margin-top-1x']//span[@style='font-weight:bold;font-size:1.2em;'][@class='pull-right primaryPrice']");
IMPORTXML(A11,"//div[@class='col-xs-12 visible-xs margin-top-1x']//span[@style='font-weight:bold;font-size:1.2em;'][@class='pull-right primaryPrice']")},"")
Nous espérions que le gestionnaire d'erreurs fonctionnerait, mais malheureusement, cela n'a pas fonctionné. Quelqu'un a-t-il une idée de la façon dont nous ne violerions pas la commande d'importation lorsqu'il y a un prix qui n'est pas indiqué?
Tout conseil serait très apprécié!!
mise à jour a changé la feuille ci-dessus pour être modifiable par n'importe qui si vous souhaitez faire une colonne et lui donner un coup de feu
=QUERY({
IFERROR(IMPORTXML(A4, "//div[@class='col-xs-12 visible-xs margin-top-1x']//span[@style='font-weight:bold;font-size:1.2em;'][@class='pull-right primaryPrice']"), "");
IFERROR(IMPORTXML(A5, "//div[@class='col-xs-12 visible-xs margin-top-1x']//span[@style='font-weight:bold;font-size:1.2em;'][@class='pull-right primaryPrice']"), "");
IFERROR(IMPORTXML(A6, "//div[@class='col-xs-12 visible-xs margin-top-1x']//span[@style='font-weight:bold;font-size:1.2em;'][@class='pull-right primaryPrice']"), "");
IFERROR(IMPORTXML(A7, "//div[@class='col-xs-12 visible-xs margin-top-1x']//span[@style='font-weight:bold;font-size:1.2em;'][@class='pull-right primaryPrice']"), "");
IFERROR(IMPORTXML(A8, "//div[@class='col-xs-12 visible-xs margin-top-1x']//span[@style='font-weight:bold;font-size:1.2em;'][@class='pull-right primaryPrice']"), "");
IFERROR(IMPORTXML(A9, "//div[@class='col-xs-12 visible-xs margin-top-1x']//span[@style='font-weight:bold;font-size:1.2em;'][@class='pull-right primaryPrice']"), "");
IFERROR(IMPORTXML(A10, "//div[@class='col-xs-12 visible-xs margin-top-1x']//span[@style='font-weight:bold;font-size:1.2em;'][@class='pull-right primaryPrice']"), "");
IFERROR(IMPORTXML(A11, "//div[@class='col-xs-12 visible-xs margin-top-1x']//span[@style='font-weight:bold;font-size:1.2em;'][@class='pull-right primaryPrice']"), "")},
"where Col1 is not null", 0)
Edit: a trouvé un moyen de repérer les données manquantes
Réponse originale:
Il n'y a pas d'erreur car il n'y a pas de données: IMPORTXML
récupère toutes les données correspondant à une requête Xpath spécifique et n'affichera rien s'il n'y a rien.
Conclusion: IFERROR
est inutile ici. Cependant, ce que vous pouvez faire est de concaténer vos requêtes IMPORTXML en utilisant |
Comme ceci:
=IMPORTXML(A4,"//h2[@class='vehicleTitle margin-x']/a/span[@class='notranslate']")
=IMPORTXML(A4,"//div[@class='col-xs-12 visible-xs margin-top-1x']/ul/li/span[@style='text-decoration:line-through;'][@class='pull-right']")
etc....
Devient
=IMPORTXML(A4,"//h2[@class='vehicleTitle margin-x']/a/span[@class='notranslate'] |
//div[@class='col-xs-12 visible-xs margin-top-1x']/ul/li/span[@style='text-decoration:line-through;'][@class='pull-right'] |
//div[@class='col-xs-12 visible-xs margin-top-1x']//li[@class='vinDisplay']/span |
//div[@class='col-xs-12 visible-xs margin-top-1x']//span[@style='font-weight:bold;font-size:1.2em;'][@class='pull-right primaryPrice']
")
Le résultat est un tableau comme celui-ci:
2019 Ford F-150 XL
$30,045
$20,427
1FTMF1CB6KKC12430
2019 Ford F-150 XL
$30,045
$20,427
1FTMF1CB8KKC12381
2019 Ford F-150 XL
$31,450
$21,846
1FTMF1CBXKKD26088
...
and then where there's no data for the price :
...
2019 Ford F-150 XLT
$54,200
$39,758
1FTEW1E53KKC32677
2019 Ford F-150 XL here's the vehicle
1FTMF1E5XKKE62311 VIM but no price
2019 Ford F-150 XLT
$53,620
$39,853
1FTEW1E43KKD96874
Il suffit de trouver une solution pour réorganiser les données.
Edit: Solution pour réorganiser les données.
À côté de la colonne de résultat B2:B
, Je mets cette formule dans C2
Puis je la développe =countif(arrayformula(regexmatch(INDIRECT("B2:B"&ROW(B2)),"Ford")),true)
Elle incrémente un compteur pour chaque nouveau nom de véhicule avec le mot clé Ford
.
Ensuite, j'ai utilisé la même idée pour créer un tableau pour chaque entrée:
=transpose(FILTER($B$2:$B$401,$C$2:$C$401=row(A1)))
Le résultat final quand il manque des données: