Frage

Ich muss eine leere Zelle aus einer Excel -Formel zurückgeben, aber es scheint, dass Excel eine leere Schnur oder einen Verweis auf eine leere Zelle anders behandelt als eine echte leere Zelle. Also brauche ich also so etwas wie

=IF(some_condition,EMPTY(),some_value)

Ich habe versucht, Dinge wie zu tun

=IF(some_condition,"",some_value)

und

=IF(some_condition,,some_value)

und vorausgesetzt, B1 ist eine leere Zelle

=IF(some_condition,B1,some_value)

Aber keines davon scheint wahre leere Zellen zu sein, schätze ich, weil sie das Ergebnis einer Formel sind. Gibt es eine Möglichkeit, eine Zelle zu bevölkern, wenn und nur wenn eine Erkrankung erfüllt ist und die Zelle ansonsten wirklich leer hält?

Bearbeiten: Wie empfohlen, habe ich versucht, NA () zurückzugeben, aber für meine Zwecke funktionierte dies auch nicht. Gibt es eine Möglichkeit, dies mit VB zu tun?

Bearbeiten: Ich erstelle ein Arbeitsblatt, das Daten aus anderen Arbeitsblättern anzieht, die den sehr spezifischen Anforderungen einer Anwendung formatiert sind, die die Daten in eine Datenbank importiert. Ich habe keinen Zugriff, um die Implementierung dieser Anwendung zu ändern, und er fällt fehl, wenn der Wert "" anstelle von tatsächlich leer ist.

War es hilfreich?

Lösung

Sie müssen benutzen VBA, dann. Sie werden die Zellen in Ihrem Bereich itererieren, den Zustand testen und den Inhalt löschen, wenn sie übereinstimmen.

Etwas wie:

For Each cell in SomeRange
  If (cell.value = SomeTest) Then cell.ClearContents
Next

Andere Tipps

Excel hat keinen Weg, dies zu tun.

Das Ergebnis einer Formel in einer Zelle in Excel muss eine Zahl, einen Text, eine logische (booleale) oder einen Fehler sein. Es gibt keinen Formelzellwerttyp "leer" oder "leer".

Eine Praxis, die ich gesehen habe, ist die Verwendung von Na () und Isna (), aber die kann Ihr Problem nicht wirklich lösen oder nicht, da es eine große Unterschiede in der Art und Weise gibt, wie Na () durch andere Funktionen behandelt wird (Sum (NA (NA )) ist #n/a while sum (a1) ist 0, wenn a1 leer ist).

Ja, es ist möglich.

Es ist möglich, eine vernichtende Formel zu haben, die an Trublank bewertet wird, wenn der Zustand erfüllt ist. Es besteht den Test von ISBLANK Formel.

enter image description here

Alles, was Sie brauchen, ist, eine benannte Reichweite einzurichten, beispielsweise eine benannte Reichweite GetTrueBlank, und Sie können das folgende Muster genau wie in Ihrer Frage verwenden:

=IF(A1 = "Hello world", GetTrueBlank, A1)

Schritt 1. Setzen Sie diesen Code in Modul von VBA ein.

Function Delete_UDF(rng)
    ThisWorkbook.Application.Volatile
    rng.Value = ""
End Function

Schritt 2. Im Sheet1 in A1 Zelle Add Named Range GetTrueBlank mit der folgenden Formel:

=EVALUATE("Delete_UDF("&CELL("address",Sheet1!A1)&")")

enter image description here

Das ist es. Es gibt keine weiteren Schritte. Verwenden Sie einfach eine selbstverzögerende Formel. Zelle in die Zelle geben, sagen wir B2, die folgende Formel:

=IF(A2=0,GetTrueBlank,A2)

Die obige Formel in B2 wird nach TrueBlank bewertet, wenn Sie 0 in eingeben A2.

Du kannst Laden Sie hier eine Demonstrationsdatei herunter.

Im obigen Beispiel führt die Bewertung der Formel an Trublank zu einer leeren Zelle. Ergebnis überprüfen mit ISBLANK Formelergebnisse sind in True positiv. Dies ist Hara-Kiri-ähnliche Formel. Die Formel verschwindet aus der Zelle, wenn der Zustand erfüllt ist. Das Ziel ist erreicht, obwohl Sie wahrscheinlich möchten, dass die Formel nicht verschwindet.

Sie können die Formel so ändern, dass die Ergebnisse in benachbarter Zelle zurückgegeben werden, damit die Formel sich nicht selbst tötet. Sehen Sie, wie Sie UDF -Ergebnis in angrenzende Zelle erhalten.

Ich bin auf die Beispiele gestoßen, um eine Trueblank als Formelergebnis zu erhalten, die der Frankensteam hier offenbart hat:https://sites.google.com/site/e90e50/excel-formula-the-value-of-another-cell

Vielleicht ist das Betrug, aber es funktioniert!

Ich brauchte auch eine Tabelle, die die Quelle für ein Diagramm ist, und ich wollte nicht, dass leere oder null Zellen einen Punkt auf dem Diagramm erzeugen. Es ist wahr, dass Sie die Graph -Eigenschaft festlegen, Daten, versteckte und leere Zellen auswählen müssen, um "leere Zellen als Lücken anzusehen" (klicken Sie auf das Optionsfeld). Das ist der erste Schritt.

Dann geben Sie in den Zellen, die möglicherweise ein Ergebnis erzielen, das Sie nicht planen möchten, die Formel in eine IF -Anweisung mit einer NA() Ergebnisse wie =IF($A8>TODAY(),NA(), *formula to be plotted*)

Dies gibt den erforderlichen Diagramm ohne Punkte an, wenn ein ungültiger Zellwert auftritt. Natürlich lässt dies alle Zellen mit diesem ungültigen Wert zum Lesen #N/A, und das ist chaotisch.

Um dies aufzuräumen, wählen Sie die Zelle aus, die den ungültigen Wert enthalten kann, und wählen Sie dann aus bedingte Formatierung - neue Regel. Wählen Sie "Format nur Zellen, die enthalten" und unter der Regelbeschreibung "Fehler" aus dem Dropdown -Feld auswählen. Dann wählen Sie unter Format eine Schriftart - Farbe - weiß (oder was auch immer Ihre Hintergrundfarbe ist). Klicken Sie auf die verschiedenen Schaltflächen, um herauszukommen, und Sie sollten sehen, dass Zellen mit ungültigen Daten leer aussehen (sie enthalten tatsächlich #N/A Weißer Text auf einem weißen Hintergrund sieht jedoch leer aus.) Dann zeigt das verknüpfte Diagramm auch nicht die ungültigen Wertpunkte an.

So habe ich es für den Datensatz gemacht, den ich verwendete. Es scheint verwickelt und dumm zu sein, aber es war die einzige Alternative zum Lernen, wie man die oben erwähnte VB -Lösung verwendet.

  1. Ich habe eine "Kopie" aller Daten gemacht und die Daten als "Werte" eingefügt.
  2. Dann habe ich die geklebten Daten hervorgehoben und einen "Ersatz" (ersetzen "(Strg-H) Die leeren Zellen mit einem Buchstaben, ich habe mich entschieden q Da es nicht irgendwo auf meinem Datenblatt war.
  3. Schließlich habe ich noch einen "ersetzt" gemacht und ersetzt q mit nichts.

Dieser dreistufige Prozess verwandelte alle "leeren" Zellen in "leere" Zellen ". Ich habe versucht, die Schritte 2 und 3 zu verschmelzen, indem ich einfach die leere Zelle durch eine leere Zelle ersetzte, aber das funktionierte nicht-ich musste die ersetzen Blindende Zelle mit einem tatsächlichen Text und ersetzen Sie diesen Text dann durch eine leere Zelle.

Wenn das Ziel in der Lage sein soll, eine Zelle als leer anzuzeigen, wenn sie tatsächlich den Wert Null hat, dann verwenden Sie eine Formel, die zu einer leeren oder leeren Zelle führt (da es keine gibt empty() Funktion) stattdessen,

  • Wo Sie eine leere Zelle wollen, geben Sie a zurück 0 Anstatt von "" und dann

  • Legen Sie das Zahlenformat für die Zellen wie dies so ein, wo Sie sich für positive und negative Zahlen (die ersten beiden von Semikolons getrennten Elemente getrennt) erstellen müssen. In meinem Fall waren die Zahlen, die ich hatte, 0, 1, 2 ... und ich wollte, dass 0 leer auftauchen. (Ich habe nie herausgefunden, wofür der Textparameter verwendet wurde, aber es schien erforderlich zu sein).

    0;0;"";"text"@
    

Versuchen Sie, die Zelle mithilfe der Zelle zu bewerten LEN. Wenn es eine Formel enthält LEN wird zurückkehren 0. Wenn es Text enthält, wird es größer als 0.

Wow, eine erstaunliche Anzahl von Menschen hat die Frage falsch verstanden. Es ist einfach, eine Zelle zu machen sehen leer. Das Problem ist, dass Excel -Formeln, wenn Sie die Zelle leer sind, nicht "keinen Wert" zurückgeben können, aber nur einen Wert zurückgeben können. Eine Null, einen Speicherplatz oder sogar "" ist ein Wert.

Sie müssen also einen "magischen Wert" zurückgeben und ihn dann ohne Wert durch Suche und Ersetzen oder mit einem VBA -Skript ersetzen. Während Sie einen Speicherplatz oder "" verwenden könnten, wäre mein Rat, einen offensichtlichen Wert wie "Knoten" oder "Nichtnummer" oder "xxxxx" zu verwenden, damit Sie leicht sehen können, wo er vorkommt - es ist ziemlich schwierig, "" zu finden. in einer Tabelle.

So viele Antworten, die einen Wert zurückgeben, der leer aussieht, aber wie angefordert nicht leer ist, wie Zelle ...

Wie gewünscht, wenn Sie tatsächlich eine Formel wünschen, die eine leere Zelle zurückgibt. Es ist durch VBA möglich. Also, hier ist der Code, um genau das genau das zu tun. Schreiben Sie zunächst eine Formel, um den #N/A -Fehler zurückzugeben, wo immer Sie möchten, dass die Zellen leer sind. Dann löscht meine Lösung automatisch alle Zellen, die diesen Fehler #N/A enthalten. Natürlich können Sie den Code ändern, um den Inhalt von Zellen automatisch basierend auf allem zu löschen, was Ihnen gefällt.

Öffnen Sie den "Visual Basic Viewer" (ALT + F11). Finden Sie die interessierende Arbeitsmappe am Project Explorer und doppelklicken Sie darauf (oder klicken Sie mit der rechten Maustaste und wählen Sie den Code anzeigen). Dadurch wird das Fenster "Codes anzeigen" geöffnet. Wählen Sie im (allgemeinen) Dropdown -Menü "Arbeitsbuch" und "SheetCalculate" im Dropdown -Menü (Deklarationen).

Fügen Sie den folgenden Code (basierend auf der Antwort von JT Grimes) in der Funktion Workbook_sheetcalculate ein

    For Each cell In Sh.UsedRange.Cells
        If IsError(cell.Value) Then
            If (cell.Value = CVErr(xlErrNA)) Then cell.ClearContents
        End If
    Next

Speichern Sie Ihre Datei als makro -fähiger Arbeitsmappe

NB: Dieser Prozess ist wie ein Skalpell. Es wird den gesamten Inhalt von Zellen entfernt, die den #n/a -Fehler bewerten, also seien Sie sich bewusst. Sie werden gehen und Sie können sie nicht zurückbekommen, ohne die Formel wiederzugeben, die sie früher enthielt.

NB2: Offensichtlich müssen Sie Makros aktivieren, wenn Sie die Datei öffnen, sonst funktioniert sie nicht und #N/A -Fehler bleiben ungeletet

Verwenden COUNTBLANK(B1)>0 Anstatt von ISBLANK(B1) in deinem IF Aussage.

nicht wie ISBLANK(), COUNTBLANK() überlegt "" als leer und zurückgegeben 1.

Diese Antwort befasst sich nicht vollständig mit dem OP, aber es gab mehrmals, dass ich ein ähnliches Problem hatte und nach der Antwort gesucht habe.

Wenn du kannst neu erstellen Die Formel oder die Daten, falls erforderlich leer, Dann können Sie die Region auswählen und das folgende VBA -Makro ausführen.

Sub clearBlanks()
    Dim r As Range
    For Each r In Selection.Cells
        If Len(r.Text) = 0 Then
            r.Clear
        End If
    Next r
End Sub

Dadurch wird der Inhalt einer Zelle ausgelöscht, die derzeit angezeigt wird "" oder hat nur eine Formel

Ich habe die folgenden Arbeiten verwendet, um mein Excel sauberer aussehen zu lassen:

Wenn Sie Berechnungen durchführen, erhalten Sie "" Fehler, sodass Sie es als Zahl behandeln möchten. Deshalb habe ich eine verschachtelte If -Anweisung verwendet, um 0 itead von "" zurückzugeben. Wenn das Ergebnis 0 ist, wird diese Gleichung zurückgegeben "" ""

=IF((IF(A5="",0,A5)+IF(B5="",0,B5)) = 0, "",(IF(A5="",0,A5)+IF(B5="",0,B5)))

Auf diese Weise sieht das Excel -Blatt sauber aus ...

Wenn Sie Suchfunktionen wie Hlookup und Vlookup verwenden, um die Daten in Ihr Arbeitsblatt zu bringen, legen Sie die Funktion in Klammern und die Funktion gibt eine leere Zelle anstelle eines {0} zurück. Zum Beispiel,

Dies gibt einen Nullwert zurück, wenn die Lookup -Zelle leer ist:

    =HLOOKUP("Lookup Value",Array,ROW,FALSE)

Dies gibt eine leere Zelle zurück, wenn die Suchzelle leer ist:

    =(HLOOKUP("Lookup Value",Array,ROW,FALSE))

Ich weiß nicht, ob dies mit anderen Funktionen funktioniert ... Ich habe es nicht versucht. Ich benutze Excel 2007, um dies zu erreichen.

Bearbeiten

Um tatsächlich ein if (a1 = "",,, um als wahr zurückzukommen, muss zwei Nachschläge in derselben Zelle vorhanden sein, die von einem &. Der einfache Weg um diese Weise besteht darin, die zweite Suche zu einer Zelle zu machen, die sich am Ende der Reihe befindet und immer leer ist.

Nun, so weit ist dies das Beste, was ich mir einfallen lassen könnte.

Es verwendet das ISBLANK Funktion zum Überprüfen, ob die Zelle in einem wirklich leer ist IF Aussage. Wenn es etwas in der Zelle gibt, A1 In diesem Beispiel sogar ein Weltraumcharakter, Dann ist die Zelle nicht EMPTY und die Berechnung führt zu. Dadurch wird die Berechnungsfehler nicht angezeigt, bis Sie Zahlen zum Arbeiten haben.

Wenn die Zelle ist EMPTY Dann zeigt die Berechnungszelle die Fehler aus der Berechnung nicht an. Wenn die Zelle ist NOT EMPTY Dann werden die Berechnungsergebnisse angezeigt. Dies macht einen Fehler, wenn Ihre Daten schlecht sind, die gefürchteten #DIV/0!

=IF(ISBLANK(A1)," ",STDEV(B5:B14))

Ändern Sie die Zellreferenzen und die Formel, wie Sie es benötigen.

Die Antwort ist positiv - Sie können die Funktion = if () nicht verwenden und die Zelle leer lassen. "Aussehen leer" ist nicht dasselbe wie leer. Es ist eine Schande, dass zwei Anführungszeichen von Rücken an Rücken keine leere Zelle ergeben, ohne die Formel auszulöschen.

Was ich benutzte, war ein kleiner Hack. Ich habe T (1) verwendet, das eine leere Zelle zurückgab. T ist eine Funktion in Excel, die sein Argument zurückgibt, wenn es sich um eine Zeichenfolge und eine leere Zelle ansonsten handelt. Also, was Sie tun können, ist:

=IF(condition,T(1),value)

Google brachte mich mit einem sehr ähnlichen Problem hierher, ich habe endlich eine Lösung gefunden, die zu meinen Bedürfnissen passt. Es könnte auch jemand anderem helfen ...

Ich habe diese Formel verwendet:

=IFERROR(MID(Q2, FIND("{",Q2), FIND("}",Q2) - FIND("{",Q2) + 1), "")
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top