Anzeige leer, wenn in Excel 2010 auf leere Zellen verwiesen wird

27

Ich habe eine Excel 2010-Arbeitsmappe, die eine Reihe von einzelnen Arbeitsblättern enthält. Die Zellen in einem der Arbeitsblätter sind mit einzelnen Zellen in zwei anderen Arbeitsblättern in derselben Arbeitsmappe verknüpft. Ich verwende eine direkte Zellreferenz, die im Wesentlichen besagt, dass jeder Wert, der in eine bestimmte Zelle auf einem Blatt eingegeben wird, auch Zellen auf zwei anderen Blättern auffüllt. Ich habe die (=) Funktion mit dem Zellverweis verwendet, um dies zu erreichen.

Das Problem, auf das ich stoße, ist, dass selbst wenn die primäre Zelle leer bleibt, die Zellen, die aus dieser primären Zelle ausgefüllt werden, 0 anzeigen, anstatt selbst leer zu bleiben.

Ich möchte, dass die untergeordneten Zellen leer bleiben, wenn die primäre Zelle, mit der sie verknüpft sind, leer ist.

Dave
quelle
Meine Formel ist sehr lang, für mich ist auch die ZF-Konstruktion kaum akzeptabel, gute Frage aber auch ich habe keine ausreichend gute Antwort gefunden. {= IFERROR (INDEX (NEPŘÍMÝ.ODKAZ ("EsZkouska"); SMALL (KDYŽ ((INDEX (NEPŘÍMÝ.ODKAZ ("EsZkouska") ;; 1; 1) = "ČSN721180") * (INDEX (NEPŘÍMÝ.ODKAZ) EsZkouska ") ;; 9; 1) =" RC_P_B "); ŘÁDEK (NEPŘÍMÝ.ODKAZ (" EsZkouska ")) - MIN (ŘÁDEK (NEPŘÍMÝ.ODKAZ (" EsZkouska ")) + 1;"); 1) ; 17; 1); "")}
Vojtěch Dohnal
Es ist möglich, die IF-Konstruktion in Kombination mit diesem Ansatz zu verwenden: stackoverflow.com/questions/22359452/… . So können Sie benannte Formeln erstellen und in Ihrer einfachen IF-Anweisung verwenden ...
Vojtěch Dohnal

Antworten:

49

Sie müssen Excel zwingen, den Inhalt der Zelle als Textwert anstelle einer Zahl zu behandeln, was bei leeren Werten automatisch der Fall ist.

=A2 & ""

Dadurch wird Excel gezwungen, diesen Zellbezug zu einem Textwert zu machen, wodurch die Umwandlung von Leerzeichen in Nullen verhindert wird.

wbeard52
quelle
4
Wow! Ich kann nicht glauben, dass es so einfach geworden ist!
Scott
1
Wie geht die Lösung mit der Formatierung der Zahleneingabe um? Es scheint mir, als ob diese Antwort numerische Daten zerstört. Sicher - Sie erhalten keine 0, wenn die Zelle leer ist, aber Sie erhalten auch Textdaten anstelle von Zahlen ... Ist dies ein Problem in der Praxis oder haben Sie beruhigende Worte?
LudvigH
1
Es speichert es als Text. Wenn Sie es jedoch in einer mathematischen Gleichung verwenden, sollte Excel es wieder in eine Zahl konvertieren. In der Praxis würden Sie diese Lösung jedoch nur in einem Bericht bereitstellen, in dem Sie bereits die Arbeit hinter den Kulissen in anderen Arbeitsblättern oder ausgeblendeten Spalten ausgeführt haben.
wbeard52
18

Hier sind drei Antworten:

1) Lassen Sie other.cell.reference die Referenzformel darstellen, die Sie derzeit nach =(z. B.  Sheet17!$H$42) haben, und ersetzen Sie diese Linkreferenz durch

=IF(other.cell.reference <>"",other.cell.reference, "")

2) Stellen Sie die „Nummer“ Format der verknüpften Zellen zu „Custom“: General;–General;.

3) Deaktivieren Sie auf der Seite "Excel-Optionen", "Erweitert", im Abschnitt "Anzeigeoptionen für dieses Arbeitsblatt" das Kontrollkästchen "Null in Zellen mit Nullwerten anzeigen". Warnung: Dadurch verschwinden alle Nullen im Arbeitsblatt.

Scott
quelle
1
Die erste Option ist nicht optimal, da Sie Ihre Formel zweimal in die Zelle eingeben (oder kopieren) müssen. Es kann besonders unangenehm sein, wenn Sie eine sehr lange Formel haben und diese Formel später bearbeiten (oder, schlimmer noch, debuggen) müssen. Die zweite Option scheint bei mir nicht zu funktionieren, aber vielleicht mache ich es falsch. Der dritte ist definitiv nicht ideal, da das Ausmaß seiner Wirkung viel breiter ist, als man sich wirklich wünschen könnte. Gibt es wirklich keine besseren Möglichkeiten?
Iszi
@Iszi: Zur ersten Option: Ich spreche nicht davon, eine Formel zweimal einzugeben . Gemäß der ursprünglichen Frage spreche ich von einer Situation, in Q1der eine (sehr lange) Formel und A1enthält =Q1; wir wollen Änderung A1zu =IF(Q1<>"", Q1, ""), die Sie nie wieder ändern müssen , sollten. "Gibt es wirklich keine besseren Optionen?" Nun, diese Frage ist seit neun Monaten unbeantwortet, und das ist alles, was gepostet wurde. Wenn diese Antworten für Sie nicht gut genug sind, stellen Sie eine neue Frage oder setzen Sie eine Prämie auf diese.
Scott
Das ist mehr oder weniger dasselbe. Es behebt zwar die Schwierigkeit, zwei Instanzen einer Formel in einer Zelle zu beheben, erschwert jedoch die Sache ein wenig, indem dem Mix eine andere (ansonsten unnötige) Zelle oder Gruppe von Zellen hinzugefügt wird. Leider gibt es dafür wohl keine andere "schöne und saubere" Antwort.
Iszi
Ich habe vor einiger Zeit eine verwandte Frage gestellt und die einzige Antwort, die sich von dem unterscheidet, was hier mit einem VBA-Skript zu tun hat.
Iszi
4

WENN Ihre Referenzdaten entweder nur ein numerischer Typ (kein Text) oder leer sind und Sie möglicherweise Nullen haben, ist dies mein bevorzugter Ansatz, bei dem die Formel nur einmal eingegeben wird. Zugegeben, ein wenig indirekter Weg, aber ich denke am besten, weil:

  • Sie benötigen keine zusätzlichen Zellen, um die Formel einzufügen und dann auf die zweiten Zellen zu verweisen
  • Sie müssen die Formel nicht zweimal eingeben
  • Diese Methode unterscheidet zwischen einem Nullwert und einer leeren Zelle
  • benötigt kein VBA
  • Benannte Bereiche sind nicht erforderlich

Untergang : Wenn Sie Textdaten benötigen, die zurückgegeben werden, funktioniert dies nicht. Meine bevorzugte Methode für Textdaten ist die Verwendung des Zahlenformats, wie in den anderen Antworten oben erwähnt.

=IFERROR((A1 & "") * 1,"")

A1 kann in diesem Fall durch eine beliebige Zelle ersetzt werden, einschließlich eines anderen Arbeitsblatts, einer Arbeitsmappe oder von INDIRECT ().

Hinweise zur Funktionsweise:
IFERROR () - Das zweite Argument ist auf eine leere Zeichenfolge gesetzt. Wenn also ein Fehler auftritt, erhalten wir eine leere Zeichenfolge. Wir müssen also sicherstellen, dass ein Fehler ausgelöst wird, wenn die Quellzelle leer ist.

Numerische Methode : Stringifizieren Sie den Quellwert und multiplizieren Sie ihn dann mit 1. Leerer Literal-String * 1 = #WERT, String mit Numerik wird automatisch in numerisch konvertiert, und es tritt kein Fehler auf.

Rayzinnz
quelle
Interessant. Warum glaubst du, brauchst du "" & A1 & ""? Wann führt das zu unterschiedlichen Ergebnissen von A1 & ""oder "" & A1?
G-Man sagt, dass Monica am
@ G-Man: Richtig und vorzuziehen. Danke, ich habe die Antwort aktualisiert.
Rayzinnz
4

Es gibt noch einen anderen Trick: Setze die leere Zelle der Quelle auf Formel ="". Siehe die detaillierte Beschreibung hier.

Aleksey F.
quelle
Dies ist die perfekte Lösung für mich, da die Zellen, auf die ich verweise, weniger sind als die, die auf sie verweisen. Vielen Dank!
Kit
2

Auch ich habe keine bessere Lösung gefunden als die von Scott.

Aber in Verbindung mit der Herangehensweise von hier könnte es fast erträglich sein, denke ich:

http://www.ozgrid.com/Excel/named-formulas.htm

Nehmen wir an, ich habe eine Formel wie diese

= IFERROR( INDEX(INDIRECT("EsZkouska");
  SMALL(IF((INDEX(INDIRECT("EsZkouska");;1‌​;1)="ČSN721180")*(INDEX(INDIRECT("EsZkouska");;9;1)="RC_P_B");
  ROW(INDIRECT"EsZkouska"))-MIN(ROW(INDIRECT("EsZkouska")))+1;"");1);17;1);"")

Diese Formel liest den Zellenwert aus einem Datenblatt unter Verwendung der bedingten Auswahl und zeigt sie auf einem anderen Blatt an. Ich habe keine Kontrolle über die Formatierung der Zellen im Datenblatt.

Ich gehe zu Einfügen> Name> Definieren und erstelle in der "Namen in Arbeitsmappe" einen neuen Namen "RC_P_B". Dann kopiere ich in das Feld "Bezieht sich auf" meine Formel (ohne {} Zeichen - es ist eine Matrixformel).

Dann können Sie Scotts Formel verwenden, ohne den gesamten Formeltext wiederholen zu müssen:

 {=IF(RC_P_B<>""; RC_P_B;"---")}

Ich glaube, das ist besser, als die ganze Formel zu kopieren.

Vojtěch Dohnal
quelle
2

Ich benutze einfach keine Formel, um dieses Problem zu überwinden. Alles, was ich tue, ist das bedingte Formatieren von Zellen in die Schriftfarbe Weiß, wenn der Zellenwert gleich 0 ist.

Firas
quelle
5
Dies hat das offensichtliche Problem mit Zellen, die einen legitimen 0-Wert haben.
Dmitry Grigoryev
Und es hat auch den Nachteil, dass Berechnungen verlangsamt werden, insbesondere für große Tabellenkalkulationen, da Formeln für bedingte Formatierungen "super" flüchtig sind. (Sie werden auch jedes Mal ausgewertet, wenn der Bildschirm neu gestrichen wird.)
robinCTS
1

Wenn die verknüpfte Zelle nicht numerisch ist, können Sie eine IF-Anweisung mit ISTEXT verwenden:

=IF(ISTEXT(Sheet1!A2), Sheet1!A2, "")
Brad Patton
quelle
1
Wenn die Zelle Sheet1!A2, auf die verwiesen wird ( in Ihrem Beispiel), eine Zahl enthält, wird eine Nullzeichenfolge angezeigt.
Scott
Ja, aus der Frage, welche Daten sich in der referenzierten Zelle befinden, war nicht ersichtlich. Ich dachte, wenn es numerisch wäre, würde er die Nullen wollen.
Brad Patton
1

Ich habe lange nach einer eleganten Lösung für dieses Problem gesucht.

Ich habe jahrelang formula = if (a2 = "", "", a2) verwendet, finde es aber etwas umständlich.

Ich habe oben suggestion = a2 & "" ausprobiert und obwohl es zu funktionieren scheint, zeigt es eine Zahl, die tatsächlich Text ist, so dass die Zahlenformatierung nicht angewendet werden kann und keine statistischen Operationen wie Summe, Durchschnitt, Median usw. funktionieren, wenn es also funktioniert Zahlen, die Sie suchen, passen nicht in die Rechnung.

Ich habe mit einigen der anderen Funktionen experimentiert und festgestellt, dass dies meiner Meinung nach die eleganteste Lösung ist. Fortsetzung des obigen Beispiels:

= CELL ("Inhalt", A2)

gibt einen numerischen Wert zurück, der als Zahl formatiert werden kann, und gibt ein Leerzeichen zurück, wenn die Zelle, auf die verwiesen wird, leer ist. Aus irgendeinem Grund scheint diese Lösung in keinem der von mir gefundenen Online-Vorschläge zu erscheinen, aber sie ist es

Schaetzer
quelle
1
Ich habe dies gerade in Excel 2013 versucht. Wenn A2leer ist, wird dies angezeigt 0. Sind Sie sicher, dass Sie mit der Formatierung nichts anfangen?
Scott
1

Lösung für Excel 2010:

  1. Datei öffnen"
  2. Drücken Sie "Optionen"
  3. Klicken Sie auf "Erweitert"
  4. Unter "Anzeigeoptionen" für dieses Arbeitsblatt "BBBB"
  5. Deaktivieren Sie das Kontrollkästchen "Nullwert für Zellen mit einem Nullwert anzeigen".
CBMISRA
quelle
Ich sagte dies in (der dritten Option von)  meiner Antwort .
Scott
0
Public Function FuncDisplayStringNoValue(MyCell As Variant) As String

Dim Result As Variant

If IsEmpty(MyCell) Then

   FuncDisplayStringNoValue = "No Value"

Else
   Result = CDec(MyCell)

   Result = Round(Result, 2)

   FuncDisplayStringNoValue = "" & Result

   End If

End Function
Ramon Salazar
quelle
0

Ich habe eine bedingte Formatierung verwendet, um die Schriftart so zu formatieren, dass sie dieselbe Farbe wie der Zellenhintergrund hat, bei dem der Zellenwert gleich Null war.

Butonic
quelle
Wie und wie sah es aus?
Pimp Juice IT
Diese Lösung wurde bereits von Firas vor 3 Jahren veröffentlicht !
robinCTS
-1

In Office 2013 hat Folgendes für mich funktioniert:

=IF(A2=""," ",A2)

Wo im ersten Satz von Zitaten kein Leerzeichen und im zweiten Satz ist ein Leerzeichen.

Hoffe das hilft

Andy
quelle
Warum benötigen Sie das Leerzeichen in der zweiten Klammer? Funktioniert das nicht =IF(A2="", "", A2)so gut? Wie würde das anders sein als =IF(A2<>"", A2, "")? Dann , wie ist , dass ich von der höchsten gestimmt Antwort, die mehr als zwei Jahren gegeben wurde?
G-Man sagt, dass Monica am
-1

Ich hatte ein ähnliches Problem und ich glaube, ich habe eine Methode für Sie gefunden. Es hat meine Probleme behoben.

Wenn Sie möchten, dass Spalte C auf Spalte A verweist und nur eine Formel für die Referenzzelle schreibt, verwenden Sie diese und ziehen Sie die Spalte nach unten.

=A1

Möglicherweise befinden sich jedoch Quellzellen in Spalte A, die leer sind und in den Referenzzellen in Spalte C leer bleiben müssen. Sie können dies verwenden und die untere Spalte ziehen.

=T(A1)

In Bezug auf die Zellenformatierung muss die Referenz (Spalte C) allgemein sein.

Will Prater
quelle
Leider war dies eine Drive-by-Frage - das OP kam zu Super User (vor fast drei Jahren), stellte diese eine Frage und kam nie zurück. Daher werden wir vielleicht nie die Details seiner Situation erfahren . Eine wichtige (wenn nicht die wichtigste ) Funktion von Excel besteht darin, Zahlen zu knacken. Wenn die Quelldaten (in Ihrem Beispiel Spalte A) Zahlen enthalten, kann Ihre Antwort die Zielzellen nicht mit den numerischen Daten füllen.
Scott
Stellen Sie sicher, dass Ihre Zellenformatierung in den Zellen, die die Formel = T () enthalten, Allgemein und nicht Text lautet. Denn wo ich es benutzt habe, zeigt es total Zahlen.
Will Prater
Ich überprüfte. Es ist General und es wird leer. (Excel 2013)
Scott
Das Problem könnte sein, dass Sie 2013 verwenden, meine Antwort würde ich für 2010.
Will Prater
Es wurde eine Antwort (jetzt gelöscht; Sie können sie nur sehen, wenn Ihr Mitarbeiter ≥ 10000 ist), die meldet, dass dies auch in Excel 2010 nicht funktioniert.
Scott
-1

Lösung:
=IF('Wk1 Data-replace w dt bgn & end'!C2>0, 'Wk1 Data-replace w dt bgn & end'!C2, "")

Erläuterung:
Um dieses Problem zu lösen, habe ich zwei IfBefehlssätze verwendet.

Teil eins des Befehls:
Ich forderte die Zelle auf, den Inhalt der Referenzzelle anzuzeigen, wenn die Referenzzelle Daten enthielt (Excel interpretiert dies als die Zelle mit einem Wert größer als 0).

Teil zwei des Befehls:
Ich habe ihm gesagt, wie er sich verhalten soll, wenn keine Daten vorhanden sind. "" bedeutet leer lassen

Hinweis: Wk1 Data-replace w dt bgn & end '! C2 ist meine Referenzzelle.

Crystal Harris
quelle
(1) Dies wird leer angezeigt, auch wenn die Zelle, auf die verwiesen wird, 0 oder eine negative Zahl enthält. Die Frage möchte, dass die verknüpfte Zelle nur dann leer ist, wenn die Zelle, auf die verwiesen wird, leer ist . (2) Wenn Sie die offensichtliche Änderung vornehmen und in ändern =IF('Wk1 … bgn & end'!C2<>"", 'Wk1 … bgn & end'!C2, ""), entspricht dies einer Antwort, die bereits ungefähr viermal gegeben wurde.
G-Man sagt, dass Monica
-1

All diese Lösungen sind mir viel zu kompliziert und ich stelle fest, dass dies möglicherweise nicht für alle Anwendungen durchführbar ist, aber ich fülle das Quellfeld einfach mit einem Leerzeichen aus und bekomme ein Leerzeichen im Zielfeld.

John Alonso
quelle
1
Wie füllt man eine Zelle mit einem Leerzeichen und was versteht man unter einem Leerzeichen?
Fixer1234
Entschuldigung, ich hätte ein Leerzeichen sagen sollen. Auf diese Weise ist die Zelle nicht wirklich leer. Die Quellzelle enthält ein Leerzeichen und das Leerzeichen wird in die Zielzelle kopiert.
John Alonso
-1

Ich habe eine Lösung für mich:

IF(cell reference="","",cell reference)

Erläuterung:

""ist gleich leer oder leere Zelle. Jetzt drehe ich nur das wenn um. Wenn die Zelle leer ist, machen Sie sie leer, andernfalls verwenden Sie den Zellbezug.

Sebastian Tidare
quelle
Dies entspricht im Wesentlichen der ersten Lösung in superuser.com/a/515941
Arjan,
-2

Gehen Sie zu Zellen formatieren.

Wählen Sie dann ein benutzerdefiniertes Format und geben Sie Folgendes ein: 0;-0;;@

Avik
quelle
2
Können Sie erklären, was das macht? Vielen Dank.
Fixer1234
1
Dies entspricht im Wesentlichen der zweiten Option meiner Antwort auf diese Frage ("Stellen Sie das General;–General;Zahlenformat Ihrer verknüpften Zellen auf" Benutzerdefiniert ":" ein . ") - nämlich (a) wenn der Wert eine positive Zahl ist, zeige seinen ganzzahligen absoluten Wert an; (b) Wenn der Wert eine negative Zahl ist, wird der ganzzahlige Absolutwert mit vorangestelltem Wert angezeigt -. (c) wenn der Wert Null ist, nichts anzeigen ; und (d) wenn der Wert keine Zahl ist, den Textwert anzeigen. … (Fortsetzung)
Scott
1
(Fortsetzung)… Diese Version hat jedoch den Nachteil (dh den Fehler), dass nicht ganzzahlige Zahlen auf die nächste ganze Zahl gerundet werden. ( Generalgibt Ihnen das Standardformat für Zahlen an, einschließlich Dezimalstellen, falls erforderlich (jedoch ohne -Vorzeichen).) Außerdem ;@scheint das Finale nicht erforderlich zu sein (dh es scheint die Standardeinstellung zu sein), da meine Antwort Textwerte korrekt anzeigt ohne Änderung.
Scott