2

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

На листе назначения пустые ячейки показывали 0, а вытекший текст исчезал.

Подавление нулей в параметрах Excel не устранило проблему, похоже, сама ссылка в ячейках назначения останавливает перенос.

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

Кто-нибудь знает обходной путь, чтобы заставить ячейку назначения течь, если исходная соседняя ячейка пуста (то есть значение ссылки возвращает 0)?

Или (второй вариант), чтобы заставить выбранные ячейки назначения течь независимо от содержимого соседних ячеек?

2 ответа2

0

Я в значительной степени согласен с другим ответом - это не то, что Excel делает изначально.  У меня, однако, есть несколько предложений:

I. Необычные функции листа

На листе назначения,

  • положить =IF(A1<>"", LEFT(A1,5), "") в первую ячейку,
  • положить =IF(B1<>"", LEFT(B1,5), MID(A1,6,5)) во вторую ячейку,
  • вставьте =IF(C1<>"", LEFT(C1,5), IF(B1<>"", MID(B1,6,5), MID(A1,11,5))) в третью ячейку,
  • и т.п.

заменяя A1 , B1 , C1 и т. д. ссылками на исходный лист.  Т.е. вы будете делать текст (перетекание)«вручную».  Это будет выглядеть отвратительно, если вы не используете шрифт постоянной ширины, такой как Courier или Consolas, и не отрегулируете ширину столбцов так, чтобы в выбранном шрифте была ширина 5 символов (или 5, чтобы соответствовать ширине столбцов).  Если вы хотите, чтобы ширина столбцов была разной, это становится более сложным.

Если вы хотите, чтобы текст был перенесен, когда он не может переполниться, это становится намного сложнее.

II. VBA

Или:

  1. Откажитесь от идеи использования способности Excel связывать одну ячейку с другими.  Определите подпрограмму VBA для копирования исходного листа на целевой лист. 
  2. Напишите подпрограмму VBA, чтобы сделать то, что предлагает другой ответ - Для каждой ячейки на листе назначения посмотрите на соответствующую ячейку на исходном листе.  Если исходная ячейка пуста, установите соответствующую ячейку назначения пустой.  Если исходная ячейка не пуста, установите в соответствующей целевой ячейке ссылку на исходную ячейку.

Возможно, вы захотите запускать любой из них каждый раз, когда вы меняете исходный лист; или вы можете сделать это по требованию.  Вы должны подумать о том, как обрабатывать исходные ячейки, которые оцениваются как пустую строку, не будучи пустыми; например, они содержат ="" или что-то вроде =IF(Q42>=100, "red hot", "") .

Мое личное мнение: вариант 2 лучше.


PS Возможно, вы захотите посмотреть на пустое отображение при ссылке на пустую ячейку в Excel, если вы еще этого не сделали.  AFAIK, он не дает прямого ответа на ваш вопрос, но его обсуждение связанных тем может быть полезным для вас.

0

Я думаю, что @ fixer1234 описал это правильно,

Текст только течет в пустых ячейках. Пусто не включает 0, пробел или содержит формулу, которая приводит к пустому, ноль, "" или что-то еще.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .