Eine leere Zelle referenzieren - sollte wie eine leere Zelle wirken

2

Ich habe eine Tabelle, die auf eine leere Zelle auf einer anderen Registerkarte verweist. Ich benutze das iif (isblank (thatcell), "", thatcell). Dies funktioniert einwandfrei, bis ich diese Zelle zum Berechnen benutze. Wenn ich diese Zelle einbinde, um die Standardabweichung zu berechnen (oder sogar counta ()), wird die leere Zelle als Null behandelt. Ich frage mich, ob es einen anderen Weg gibt. Es ist am besten, wenn Excel eine Funktions-leere Zelle () an Ort und Stelle erstellen kann von "". Kann mir jemand weiterhelfen?

user310927
quelle

Antworten:

0

Leerzeichen sind für jede Formel Nullen, es sei denn, Leerzeichen werden ausdrücklich ausgeschlossen. Am besten verwenden Sie eine benutzerdefinierte Funktion in VBA für Ihr Projekt. So etwas wie:

Sub SumNonBlanks()
 For each c in range("A:A")
  If c.value <> "" then
  'Enter them into an array
  End if
 Next
'Do stuff to array
End Sub

Eine Problemumgehung besteht darin, Nullen in Ihrer Formel auszuschließen. Dies ähnelt der =SUM(if(A1:A10 <> 0,A1:A10))Eingabe als Matrixformel.

Matrixformeln werden eingegeben, indem Sie sie eingeben und dann drücken ctrl shift enter.

Der umstrittene Teil : Wenn Sie jedoch Nullen einfügen müssen, müssen Sie komplexer werden, wie bei einer Array-Formel.=SUM(IF(Not(Isblank(... =sumif(not(isblank(...

Raystafarian
quelle
Das Problem ist nicht, dass Leerzeichen von Formeln als Null behandelt werden (dies ist nicht immer der Fall), sondern dass eine von "" erstellte leere Textzeichenfolge nicht leer ist. Ohne Nullen funktionieren würde, es sei denn , andere Nullen müssen einbezogen werden, aber die = SUMME (WENN (Not (ISBLANK (... Lösung würde nicht funktionieren, weil die Zelle nicht leer ist.
toryan
@toryan Du liegst ein bisschen falsch. Führen Sie einen einfachen VBA aus cells(1,1)=""und führen Sie einen =isblank(a1)- wie Sie sehen werden
Raystafarian-28.03.14
Das ist seltsam. Wenn Sie = "" in Zelle A1 eingeben, dann = ISBLANK (A1) in A2, wird FALSE zurückgegeben, was angibt, dass A1 nicht leer ist. Möglicherweise ist das Verhalten bei der Eingabe einer Null-Textzeichenfolge mit VBA anders als bei der direkten Eingabe in die Zelle. Wenn Sie ISBLANK in einer Zelle ausführen, die eine Formel enthält, die "" zurückgibt (wie es der Fragesteller tut), erhalten Sie auf jeden Fall den Wert FALSE.
Toryan
@toryan das doppelte Anführungszeichen "ist ein Zeichen. VBA ist auf Maschinenebene. Formeln sind nicht. Mit, A1 = 1, B1 = if (a1 = 1," ") und c1 = isblank (b1) = FALSE. Es ist das Akt des Setzens einer Zelle auf die Null-Zeichenfolge mit if. Meine Formel definiert es nicht so.
Raystafarian
0

Eine alternative Problemumgehung, bei der keine benutzerdefinierten Funktionen geschrieben werden, wäre die Verwendung der AGGREGATEFunktion zur Berechnung der Standardabweichung. Der Vorteil dieser Funktion ist, dass sie im Gegensatz zu SUModer STDEVFehler ignorieren kann.

Damit dies funktioniert, müssen Sie dafür sorgen, dass Ihre erste Zelle einen Fehler anstelle einer leeren Textzeichenfolge zurückgibt. Geben Sie in Ihrer ersten Zelle ein

=IF(ISBLANK(ThatCell),NA(),H23)

Die NAFunktion gibt einfach einen Fehler # N / A zurück.

Verwenden Sie dann, anstatt STDEVdie Standardabweichung zu berechnen

=AGGREGATE(7,6,Range)

Die erste Option in der AGGREGATEFunktion weist in diesem Fall 7an, eine STDEV.S-Berechnung durchzuführen (zur Verwendung von STDEV.P verwenden Sie 8). In diesem Fall 6weist die zweite Option die Funktion an, Fehler zu ignorieren. Da Sie aufgefordert haben IF, anstelle einer leeren Zelle einen # N / A-Fehler zurückzugeben, wird diese Zelle ignoriert.

AGGREGATE-Funktion

NA-Funktion

Toryan
quelle
isblankgibt 0 oder 1, FALSE oder TRUE zurück, sonst nichts, einschließlich Null-Strings. ifGibt alles zurück, was du hineingesteckt hast.
Raystafarian
@ Raystafarian yep, Tippfehler, jetzt behoben :)
Toryan
Richtig, ich wollte das ifAll-Together umgehen . ifGibt Leerzeichen zurück. Tun Sie die Formel zu den Daten, die die Rückkehr von umgehen if. Wenn man bedenkt, dass das OP nachfragt stdevund countaich es als "und andere" lese, bietet es eher eine allgemeine als eine spezifische Lösung wie Ihre. Hinweis: Ich behaupte nicht, dass meine gültiger ist als Ihre.
Raystafarian