IMPORTXML
を使用して、基本的に車両在庫フィードファイルを作成しています。
価格がメインのウェブサイトに含まれていない場合に問題が発生します。価格が含まれていないように見える場合、IMPORTXML
はその価格をスキップしており、エラーや何かは含まれていません。また、シート上のその場所にある次の価格が含まれています。
これらのトラックをvin、msrp、価格などで整列しようとしているため、これは問題です。
https://docs.google.com/spreadsheets/d/1KceS3krlbpU2FjQly-tK8N5qiwshIq3rQFQ36WRNV5U/edit?usp=sharing
私のシートで特定の例を示すには、このビン番号:1FTMF1E5XKKE62311
現在、当サイトに記載されている価格はありません。空白のセルやエラーを挿入する代わりに、IMPORTXML
はこの後にリストされているユニットの価格を挿入しています。これにより、これらの車両の価格がWebサイトに掲載されている場合でも、シートの最後に空白の価格のクラスターが作成されます。基本的に、これは最初のスキップされた価格の後でシート全体を捨てます。
現在、インターネットの価格は次のようになっています。
=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']")},"")
エラーハンドラが機能することを期待していましたが、残念ながら機能しませんでした。リストされていない価格がある場合に、インポート注文を破棄しない方法について誰かが何か考えを持っていますか?
何かアドバイスをいただければ幸いです!!
update列を作成してそれを試してみたい場合は、シートの上で誰でも編集できるように変更しました
=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)
編集:不足しているデータを見つける方法を見つけました
元の回答:
データがないのでエラーはありません:IMPORTXML
特定のXpathクエリに対応するすべてのデータを取得し、何もない場合は何も表示しません。
結論:IFERROR
はここでは役に立たない。ただし、次のように_|
_を使用してIMPORTXMLクエリを連結することができます。
_=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....
_
なる
_ =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']
")
_
結果はこのような配列です:
_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
_
データを並べ替えるソリューションを見つけるだけです。
編集:データを再配置するためのソリューション
結果列_B2:B
_の横にあるこの式を_C2
_に入れて展開します=countif(arrayformula(regexmatch(INDIRECT("B2:B"&ROW(B2)),"Ford")),true)
キーワードFord
を使用して新しい車両名ごとにカウンターをインクリメントします。
次に、同じアイデアを使用して、各エントリの配列を作成しました。
_=transpose(FILTER($B$2:$B$401,$C$2:$C$401=row(A1)))
_
データが欠落しているときの最終結果: