web-dev-qa-db-ja.com

Googleスプレッドシート:複数のURLの複数のImportXML結果を1つの列に結合するにはどうすればよいですか?

Web上のさまざまなページからデータのリストを取得したいのですが、IMPORTXMLを使用して実行しています。

列DにURLのリストがあると仮定します。

URLによっては、結果の長さが異なる場合があり、それらをすべて1つの連続した列に配置したいと考えています。

A1で、式

_={IMPORTXML(D1, xpath);IMPORTXML(D2, xpath)}
_

D1とD2の2つのURLで機能ですが、D列にもっと多くのURLがリストされている場合は、これをオフにできるようにしたいと思います。

約10個のURLから始めて、後で追加します。ルックアップを実行するためのシートを構築するために、複数の列の複数のxpathを使用してこれを実行します。

_D:D_を参照できるようにしたいのですが、ARRAYFORMULA()を使用してそれを試しました。次に例を示します。

_=ARRAYFORMULA(IMPORTXML(D:D, xpath))
_

うまくいきませんでした。列の各要素に対してIMPORTXMLを実行すると思いました。 D1のURLのみが含まれていました。

最初の式を展開してDのすべての行に対してIMPORTXMLを繰り返し続ける必要がなく、後でURLを追加するときに、配列を拡張し続ける必要がある賢明なオプションを期待しています。

1
MarkS

すべてのGoogleスプレッドシート関数がArrayFormulaで機能するわけではありません。インポート関数(IMPORTDATA、IMPORTHTML、IMPORTRANGE、IMPORTXML)がこの種の関数であるように見えます。同様の質問 https://webapps.stackexchange.com/a/89290/8816 同様の質問への回答 arrayformulaでのimportdataの使用

その他の関連する質問

1
Rubén