У меня есть электронная таблица Sheets, в которой много ячеек, в которых используется настраиваемая функция, которая вызывает IMPORTHTML и анализирует результаты. В других вычислениях на листе используются значения, возвращенные из этих ячеек настраиваемых формул. Как и ожидалось, при вычислении ячеек настраиваемых формул отображается сообщение об ошибке «Загрузка данных ...». Я не могу доверять результатам зависимых вычислений, пока не завершатся операции загрузки данных. Есть ли какой-нибудь хороший способ узнать, когда все операции загрузки данных в диапазоне завершены?





Допустим, ошибки «Загрузка данных» можно найти на Листе 1, который состоит из столбцов A – Z и строк 1–1000. В Sheet2! A1 вы можете поместить =IF(COUNTIF(Sheet1!A:Z,"#Loading Data..."),"Loading","Done"). (Замените Z в A: Z последним столбцом.) Если какие-либо ячейки в Sheet1 возвращают «#Loading Data ...», тогда counttif посчитает их и вернет «Loading»; иначе он вернет «Готово».
(Примечание: сообщение об ошибке именно то, что я использовал? Я не могу проверить это в данный момент и не уверен, что это именно результат)
попробуйте IF(IsError(a:Z),"Not Ready Yet","Ready")
Это сработало для меня:
=COUNTIF(B1:B565,"<>*")
для подсчета количества ячеек, демонстрирующих "Loading...", при использовании функции таблицы Google =IMPORTXML(). Например, в одной конкретной ситуации у меня было 565 ссылок в первом столбце и формула =IMPORTXML(A1,"//h2[@class='margin-bottom-50']") в столбце 2, и я поместил формулу выше в D1. Я дважды проверил, перетащив = countif (B1, "<> *") вниз в столбец 3, чтобы визуально проверить, а затем с помощью = SUM () сложил все единицы в этом столбце.
Я была такая же проблема.
cell1: url
cell2: использует URL-адрес в importdata
cell3: использует cell2 в importdata
Я знаю, что это множество связанных результатов.
Поэтому я протестировал все варианты, которые смог найти.
Судите сами. В анимации я изменяю URL-адрес, чтобы он вызывал новый запрос, и вы могли видеть, как влияют на различные средства проверки при извлечении данных.
Вот запросы для вашего удобства.
=IFNA(E27,"Waiting for data")
=IFERROR(E27,"Waiting for data")
=If(ISERROR(E27),"Waiting for data",E27)
=IF(E27<>"",E27,"Waiting for data")
=COUNTIF(E27,"<>*")
Если у вас их много, возможно, вы захотите избежать перерасчетов (множество HTTP-запросов параллельно). Для этого загляните в https://stackoverflow.com/a/60871673/4752223
Спасибо за помощь, но у меня это не работает. Появляется сообщение об ошибке «Загрузка данных ...», но в ячейке отображается «Загрузка ...». Я пробовал оба, но ни один из них не возвращает истину независимо от состояния. Поскольку мои данные числовые, я использовал функцию countif <> 0 и сравнил ее с количеством ячеек в диапазоне.