В Google Sheets есть функция, в которой, если у вас есть ссылка на ячейку данных в формуле, и вы вырезаете данные из этой ячейки и вставляете их в новом месте, ссылка в формуле обновляется, чтобы указывать на новое местоположение ячейки.
Я хотел бы иметь возможность вырезать и вставлять свои данные без изменения формул.
В прошлом я совершал некоторые отвратительные действия, связанные INDIRECT()
с этой функцией, но кажется, что должен быть более простой способ. Какие-либо предложения?
google-sheets
grahamparks
источник
источник
Ответы:
Запись
=$A$1
также может быть автоматически перемещена, если значение в (скажем)A1
изменено.Единственное верное решение состоит в том, чтобы включить все ваши ссылки
INDIRECT
, например,=INDIRECT("$A$1")
или даже просто=INDIRECT("A1")
.Сложность любого из этих решений заключается в том, что у вас есть много одинаковых формул, например
Обычно вы должны заполнить первое,
=A1
а затем скопировать и вставить (или перетащить вниз, используя автозаполнение), чтобы автоматически заполнить последовательную формулу. Если, однако, первая формула есть=$A$1
или=INDIRECT("A1")
тогда этот трюк не сработает (на самом деле, это то, что$
нужно для предотвращения его автоматического изменения).Если у вас есть много последовательных формул, одно из решений:
=A1
и автозаполнение)=A1
,=A2
...=A99
в и=INDIRECT("A1")
т. Д. Обратите внимание, что у вас есть возможность использовать регулярные выражения при выполнении поиска и замены.источник
С форума Google Docs :
Выберите диапазон ячеек. Затем используйте Ctrl+ C(копировать; это должно поместить ячейки и их формулы в буфер вставки).
Теперь перетащите (наведите курсор мыши на край выделения, пока курсор мыши не превратится в руку; теперь вы можете перетащить) выбранные ячейки в новую позицию.
Вернитесь в исходное верхнее левое положение скопированных ячеек и используйте Ctrl+ V(вставить).
Теперь у вас должно быть два набора формул, которые ссылаются на одни и те же ячейки.
источник
Столкнулся с этим в поисках аналогичной проблемы и в итоге нашел решение для Excel, которое, похоже, отлично работает в таблицах Google.
Для ссылок на ячейки, которые вы не хотите менять при вставке, просто добавьте
$
перед каждой частью.Так
G12
стало бы$G$12
Ячейка из таблицы, которую я использую, которая делает то, что мне нужно, выглядит примерно так:
источник
$
а абсолютные ячейки используются по умолчанию.$G$1&Sheet1!B3&Sheet1!A3&$G$2
мы делаемG1&Sheet1!$B$3&Sheet1!$A$3&G2
.В электронных таблицах Google для вырезания и вставки ячеек без автоматического смещения их формул вы используете Ctrl+ Xдля вырезания (или Ctrl+ Cдля копирования) и Ctrl+ Shift+ Vдля вставки.
Он Shiftсообщает Google Sheets, что нужно оставить ваши формулы в покое.
источник
ctrl
+shift
+v
, он всегда копирует значения, даже если вы делалиctrl
+x
в исходных ячейках.Обойти это так же, как в Excel:
Скопируйте и вставьте данные, а затем вернитесь и удалите их с исходного места.
источник
Cut (вместо Copy), кажется, работает для меня, вероятно, по той же причине, что перетаскивание выбранных ячеек работает - т.е. Это также единственный известный мне способ вставки на другую страницу без изменения формулы.
Если вы пытаетесь сделать копию вместо перемещения, либо используйте метод перетаскивания (копировать перед перетаскиванием), либо сначала скопируйте его в другое место на странице.
источник
Чтобы переместить диапазон ячеек в новое местоположение в Google Sheets:
1. Выберите диапазон ячеек, которые вы хотите переместить
2. Переместите указатель мыши к любому краю выделения, пока курсор не превратится в руку
3. Перетащите ваши ячейки на новое место
Он делает то, что должен - он перемещает их - поэтому вся информация о ячейках останется точно такой же, как и в их исходном местоположении.
пс. Google также проинструктировал это здесь, но они не говорят, что вы можете перетаскивать с любого края, только с верхнего, и именно поэтому мои инструкции лучше! :) Также хорошо отметить, что выбранные ячейки должны быть смежными, чтобы это работало.
источник
Сделайте текстовую копию формулы вместо копии ячейки: используйте мышь, чтобы выделить текст формулы и нажмите CTRL + C. Затем выберите поле назначения и нажмите CTRL + V. Это сохранить формулу
источник
Самый простой способ - просто выбрать все ячейки, которые вы хотите переместить, и перетащить их туда, куда вы хотите. Если в других ячейках есть формулы, которые ссылались на исходное местоположение перемещенных ячеек, справочные формулы автоматически обновятся до нового местоположения перемещенных ячеек. Надеюсь это поможет! (Предполагается, что это работает в Excel, но я сделал это только в Google Sheets).
источник
источник
Я просто нахожу и заменяю все экземпляры '=' на '' (или столько формул, которые пытаюсь скопировать, сколько могу), чтобы превратить все формулы в простой текст. Я копирую и вставляю ячейки, затем добавляю '=' обратно.
Примечание: это, вероятно, не будет работать для огромных листов, так как может иметь непреднамеренные последствия при редактировании других ячеек, но обычно это работает для моих целей.
источник
Вот еще один вариант:
Хотя это кажется длительной процедурой, на практике это всего лишь несколько нажатий клавиш. Кроме того, шаг # 4 является обязательным в моей настройке - без него Sheets будет по-прежнему обновлять расположение ячеек, как если бы это было прямое копирование и вставка. YMMV.
источник
Использование
INDIRECT()
отлично подходит для сохранения абсолютной позиции ссылок после того, как цели были скопированы и вставлены, но проблема в том, что она также сохраняет абсолютную позицию при копировании формулы , что означает, что вы не можете легко расширить формулу, чтобы охватить большую диапазон при его использовании.Решение состоит в том, чтобы объединить
INDIRECT()
сROW()
,COLUMN()
иADDRESS()
программно генерировать положение целевой соты на основе ячейки в формуле.В простейшем случае, например, когда целевая ячейка имеет фиксированный столбец и всегда остается в той же строке, что и формула, это можно сделать следующим образом:
INDIRECT("A"&ROW())
Чтобы ввести динамические смещения из ячейки формулы, вы можете использовать
ADDRESS()
:INDIRECT(ADDRESS(ROW()-1,COL()-4))
На скриншоте ниже формулы в
B1:E1
были расширены до 16 строк ниже, а затем числовая последовательностьA7:A10
была вырезана и вставлена на 6 ячеек вниз. Как вы можете видеть, простейшие формулы автоматически корректировались и десинхронизировались, в то время как простое использованиеINDIRECT()
не экстраполировало должным образом по всем строкам, но две формулы, которые используютINDIRECT()
наряду с программным извлечением местоположений строк и столбцов, смогли сохранить свои ссылки:источник
Вы можете нажимать F4для переключения между различными вариантами абсолютных ссылок, когда курсор находится на ячейке или диапазоне. Это работает на Mac и Windows.
источник