Вернуть пустую ячейку из формулы в Excel - PullRequest
200 голосов
/ 13 июля 2009

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

=IF(some_condition,EMPTY(),some_value)

Я пытался сделать такие вещи, как

=IF(some_condition,"",some_value)

и

=IF(some_condition,,some_value)

и предполагая, что B1 является пустой ячейкой

=IF(some_condition,B1,some_value)

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

РЕДАКТИРОВАТЬ: как было рекомендовано, я пытался вернуть NA (), но для моих целей это тоже не сработало. Есть ли способ сделать это с VB?

РЕДАКТИРОВАТЬ: я создаю рабочий лист, который извлекает данные из других рабочих листов, отформатированный в соответствии с очень специфическими требованиями приложения, которое импортирует данные в базу данных. У меня нет доступа для изменения реализации этого приложения, и оно завершается ошибкой, если значение «» вместо фактически пустого.

Ответы [ 16 ]

4 голосов
/ 22 октября 2016

Этот ответ не полностью касается OP, но были несколько раз, когда я сталкивался с подобной проблемой и искал ответ.

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

Sub clearBlanks()
    Dim r As Range
    For Each r In Selection.Cells
        If Len(r.Text) = 0 Then
            r.Clear
        End If
    Next r
End Sub

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

2 голосов
/ 30 сентября 2013

Для улучшения внешнего вида я использовал следующую работу:

Когда вы выполняете какие-либо вычисления, "" выдаст вам ошибку, поэтому вы хотите рассматривать ее как число, поэтому я использовал вложенный оператор if для возврата 0 вместо "", а затем, если результат равен 0, это уравнение вернет ""

=IF((IF(A5="",0,A5)+IF(B5="",0,B5)) = 0, "",(IF(A5="",0,A5)+IF(B5="",0,B5)))

Таким образом лист Excel будет выглядеть чистым ...

1 голос
/ 29 декабря 2012

Ну, пока это лучшее, что я могу придумать.

Он использует функцию ISBLANK, чтобы проверить, действительно ли ячейка пуста в операторе IF. Если в ячейке есть что-то, A1 в этом примере, даже символ ПРОБЕЛ, , тогда ячейка не будет EMPTY, и в результате будут получены вычисления. Это будет препятствовать отображению ошибок вычислений, пока у вас не появятся числа для работы.

Если ячейка равна EMPTY, то ячейка вычисления не будет отображать ошибки из расчета. Если ячейка равна NOT EMPTY, то будут отображены результаты расчета. Это приведет к ошибке, если ваши данные плохие, страшные #DIV/0!

=IF(ISBLANK(A1)," ",STDEV(B5:B14))

Измените ссылки на ячейки и формулу, как вам нужно.

1 голос
/ 09 мая 2011

Если вы используете функции поиска, такие как HLOOKUP и VLOOKUP, чтобы перенести данные на рабочий лист, поместите функцию в скобки, и функция возвратит пустую ячейку вместо {0}. Например,

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

    =HLOOKUP("Lookup Value",Array,ROW,FALSE)

Это вернет пустую ячейку, если ячейка поиска пуста:

    =(HLOOKUP("Lookup Value",Array,ROW,FALSE))

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

Редактировать

Чтобы получить значение IF (A1 = "",,), возвращаемое как истинное, в одной ячейке должно быть два поиска, разделенных символом &. Самый простой способ - сделать второй поиск ячейкой, которая находится в конце строки и всегда будет пустой.

0 голосов
/ 08 февраля 2017

Google привел меня сюда с очень похожей проблемой, я наконец-то нашел решение, которое соответствует моим потребностям, оно может помочь кому-то еще ...

Я использовал эту формулу:

=IFERROR(MID(Q2, FIND("{",Q2), FIND("}",Q2) - FIND("{",Q2) + 1), "")
0 голосов
/ 04 октября 2011

Ответ положительный - вы не можете использовать функцию = IF () и оставить ячейку пустой. «Выглядит пустым» не то же самое, что пустой. Обидно, что две кавычки спина к спине не дают пустую ячейку, не уничтожая формулу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...