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

125

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

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

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

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

Mayou
источник
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"))
Portland Runner
источник
Что ж, проблема для меня не в результатах «пустого теста», как говорят, а в следующем: я применяю 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. После чего вы можете снять фильтр.

tigeravatar
источник
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)этом не будут учитываться ячейки, для которых установлено значение «н / д».

user3791372
источник
2

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

=N(C1)

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

Ник
источник
1

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

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

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

=ISBLANK(C1)

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

Юго Гаутомо
источник
0

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

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

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

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

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

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

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

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

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

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

гость XL
источник
Я почему-то чувствую, что 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 = "")

Talha
источник
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 будут вести себя одинаково в большинстве ситуаций, это может решить проблему.

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

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

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

Хизер Старк
источник
2
Excel возвращает значение первого аргумента (FALSE), когда условие оценивается как ложное, а третий аргумент не существует. К сожалению, это не работает.
Eagle
2
Был уверен, что тестировал это, но он не воспроизводится. Итак, вы правы, этот ответ совершенно неверен. Лучше всего удалить его, чтобы сэкономить время людей?
Хизер Старк,