Отображать пустым при ссылке на пустую ячейку в 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:
- Открыть файл"
- Нажмите "Опции"
- Нажмите "Дополнительно"
- В разделе "Параметры отображения" для этого листа "BBBB"
- Снимите флажок "Показывать нулевое значение для ячеек с нулевым значением".
Если связанная ячейка не числовая, вы можете использовать оператор 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;;@