Диапазон импорта электронных таблиц 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
Похоже, что когда я вынимаю апостроф из заголовка исходного листа, проблема решена. Возможно, удаление любых символов, кроме цифр и букв, также является проблемой для вашей проблемы.