Импорт ссылок + якорей из URL в 1 строку - PullRequest
0 голосов
/ 12 января 2020

Я пытаюсь импортировать до 3 ссылок и их якорей с заданного URL-адреса и размещать их в 1 строке следующим образом:

| ссылка 1 | якорь 1 | ссылка 2 | якорь 2 | ссылка 3 | якорь 3

Пока я выполнил это:

1-й ряд:

| ссылка 1 | пустой столбец | ссылка 2 | пустой столбец | ссылка 3 | пустой столбец |

с использованием:

=SPLIT(TEXTJOIN(",,",TRUE,ARRAY_CONSTRAIN(IMPORTXML(H5,"//a[contains(@href, '"&$E$1&"')]/@href"),3,1)),",",TRUE,FALSE)

2-й ряд:

| пустой столбец | якорь 1 | пустой столбец | якорь 2 | пустой столбец | anchor 3 |

с использованием:

=SPLIT(TEXTJOIN(",,",TRUE,array_constrain(importxml(H5,"//a[contains(@href, '"&$E$1&"')][1]"),3,1)),",",TRUE,FALSE)

H5 здесь содержит URL-адрес для импорта, а E1 - это домен, только для которого следует импортировать ссылки, как показано в фиктивной таблице .

Мне действительно нужно использовать только 1 строку, чтобы получить желаемый результат.

Кто-нибудь может помочь?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 12 января 2020

Попробуйте:

=split(arrayformula(join(",",ARRAY_CONSTRAIN(IMPORTXML(H5,"/html/body//a[contains(@href,'"&$E$1&"')]/@href"),3,1)&","&ARRAY_CONSTRAIN(IMPORTXML(H5,"/html/body//a[contains(@href,'"&$E$1&"')]/text()"),3,1))),",")

Хитрость заключается в том, чтобы сначала объединить два ограниченных массива, используя &","&. arrayformula + join гарантирует, что сначала для каждой строки элементы будут объединены. И затем все строки объединяются.

Наконец, вы разделяете их, и они получаются аккуратно.

Чтобы лучше понять, как это работает, посмотрите вывод:

=arrayformula(ARRAY_CONSTRAIN(IMPORTXML(H5,"/html/body//a[contains(@href,'"&$E$1&"')]/@href"),3,1)&","&ARRAY_CONSTRAIN(IMPORTXML(H5,"/html/body//a[contains(@href,'"&$E$1&"')]/text()"),3,1))

PS: эта формула использует /text() вместо [1] для извлечения якорей.

0 голосов
/ 25 февраля 2020

Решена проблема привязки ссылок в том же абзаце следующим образом:

=SPLIT(ARRAYFORMULA(JOIN(",",ARRAY_CONSTRAIN(IMPORTXML(H5,"/html/body//a[contains(@href,'"&$E$1&"')][position()<4]"),3,1)&","&ARRAY_CONSTRAIN(IMPORTXML(H5,"/html/body//a[contains(@href,'"&$E$1&"')]/@href"),3,1))),",")
...