Возвращение нуля, когда указанная ячейка пуста (Microsoft Excel)
Если у вас есть формула на листе, а ячейка, на которую ссылается формула, пуста, формула по-прежнему возвращает нулевое значение. Например, если у вас есть формула = A3, то формула возвращает содержимое ячейки A3, если ячейка A3 не пуста. В этом случае формула возвращает нулевое значение.
Похоже, это связано с идеей о том, что формула не может возвращать пустое значение, когда «пустое» используется как синоним «пусто».
Однако вы можете немного расширить формулу, чтобы она возвращала пустую строку. Вместо использования = A3 в качестве формулы вы должны использовать следующее:
=IF(ISBLANK(A3),"",A3)
В этой формуле используется ISBLANK, который возвращает либо True, либо False, в зависимости от того, является ли указанная ячейка (A3) пустой или нет. Затем функция ЕСЛИ возвращает пустую строку («»), если A3 пуст, или использует значение из A3, если A3 не пуст.
Независимо от того, что возвращает формула, вы все равно можете использовать ее результат в других формулах, и он будет работать нормально. Даже если он возвращает пустую строку, он все равно обрабатывается другими формулами, как если бы он содержал ноль.
В областях, где обработка ячейки, как если бы она содержала ноль, может быть проблематичной (например, когда вы наносите на график результаты формулы), вы можете немного изменить формулу, как показано здесь:
=IF(ISBLANK(A3),NA(),A3)
Эта формула возвращает ошибку # N / A, если A3 пуст. Эта ошибка распространяется на другие формулы, которые ссылаются на эту формулу, но ошибка # N / A полностью игнорируется при построении диаграммы.
Хотя приведенные выше решения подходят для большинства людей, некоторым действительно хотелось бы, чтобы целевая ячейка была действительно пустой, если исходная ячейка пуста. Например, вы можете захотеть, чтобы ячейка B7 была пустой, если ячейка A3 пуста. Если вы поместите формулу в ячейку B7 (как уже обсуждалось), тогда ячейка B7 не будет пустой — она содержит формулу.
Если это ваша цель — истинная «пустота», то вы можете достичь ее только с помощью макроса. Макрос должен будет проверить, была ли изменена исходная ячейка. Если это так, то все, что находится в источнике, необходимо скопировать в целевую ячейку.
Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim rMonitor As Range Dim rTarget As Range Set rMonitor = Range("A3") Set rTarget = Range("B7") If Not Intersect(Target, rMonitor) Is Nothing Then rMonitor.Copy rTarget End If Set rMonitor = Nothing Set rTarget = Nothing End Sub
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (2174) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и новее) здесь:
link: / excelribbon-Returning_Zero_When_a_Referenced_Cell_is_Blank [Возвращение нуля, когда указанная ячейка пуста]
.