Обойти циклическую ссылку в Google-Таблицу

У меня есть таблица Google docs с двумя столбцами: A и B. Значения B - это просто значения из A в другом формате, и у меня есть формула в столбце B, которая выполняет преобразование. Иногда у меня нет значений в формате, но у меня есть их в формате B. Я хотел бы автоматически получить значения в формате в столбце A, добавив формулу, которая выполняет обратное преобразование в столбце A. Это, конечно, порождает круговую ссылку. Есть ли способ обойти это?

7 ответов


Я просто столкнулся с этим, пытаясь настроить формулы для вычисления метрик из моей тренировки.

вместо того, чтобы ссылаться на ваши зависимые ячейки формулы, используйте другие ячейки для хранения фактических (не-формульных) данных и используйте ячейки формулы, чтобы показать свои результаты. К сожалению, обойти круговые ссылки невозможно.


в верхнем меню электронной таблицы google выполните следующие действия:

файл > настройки электронной таблицы

выберите вкладку " расчет "и измените" итеративный расчет " на ON.

Наслаждайтесь :Д.

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

enter image description here


с этой недели Google Sheets объявила о поддержке именно этой функции. Теперь вы можете ограничить количество итераций для круговых ссылок в настройках электронных таблиц: -)


в excel вы можете установить его, чтобы разрешить круговые зависимости и ограничить количество итераций, которые они запускают (обычно 1-желаемый результат).

Я посмотрел и ничего подобного не существует в листах.


Я знаю, что этот пост довольно старый, но я видел его, глядя, чтобы увидеть приложения, вещи.

в листах, вы можете использовать importrange для ссылки на тот же лист и вызова нужного диапазона. Например, вы можете поместить формулу в B1 что это =A1+1 и A1 использовать формулу =importrange(<THIS SHEET ID>,"B1")+1.

возможно, вам придется изначально поместить формулу в A2 а затем переместите его до A1, но это должно сработать.

делать что-то вроде этого по сути, делает второй счетчик, который аккуратен, я думаю?


решается скриптом, который реализует следующий алгоритм

for each row{
   if (A != "" && B == "")
    B = conversionFromA(A);
   if (A == "" && B != "")
    A = conversionFrom(B);}

конечно, у него есть свои недостатки (вы должны вызывать скрипт каждый раз, когда вводите новые данные), но это лучшее решение, которое я нашел


Я бы добавил еще два столбца: источник данных и формат данных. Затем формула в столбце A будет принимать значение из источника данных либо как есть (если формат совпадает), либо преобразуется (если формат не совпадает). Же самое для столбца B.