Excel - заставить столбец «следовать» за вставкой или удалением строки в другом столбце

Excel - заставить столбец «следовать» за вставкой или удалением строки в другом столбце

Трудно объяснить это простыми словами, но вот:

У меня есть два рабочих листа, и на первом листе один из столбцов содержит длинные описания продуктов. Это описание должно содержать не более 15 символов, поскольку оно будет отправлено для использования в базе данных, где длина поля фиксирована.

Поэтому у меня есть второй рабочий лист, который в основном используется для экспериментов с сокращением описаний продуктов, и этот лист просто копирует весь столбец описания продукта (из основного рабочего листа) в, скажем, столбец B с количеством символов =LEN в столбце C... а затем в столбце DI можно экспериментировать с различными формулировками, пока количество символов из =LEN в столбце E не станет больше 15 (затем это автоматически копируется обратно в столбец под названием «Сокращенное название» на основном листе).

Проблема в том, что если строка вставляется или удаляется на основном листе (предположим, что это изменение было сделано в строке 10), столбец B на втором листе отражает это изменение, поскольку он просто копирует все, что находится на основном листе, но теперь в столбце B10 теоретически будет отображаться новое название продукта в соответствии с тем, что было вставлено/удалено на основном листе, но в столбце D10 по-прежнему будет отображаться ранее набранное сокращенное слово, соответствующее тому, что было ранее в столбце B10, поскольку оно не имеет никакой связи с изменениями, внесенными в столбец B в целом.

Естественно, в электронной таблице, содержащей несколько тысяч строк с товарами, такую ​​рассинхронизацию невозможно устранить вручную.

Есть ли способ сохранить какую-то связь между столбцами, так что после того, как они будут скреплены вместе, они будут следовать друг за другом, если это имеет смысл? Почти как постоянная группировка — так, если вся строка удаляется или вставляется в исходный лист, та же строка вставляется или удаляется на втором листе (хотя в моем случае этот второй лист только отслеживает и копирует одну строку из исходного листа).

Надеюсь, все это достаточно понятно для получения советов о том, с чего начать исследование этого вопроса.

Спасибо

решение1

Ну, это длинный вопрос/объяснение, ответ, похоже, будет намного короче.

Чтобы сохранить ячейку, ссылающуюся на определенную другую ячейку, и не допустить изменений в исходном местоположении, необходимо «заблокировать» ссылку на строку (или столбец).

Если ваша ссылка D10даже такая простая, как в , =D10вы можете изменить ее на , =D$10чтобы заблокировать номер строки, чтобы он не изменялся, даже если данные перемещаются, D10например, из-за вставки строки над ней.
С одной оговоркой: источник ссылки НЕ ДОЛЖЕН находиться на том же листе!
Это сложнее, чем здесь описано...

То же самое касается столбцов, поэтому =$D10изменение столбца будет остановлено, и, конечно, =$D$10будет остановлено изменение ссылки на столбец или строку.

Если вы редактируете формулу и хотите, чтобы $присутствовали знаки -, просто нажмите F4один раз. Если вы нажмете его несколько раз, вы увидите, как он изменит "стопоры" во всех возможных комбинациях.


То же самое немного отличается в LibreOffice: удерживайте AltGr(правый alt) при нажатииF4

Связанный контент