Надежное связывание ячеек Excel

469
physlexic

Есть ли способ связать ячейки, чтобы автоматически обновлялся не только контент, но и формат (заливка, рамка, шрифт и т. Д.)?

Кроме того, есть ли способ, кроме выполнения каждой ячейки отдельно, чтобы пустые ячейки на исходном листе не отображались как 0 на текущем листе? У меня есть большой файл с множеством случайных пустых ячеек, которые я не хочу связывать как 0.

Благодарю.

1
* не только контент обновляется автоматически, но и форматируется * Чем обновляются значения и форматы? макрос? VBA? внешняя прога? * чтобы избежать пустых ячеек в моем исходном листе, чтобы показать как 0 * Показать или сохранить? В первом случае Вы можете использовать условное форматирование для нулей как белое за белым, например ... Akina 5 лет назад 0
@ Акина Извините. Это может быть очень простой вопрос по сравнению с тем, как вы ответили. Ранее я связывал ячейки знаком "=", но это только обновляет содержимое, а не формат. Кроме того, пустая ячейка в источнике будет обновлять текущую как 0. Возможно, я думаю об этом неправильно. physlexic 5 лет назад 0
Ой. Я понимаю «связывание» не как ссылку, а как слияние клеток. Akina 5 лет назад 0
Что ж. Для копирования формата из источника в место назначения Вы можете использовать процедуру Worksheet_Change (когда формула проста - Вы знаете место назначения, но Вам необходимо получить исходный адрес для копирования формата). Чтобы скрыть нулевые значения Вы можете преобразовать формулу '= A1' в '= IF (A1 = 0,' ', A1)'. Конечно, это немного увеличит перерасчет данных ... Akina 5 лет назад 0
Ваш второй вопрос несколько исчерпывающе описан в разделе «Отображать пустое поле при ссылке на пустую ячейку в Excel» (https://superuser.com/q/515932/150988). Scott 5 лет назад 0

2 ответа на вопрос

0
Greg Kaleka

Если вы знаете VBA, вы можете настроить макрос, который запускается при изменении любой из ячеек в диапазоне, и применить такое же форматирование к другому диапазону. Если нет, в зависимости от деталей того, что вы пытаетесь сделать, вы можете использовать условное форматирование, которое применяется к обоим диапазонам. Если уточните, что вам нужно, я обновлю свой ответ.

Что касается пустого / 0 вопроса, вы можете использовать IFи ISBLANKформулу. Например:

=IF(ISBLANK(A1),"",A1) 

вернет пустую строку, если A1 пусто, в противном случае он вернет значение A1.

IsBlank () не будет скрывать нули, полученные из пробелов, скрытых символов и т. Д. Akina 5 лет назад 0
@Akina Извините, но вы совершенно не правы ;-) `= A1` неправильно возвращает ноль только тогда, когда` A1` пусто (т. Е. Нет формулы, нет только пробелов, нет ничего в `A1`). `= ISBLANK (A1)` возвращает «ИСТИНА», только если «A1» не заполнено. Поэтому `= IF (ISBLANK (A1)," ", A1)` преобразует все неправильно возвращенные нули в нулевые строки. * "только пробел, скрытые символы и т. д." * ** не ** преобразуются в нули, поэтому для ISBLANK () ** не нужно ** беспокоиться о том, чтобы "скрыть" их. (Поскольку они никогда не существовали, чтобы начаться с ;-)) robinCTS 5 лет назад 0
0
robinCTS

Как объяснили другие пользователи, единственный способ иметь «связанную» ячейку, которая автоматически обновляет свой формат при изменении формата исходной ячейки, - это использовать VBA.

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

Всего четыре простых шага:

  1. Выберите диапазон источника
  2. копия
  3. Выберите верхнюю левую ячейку диапазона назначения
  4. Вставить как ссылку на изображение ( Home → Clipboard → Paste → As Picture → Paste Picture Link)


Следующие скриншоты показывают, как создать ссылку на изображение D11связано D2:E3и как это выглядит, когда картина выключенной:

Screenshot during picture link creation Screenshot after picture link creation

Заметки:

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

Тем не менее, есть обходной путь для этого. Просто напрямую свяжите ячейки под картинкой с источником. В моем примере выше, вы вводите =D2в ячейку D11и ctrl-enter / fill / copy-paste эта формула D11:E12.

Единственная проблема, связанная с этим обходным приемом, заключается в том, что пустые исходные ячейки будут отображаться на рисунке как 0s, если для заливки исходной ячейки установлено значение No Fill.

Чтобы обойти эту 0проблему, либо установите цвет шрифта целевых ячеек на цвет заливки (используйте белый, чтобы не было заливки), либо, если вы на самом деле хотите, чтобы пункт назначения был «пустым», используйте формулу =IF(D2="","",D2)вместо =D2.

Похожие вопросы