Отображать пустым при ссылке на пустую ячейку в Excel 2010

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

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

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

17 ответов

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

=A2 & ""

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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;"---")}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

=A1

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

=T(A1)

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

Решение:
=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 - моя контрольная ячейка.

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

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

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

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

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

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

Объяснение:

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

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

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

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

Другие вопросы по тегам