Jeg skal returnere en tom celle fra en Excel-formel, men det ser ud til, at Excel behandler en tom streng eller en henvisning til en tom celle anderledes end en ægte tom celle. Så jeg har i det væsentlige brug for noget som
=IF(some_condition,EMPTY(),some_value)
Jeg har prøvet at gøre ting som f.eks.
=IF(some_condition,"",some_value)
og
=IF(some_condition,,some_value)
og under forudsætning af at B1 er en tom celle
=IF(some_condition,B1,some_value)
men ingen af disse ser ud til at være ægte tomme celler, jeg gætter på, fordi de er resultatet af en formel. Er der nogen måde at udfylde en celle på, hvis og kun hvis en eller anden betingelse er opfyldt, og ellers holde cellen virkelig tom?
EDIT: som anbefalet prøvede jeg at returnere NA(), men til mit formål virkede det heller ikke. Er der en måde at gøre dette på med VB?
EDIT: Jeg er ved at opbygge et regneark, der trækker data ind fra andre regneark, som er formateret efter de meget specifikke krav fra et program, der importerer dataene til en database. Jeg har ikke adgang til at ændre implementeringen af dette program, og det mislykkes hvis værdien er "" i stedet for faktisk tom.
Excel har ikke nogen måde at gøre dette på.
Resultatet af en formel i en celle i Excel skal være et tal, tekst, logisk (boolean) eller en fejl. Der findes ingen formelcelleværditype af typen "tom" eller "blank".
En praksis, som jeg har set fulgt, er at bruge NA() og ISNA(), men det kan eller kan ikke rigtig løse dit problem, da der er stor forskel på, hvordan NA() behandles af andre funktioner (SUM(NA()) er #N/A, mens SUM(A1) er 0, hvis A1 er tom).
Du bliver nødt til at bruge VBA
, så. Du skal iterere over cellerne i dit område, teste betingelsen og slette indholdet, hvis det passer.
Noget i stil med:
For Each cell in SomeRange
If (cell.value = SomeTest) Then cell.ClearContents
Next