Импорт таблиц, заголовок которых содержит слово table - Google Sheets

На страницах этого сайта эти таблицы появляются 1 или 2 раза справа, я хотел бы знать, есть ли способ указать IMPORTXML или IMPORTHTML импортировать таблицы, содержащие слово "table", например: "xxxxxxxxxx table" и "yyyyyyyyyyy table".

Поскольку на странице есть несколько таблиц, если IMPORT объясните, какие таблицы я ищу, им не нужно будет импортировать их все.

Пример страницы:
https://int.soccerway.com/matches/2020/03/03/england/fa-cup/reading-fc/sheffield-united-fc/3221322/

введите описание изображения здесь  введите описание изображения здесь  введите описание изображения здесь

введите описание изображения здесь

Обс .: Страницы изменяют количество таблиц в соответствии с существующими данными, поэтому я не могу использовать что-то фиксированное, например:

=IMPORTHTML("LINK","table",9)
=IMPORTHTML("LINK","table",10)

Ссылка на лист:
https://docs.google.com/spreadsheets/d/1Dmql4y03xaJoh_wU01XoMM4b3ZSpF-biT7-qGXkyt7Y/edit?usp=sharing


person Brondby IF    schedule 26.06.2020    source источник
comment
Я немного волнуюсь, смогу ли я правильно понять вашу цель. Так что, если я неправильно понял вашу цель и мое предложение было не тем направлением, на которое вы рассчитываете, я прошу прощения.   -  person Tanaike    schedule 27.06.2020
comment
Если вы можете взглянуть на обновления, которые я внес в вопрос, теперь я думаю, что он объяснен лучше!   -  person Brondby IF    schedule 27.06.2020
comment
Спасибо за ответ. Для вашего обновленного вопроса я добавил еще одну формулу-образец. Не могли бы вы это подтвердить? Если я неправильно понял ваш вопрос и вы снова не ожидали этого направления, я прошу прощения.   -  person Tanaike    schedule 27.06.2020


Ответы (1)


Я считаю вашей целью следующее.

  • Вы хотите использовать IMPORTXML или IMPORTHTML, когда таблица чемпионата и таблица премьер-лиги существуют в данных HTML.
  • Вы хотите добиться этого, используя встроенные формулы Google Spreadsheet.

Для этого как насчет этого ответа?

В этом ответе я хотел бы предложить следующую последовательность действий.

  1. Получите значения таблицы чемпионата и таблицы премьер-лиги из URL-адреса.
  2. Join the retrieved values with "" and compare it with Championship tablePremier League table.
    • When "Championship table" and "Premier League table" are existing, TRUE is returned.
    • Из данных HTML я подумал, что порядок таблицы чемпионата и таблицы премьер-лиги постоянный.

Примерная формула выглядит следующим образом. URL помещается в ячейку A1.

=IF(TEXTJOIN("",TRUE,IMPORTXML(A1,"//h2/a"))="Championship tablePremier League table",TRUE,FALSE)
  • В этом случае, когда существуют таблица чемпионата и таблица премьер-лиги, возвращается TRUE.

Пример формулы:

Когда используется эта формула, когда существуют таблица чемпионата и таблица премьер-лиги, в качестве образца вы хотите использовать IMPORTXML(A1,"//table/tr"), она становится следующей.

=IF(TEXTJOIN("",TRUE,IMPORTXML(A1,"//h2/a"))="Championship tablePremier League table",IMPORTXML(A1,"//table/tr"),"")
  • URL помещается в ячейку A1.
  • В этом случае, когда таблица чемпионата и таблица премьер-лиги НЕ существуют, значения не отображаются.

Результат:

введите описание изображения здесь

Использованная литература:

Добавлен:

Что касается вашего обновленного вопроса, как насчет следующего ответа?

Из вашего вопроса я подумал, что когда существуют xxxxxxxxxx table и yyyyyyyyyyy table, существуют 2 таблицы. Когда я увидел данные HTML, когда существуют xxxxxxxxxx table и yyyyyyyyyyy table, мне показалось, что существуют таблицы, в которых leaguetable sortable table в качестве значения класса. Я подумал, что это можно использовать в вашей ситуации. Итак, как насчет следующего примера формулы?

Пример формулы:

=IF(AND(REGEXMATCH(INDEX(IMPORTXML(A1,"//h2/a"),1),"table"),REGEXMATCH(INDEX(IMPORTXML(A1,"//h2/a"),2),"table")),IMPORTXML(A1,"//table[contains(@class,'leaguetable sortable table')]//tr"),"")

Результат:

введите описание изображения здесь

Примечание:

  • В этом случае можно использовать =IFERROR(IMPORTXML(A1,"//table[contains(@class,'leaguetable sortable table')]//tr"),""). Об этом, пожалуйста, проверьте это для случая без значений xxxxxxxxxx table и yyyyyyyyyyy table.
person Tanaike    schedule 27.06.2020
comment
Я обновил вопрос, думаю, теперь он лучше объяснен. Еще раз прошу прощения, что вы потратили так много времени на объяснение того, что по моей вине было плохо проиллюстрировано! - person Brondby IF; 27.06.2020