19

У меня есть книга Excel 2010, которая содержит несколько отдельных листов. Ячейки на одном из листов связаны с отдельными ячейками на двух других листах в той же книге. Я использую прямую ссылку на ячейку, которая по существу говорит, что любое значение, введенное в конкретную ячейку на одном листе, также заполняет ячейки на двух других листах. Для этого я использовал функцию (=) со ссылкой на ячейку.

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

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

17 ответов17

40

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

=A2 & ""

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

17

Вот три ответа:

1) Позволяю other.cell.reference представлять справочную формулу, которая у вас есть после = (например, Sheet17!$H$42), заменить ссылку на эту ссылку

=IF( other.cell.reference <>"", other.cell.reference , "")

2) Установите формат «Число» связанных ячеек на «Пользовательский»: General;–General; ,

3) В разделе «Параметры Excel», «Дополнительно», в разделе «Параметры отображения для этой таблицы» снимите флажок «Показывать ноль в ячейках с нулевым значением».  Предупреждение: это приведет к исчезновению всех нулей на листе.

4

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

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

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

=IFERROR((A1 & "") * 1,"")

В этом случае A1 можно заменить любой ячейкой, включая другой лист, книгу или INDIRECT().

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

Числовой метод: Stringify значение источника, затем умножьте на 1. Литеральная строка emtpy * 1 = #VALUE. Строка с числовым значением автоматически преобразуется в числовое значение и ошибки не возникает.

2

Есть еще одна хитрость: установите пустую ячейку soucre в формула ="" . Смотрите подробное описание здесь.

2

Я тоже не нашел лучшего решения, чем решение Скотта.

Но в сочетании с подходом отсюда это может быть почти терпимым, я думаю:

http://www.ozgrid.com/Excel/named-formulas.htm

Допустим, у меня есть такая формула

= IFERROR( INDEX(INDIRECT("EsZkouska");
  SMALL(IF((INDEX(INDIRECT("EsZkouska");;1‌​;1)="ČSN721180")*(INDEX(INDIRECT("EsZkouska");;9;1)="RC_P_B");
  ROW(INDIRECT"EsZkouska"))-MIN(ROW(INDIRECT("EsZkouska")))+1;"");1);17;1);"")

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

Я иду, чтобы Вставить> Имя> Определить и в "Имена в книге" я создаю новое Имя "RC_P_B". Затем в поле "Относится к" я копирую свою формулу (без символов {} - это формула массива).

Тогда вы можете использовать формулу Скотта без необходимости повторения всего текста формулы:

 {=IF(RC_P_B<>""; RC_P_B;"---")}

Я считаю, что это лучше, чем копировать всю формулу.

2

Я просто не использую формулу, чтобы преодолеть эту проблему. Все, что я делаю, - это условно форматирую ячейки, чтобы цвет шрифта был белым, если значение ячейки равно 0.

1

Решение для Excel 2010:

  1. Открыть файл"
  2. Нажмите "Опции"
  3. Нажмите "Дополнительно"
  4. В разделе "Параметры отображения" для этого листа "BBBB"
  5. Снимите флажок "Показывать нулевое значение для ячеек с нулевым значением".
1

Если связанная ячейка не числовая, вы можете использовать оператор IF с ISTEXT:

=IF(ISTEXT(Sheet1!A2), Sheet1!A2, "")
1

Я долго искал элегантное решение этой проблемы.

Я использовал формулу = if(a2 = "", "", a2) в течение многих лет, но я нахожу это немного громоздким.

Я попробовал выше предложение = a2 & "", и, хотя оно действительно работает, оно показывает число, которое на самом деле является текстом, поэтому форматирование чисел не может быть применено, и статистические операции не работают, такие как сумма, среднее, медиана и т.д., Поэтому, если это выполнимо числа, которые вы ищете, не соответствуют требованиям.

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

= CELL("содержимое", А2)

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

0
Public Function FuncDisplayStringNoValue(MyCell As Variant) As String

Dim Result As Variant

If IsEmpty(MyCell) Then

   FuncDisplayStringNoValue = "No Value"

Else
   Result = CDec(MyCell)

   Result = Round(Result, 2)

   FuncDisplayStringNoValue = "" & Result

   End If

End Function
0

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

-1

В Office 2013 у меня сработало:

=IF(A2=""," ",A2)

Где на первом наборе цитат нет пробела, а на втором множестве пробел.

Надеюсь это поможет

-1

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

-1

У меня была похожая проблема, и я думаю, что нашел метод для вас. Это исправило мои проблемы.

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

=A1

Однако в столбце A могут быть пустые исходные ячейки, которые должны оставаться пустыми в ссылочных ячейках столбца C, вы можете использовать это и перетащить вниз столбец.

=T(A1)

Что касается форматирования ячеек, ссылка (columnn C) должна быть общей.

-1

Решение:
=IF('Wk1 Data-replace w dt bgn & end'!C2>0, 'Wk1 Data-replace w dt bgn & end'!C2, "")

Объяснение:
Чтобы решить эту проблему, я использовал два набора команд If .

Первая часть команды:
Я сказал ячейке отображать содержимое ячейки ссылки, если ячейка ссылки содержала данные (Excel интерпретирует это как ячейку, значение которой больше 0)

Вторая часть команды:
Я сказал ему, как вести себя, если не было никаких данных; "" означает оставить пустым

Примечание: Wk1 Data-replace w wt bgn & end '!C2 - моя контрольная ячейка.

-1

У меня есть решение, работающее на меня:

IF(cell reference="","",cell reference)

Объяснение:

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

-2

Перейти к формату ячеек.

Затем выберите пользовательский формат и введите следующее:0;-0;;@

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