Оператор IF: как оставить ячейку пустой, если условие ложно («» не работает)


125

Я хотел бы написать оператор IF, в котором ячейка остается пустой, если условие FALSE. Обратите внимание, что если следующая формула введена в C1 ( для которой условие ложно ), например:

 =IF(A1=1,B1,"")

и если C1 проверяется на пустоту или неиспользование =ISBLANK(C1), это вернется FALSE, даже если C1 кажется пустым. Это означает, что =IF(A1=1,B1,"")формула технически не оставляет ячейки пустыми, если условие не выполняется.

Есть какие-нибудь мысли о том, как этого добиться? Спасибо,


2
Это потому, что это не пусто. В нем есть формула. Попробуйте это = C1 = "" или если вы хотите стать действительно сумасшедшим = IF (OR (C1 = "", ISBLANK (C1)), TRUE, FALSE)
Stepan1010

2
@ Stepan1010 Нет необходимости , чтобы получить , что с ума , потому что OR(C1="",ISBLANK(C1))эквивалентно.
Museful

1
Вот способ получить истинный пустой бланк, если условие выполнено: stackoverflow.com/a/39351425/1903793
Przemyslaw

Ответы:


42

Попробуйте вместо этого

=IF(ISBLANK(C1),TRUE,(TRIM(C1)=""))

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

Посмотрите этот пост, чтобы узнать о некоторых других вариантах.

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

Чтобы отразить комментарии и то, что вы в итоге сделали: вместо оценки "" введите другое значение, например 'deleteme', а затем ищите 'deleteme' вместо пробелов.

=IF(ISBLANK(C1),TRUE,(TRIM(C1)="deleteme"))

Что ж, проблема для меня не в результатах «пустого теста», как говорят, а в следующем: я применяю if statementк всей строке, а затем я хотел бы использовать Go To -> Special -> Blanksдля удаления пустых ячеек из строки, то есть ячейки, для которых условие было ложным. Однако Go toон не обнаруживает пустых ячеек в моей строке, в частности, из-за этой проблемы мой оператор IF не возвращает пустые ячейки по отдельности. Поэтому мне нужно изменить мой оператор IF, чтобы он должным образом возвращал пустые ячейки.
Mayou

4
Если вы все равно собираетесь их удалить, можете ли вы вернуть другое значение (например, «deleteme»), а затем искать это значение в другой подпрограмме.
Portland Runner

1
Спасибо за чаевые! Именно это я и сделал! Я пробовал = IF (A1, B1, NA ()), использовал Go To -> Special -> Formula -> Errorsи успешно удалил ячейки, которые не удовлетворяют условию! Еще раз спасибо за совет!
Mayou

66

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

Мне не нравится ISBLANK, потому что он не будет видеть ячейки, в которых есть только ""пробелы. Вместо этого я предпочитаю СЧИТАТЬПУСТОТЫ, который будет считаться ""пустым, поэтому в основном =COUNTBLANK(C1)>0означает, что C1 пуст или имеет "".

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


3
Это =COUNTBLANK(C1)>0действительно трюк! у ISBLANK()меня не работало. Thks!
StinkyCat

1
Любое число> 0 оценивается как TRUEв контексте IFоператора, поэтому вы можете просто не заменять IF(COUNTBLANK(C1), .... )его >0, просто чтобы сделать вещи чище.
Tom Auger

Вот способ получить истинный пустой бланк в качестве результата формулы: stackoverflow.com/a/39351425/1903793
Przemyslaw

19

Хотел добавить, что есть еще одна возможность - использовать функцию na().

например =if(a2 = 5,"good",na());

Это заполнит ячейку номером N / A, и если вы нанесете столбец на диаграмму, данные не будут отображены. Я знаю, что он не «пустой» как таковой, но это еще одна возможность, если у вас есть пустые строки в ваших данных и ""это допустимый вариант.

Кроме того, при count(a:a)этом не будут учитываться ячейки, для которых установлено значение «н / д».


2

Если вы хотите использовать феноменальную (с формулой) пустую ячейку для выполнения арифметической / математической операции, все, что вам нужно сделать, это использовать эту формулу:

=N(C1)

предполагая, что C1 - "пустая" ячейка


1

Вы можете попробовать это.

=IF(A1=1,B1,TRIM(" "))

Если вы поместите эту формулу в ячейку C1, вы можете проверить, пуста ли эта ячейка в других ячейках.

=ISBLANK(C1)

Вы должны увидеть ИСТИНА. Я пробовал в Microsoft Excel 2013. Надеюсь, это поможет.


0

Я обнаружил, что это обходное решение, похоже, помогает:

Измените исходную формулу:

=IF(A1=1,B1,"filler")

Затем выберите столбец, найдите и замените «наполнитель» ни на что. Ячейки, которые вы хотите сделать пустыми / пустыми, на самом деле пусты, и если вы протестируете с «ISBLANK», будет возвращено ИСТИНА. Не самый элегантный, но быстрый и работает.


Это не сработает, поиск и замена заменит наполнитель в формуле, оставив те же проблемы, что и раньше.
ChrisM

0

Самое простое решение - использовать условное форматирование, если оператор IF возвращает false, чтобы изменить шрифт ячейки результатов на любой цвет фона. Да, технически ячейка не пуста, но вы не сможете увидеть ее содержимое.


Можно очистить ячейку с помощью оператора if. Хотя ваше решение осуществимо, это не лучший подход.
Мэтт

0

Это должно работать (модификация выше, обходной путь, а не формула)

Измените исходную формулу: = ЕСЛИ (A1 = 1, B1, "наполнитель")

Поместите фильтр в таблицу, выберите только «заполнитель» в столбце B, выделите все ячейки с «заполнителем» в них, нажмите удалить, удалить фильтр


Я почему-то чувствую, что OP не хотел этого. Похоже, ему нужна была формула. Вы говорите, что это не формула, но все же.
ZygD

0

Вы можете сделать что-то вроде этого, чтобы показать пустое пространство:

=IF(AND((E2-D2)>0)=TRUE,E2-D2," ")

Внутри ifперед первой запятой находится условие, затем результат и возвращаемое значение, если trueи последнее значение как пустое, если условиеfalse


0

Формула в C1

=IF(A1=1,B1,"")

либо дает ответ «» (что не считается пустым), либо содержимое B1.

Если вы хотите, чтобы формула в D1 показывала ИСТИНА, если C1 равно "", и ЛОЖЬ, если в C1 есть что-то еще, используйте формулу

=IF(C2="",TRUE,FALSE)

вместо ISBLANK


0

Вот что я делаю

=IF(OR(ISBLANK(AH38),AH38=""),"",IF(AI38=0,0,AH38/AI38))

Используйте условие ИЛИ OR (ISBLANK (cell), cell = "")


0

Я думаю, все, что вам нужно сделать, это установить значение условия NOT TRUE, чтобы оно отображало любую ошибку, а затем вы фильтруете ошибки IFNA().

Вот как должна выглядеть ваша формула =ifna(IF(A1=1,B1,NA()))

Вот лист, который возвращает пробелы из условия if: https://docs.google.com/spreadsheets/d/15kWd7oPWQmGgYD_PLz9YpIldwnKWoXPHtHQAT3ulqVc/edit?usp=sharing


-2

Чтобы проверить данные в столбце A для пробелов

Шаг 1: Шаг 1: B1 = isblank (A1)

Шаг 2: Перетащите формулу для всего столбца, скажем, B1: B100; Это возвращает Ture или False от B1 до B100 в зависимости от данных в столбце A

Шаг 3: CTRL + A (выбрать все), CTRL + C (скопировать все), CRTL + V (вставить все как значения)

Шаг 4: Ctrl + F; Функция поиска и замены Find «False», Replace « оставить это пустое поле »; Найти и заменить ВСЕ

Вот так, чувак!


-3

Вместо "" используйте 0. Затем используйте условное форматирование, чтобы окрасить 0 в цвет фона, чтобы он выглядел пустым.

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


2
Я не думаю, что это удовлетворительный ответ, поскольку теперь в исходных данных электронной таблицы будет 0. Экспорт, копирование / вставка или любая другая задача, связанная с данными, не будет правильной со всеми этими 0.
Jeff Brateman

это плохая идея, потому что 0 имеет проблемы с фильтрацией по числам. в противном случае 0 может быть обычным и правильным значением. тогда как распознать между хорошим 0 и "пустым" 0? Я предлагаю вам удалить этот ответ :)
Znik 07

-3

Это должно работать: = IF (A1 = 1, B1)

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


2
Excel возвращает значение первого аргумента (FALSE), когда условие оценивается как ложное, а третий аргумент не существует. К сожалению, это не работает.
Eagle

2
Был уверен, что тестировал это, но он не воспроизводится. Итак, вы правы, этот ответ совершенно неверен. Лучше всего удалить его, чтобы сэкономить время людей?
Хизер Старк,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.