Диапазон импорта электронных таблиц Google #REF! Ошибка (случайно)

Эта проблема была ненастоящей на некоторое время, просто случается так часто в случайные моменты, ничего не меняется. Я также не знаю, как воспроизвести проблему, но я дам подробное объяснение того, что происходит.

Обычно функция importRange работает просто отлично и выглядит примерно так:

enter image description here

Правильно напечатан текст таблицы. Я использовал эту стратегию в Google Spreadsheets некоторое время.

Каждый раз, как правило, Google Spreadsheets, кажется, ломается, или, по крайней мере, функция importRange делает... и производит что-то вроде следующего:

enter image description here

Google, казалось, время от времени замерзает, а это происходит. Я попытался настроить параметры importRange на! X1: X,! X2: X5, изменив заголовок импортируемого листа и т.д.

В прошлом переход от X: X к! X1: X фиксировал некоторые столбцы, но не всегда все из них. Единственное надежное решение для исправления этого, которое я нашел, - это воссоздание обеих таблиц. Поскольку исходный код (тот, который импортируется), в конечном итоге становится отчетом, я хотел бы избавить своего босса от дополнительных усилий, связанных с несколькими электронными таблицами, и скорее всего исправить это и сделать с ним.

Кто-нибудь знает потенциальную причину этого срыва? Иногда он исправляет себя, иногда это не так. Это случается случайным образом, и только для некоторых электронных таблиц (у меня есть набор из 8 или около того, что все используют importRange, и одновременно не более 2). Поэтому я честно не знаю, откуда это происходит.

Боковое примечание. Google в целом сегодня немного не отвечает на запросы всех своих услуг - мой почтовый сервис в App Engine для Google Apps снизился примерно на полчаса. Может ли ограничение ресурсов/сетевых злоумышленников вызывать подобное поведение в таблицах?

Обновить. Я попытался импортировать в те же данные Таблицы из другой таблицы (т.е. дал функции importRange другую таблицу электронных таблиц). Хотя ключ и диапазон действительны, если импортированы в другую таблицу, в моем оригинале (один полный #REF!) Этот диапазон импортирован неправильно. Это заставляет меня думать, что этот сбой может применяться только к одной Таблице, где любая попытка importRange из любого другого источника не работает.

Ответ 1

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

=IF(ISERROR(ImportRange(SpreadSheet_GUID,"Bookings!p:P")),IF(ISERROR(ImportRange(SpreadSheet_GUID,"Bookings!P:p")),ImportRange(SpreadSheet_GUID,"Bookings!P:P"),ImportRange(SpreadSheet_GUID,"Bookings!P:p")),ImportRange(SpreadSheet_GUID,"Bookings!p:P"))

В принципе, идея состоит в том, чтобы заставить Google повторно использовать варианты исходного адреса (буквы в верхнем/нижнем регистре).

Ответ 2

Проблемы с функцией IMPORTRANGE() были в некотором роде проблемой. За эти годы появилось несколько ошибок, и Google решил найти стабильное решение, поэтому оно работает так, как было разработано.

До тех пор это может помочь вам:

Вместо того, чтобы редактировать ячейку, создавая новую электронную таблицу или делать что-либо еще, чтобы перезагрузить страницу (почти как играть в лотерею), вы можете заставить листы Google автоматически перезагружать функцию автоматически, когда она не загружается:

Оберните функцию IMPORTRANGE(), которая вызывает проблемы с функцией IFERROR(). Таким образом, лист пытается импортировать, и только если он терпит неудачу, он повторяет попытку. Функция может вставляться в несколько попыток подряд.

Вы можете добавить именованные диапазоны к исходным данным (щелкните правой кнопкой мыши-source > define-named-range) для облегчения. Например, вы можете создать 3 разных именованных диапазона для диапазона "J: J". Назовите их "J", "Ja" и "Jay", затем вы вызываете свою функцию IFERROR() в листе, который хотите импортировать:

=IFERROR( IMPORTRANGE( "SheetID","J" ), IFERROR( IMPORTRANGE( "SheetID","Ja" ), IFERROR( IMPORTRANGE( "SheetID","Jay" ), IFERROR( IMPORTRANGE( "SheetID", "'TabName'!J:J" ), IFERROR( IMPORTRANGE( "SheetID", "'TabName'!j:j" )))))

Эта формула будет пытаться импортировать и доставлять ее, если она преуспеет, и если она не будет автоматически повторять попытку в 5 раз подряд, что не гарантирует, что вы добьетесь успеха, но если у вас есть 50% шансов на успех, ваш импорт, вложенный 5 подряд, должен дать вам шанс 96%, что намного лучше. Мой личный опыт был в том, что он не сработал, так как я сделал гнездо IFERROR().

Надеюсь, что это поможет.

Ответ 3

У меня были подобные проблемы, и они были решены, НЕ используя публичные ссылки на электронные таблицы. Я заметил, что ссылки открыты для общего доступа и ссылки из адресной строки при открытии листа si.

Также я заметил некоторые трудности при открытии общих таблиц из других моих учетных записей Google. Мне пришлось повторно разрешить доступ к некоторым таблицам, которые я импортировал.

Извините за мой английский.

Ответ 4

Это действительно так, в моем случае просто Ctrl + X, ожидая секунды, а затем вставляя формулу назад, механизм Sheets повторно импортирует, а затем успешно импортирует. Если вы не можете выполнить эту процедуру вручную, вы должны использовать решение Tim.

Ответ 5

У меня была такая же проблема, и я нашел решение!

  • Уменьшите размер исходного файла

  • Чтобы уменьшить, разделить его и снова указать ссылку на импортный диапазон

Теперь вы сможете увидеть импортированный диапазон!

Если вы считаете, что это не так, шансы могут быть

  • Ваша ячейка занята, поэтому удалите все форматирование и очистите все ячейки перед импортом диапазона.

  • Все еще не работает? Пусть Бог поможет вам!

Ответ 6

Я попытался добавить:

if(ISERROR(importrange... 

и это работает.

Это не означает, что ошибка исчезает, но когда это происходит, вам просто нужно перезагрузить лист и подождать некоторое время, и пусть он сам обновится.

Это гораздо более практично, чем ручная замена большой буквы на маленькую.

Ответ 7

Вот простой обходной путь, который я нашел для этой ошибки:

Я делаю Find-and-Replace ("поиск по формулам") для "=" везде, где есть ошибка importrange (= REF!) (Или только для всего листа), и заменяю все на "#" в порядке чтобы все это было текстом, а не формулой. Затем я делаю еще один поиск и замену в той же области и снова заменяю "#" на "=". Это последовательно решает проблему.

Ответ 8

Я нашел это решение, отлично работает для меня:

В обеих электронных таблицах вставьте уравнение = now() в случайную ячейку, скажем, Z1. В обеих электронных таблицах вставьте функцию = importrange(), которая ссылается на функцию now другой электронной таблицы. Зайдите в настройки вашей таблицы и выберите пересчет на каждую минуту. Я пробовал множество других предложений, в том числе с помощью функции = now(), трюка now URL в этой теме или Apps Script для вставки произвольного текста через заданный интервал, но ничто не заставляло бы importrange обновляться, кроме ручного редактирования исходного кода. простынь.

https://webapps.stackexchange.com/questions/60324/how-can-i-get-google-sheets-to-auto-update-a-reference-to-another-sheet

Ответ 9

Я смог исправить = REF! ошибка при использовании "Правка"> "Найти и заменить"> "Найти" = "Заменить на" # "> Поиск в выбранном диапазоне> Также выполнить поиск в формулах> Найти> Готово. Ошибка исправлена без фактического запуска команды замены.

Ответ 10

Спасибо за все ваши советы. Действительно, замена букв в формуле, кажется, обходит эту проблему.

Это довольно старая проблема, которая все еще сохраняется... Почему Google не работает над ней?

С уважением.

Ответ 11

Похоже, что когда я вынимаю апостроф из заголовка исходного листа, проблема решена. Возможно, удаление любых символов, кроме цифр и букв, также является проблемой для вашей проблемы.