如何在一个单元格中获取 IMPORTXML/IMPORTHTML 结果数据?

How to get IMPORTXML/IMPORTHTML result data in one cell?

使用 Google 表格,像这样从 html table 中抓取:

我想在一个单元格中获取所有行... 像这样:

而且我找不到方法!

预期的结果是在一个唯一的单元格中获取所有 table 数据... 替换列划分,仅用空白 space 并将行转换为简单的文本行。

有什么帮助吗? =(

注意:第一个值并不总是包含“:”字符。 table 中的行数可能会有所不同。

尝试:

=INDEX(SUBSTITUTE(SUBSTITUTE(QUERY(SUBSTITUTE(FLATTEN(QUERY(TRANSPOSE(
 your_formula_here
 ),,9^9)), " ", "×"),,9^9), " ", CHAR(10)&CHAR(10)), "×", " "))

根据之前的答案构建您可以尝试:

=QUERY(TRANSPOSE(ARRAYFORMULA(CONCAT(QUERY(TRANSPOSE(importxml_formula),,9^9),CHAR(10)))),,9^9)

细目解释:

QUERY(TRANSPOSE(importxml_formula),,9^9)

这个returns一个table用原来table中的一行加上列数作为行,结果每一列就是原来table中每一行的数据table.

ARRAYFORMULA(CONCAT(QUERY(TRANSPOSE(importxml_formula),,9^9),CHAR(10))

每一列将附加 CHAR(10),对应一个换行符。

TRANSPOSE(ARRAYFORMULA(CONCAT(QUERY(TRANSPOSE(importxml_formula),,9^9),CHAR(10))))

将 table 转置为 1 列,x 行,最后最后一个 QUERY 将列合并为一个单元格。

示例输出:

更新:

您的 IMPORTXML() 已返回单个单元格,并且由于它们可以被双 space 拆分,您可以改用此公式:

=QUERY(ARRAYFORMULA(CONCAT(TRANSPOSE(SPLIT(IMPORTXML(A1,B1),"  ",,FALSE)),CHAR(10))),,9^9)