Връщане на празна клетка от формула в Excel

Трябва да върна празна клетка от формула на 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)

но нито една от тези клетки не изглежда празна, предполагам, че е резултат от формула. Има ли някакъв начин да се запълни клетка, ако и само ако е изпълнено някакво условие, а в противен случай клетката да остане наистина празна?

EDIT: както беше препоръчано, опитах да върна NA(), но за моите цели това също не работи. Има ли начин да се направи това с VB?

EDIT: изграждам работен лист, който извлича данни от други работни листове, форматирани според много специфичните изисквания на приложение, което импортира данните в база данни. Нямам достъп да променям имплементацията на това приложение и то се проваля, ако стойността е "", вместо да е действително празна.

Excel не разполага с никакъв начин да направи това.

Резултатът от формула в клетка в Excel трябва да бъде число, текст, логическа стойност (булева) или грешка. Не съществува тип стойност на формула в клетка от типа "празен" или "празен".

Една от практиките, които съм виждал да се прилагат, е да се използват NA() и ISNA(), но това може да реши проблема ви, но може и да не го реши, тъй като има голяма разлика в начина, по който NA() се третира от други функции (SUM(NA()) е #N/A, докато SUM(A1) е 0, ако A1 е празна).

Коментари (6)
Решение

Тогава ще трябва да използвате VBA. Ще извършите итерация на клетките в диапазона, ще проверите условието и ще изтриете съдържанието им, ако то съвпада.

Нещо като:

For Each cell in SomeRange
  If (cell.value = SomeTest) Then cell.ClearContents
Next
Коментари (11)

Опитайте да оцените клетката с помощта на LEN. Ако тя съдържа формула, LEN ще върне 0. Ако тя съдържа текст, ще върне стойност, по-голяма от 0.

Коментари (2)