Возвращение нуля, если указанная ячейка пуста

Если у вас есть формула на листе, а ячейка, на которую ссылается формула, пуста, формула по-прежнему возвращает нулевое значение. Например, если у вас есть формула = 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») Если не пересекается (Target, rMonitor) Is Nothing, то rMonitor.Copy rTarget End Если установлено rMonitor = Nothing Set rTarget = NothingEnd Sub

Источник: frestage.ru

Бытовой вопрос