2016-04-29 7 views
0

Ich möchte mit dem Suchen und Ersetzen in Excel alle Nullen aus einer Spalte löschen, die die Werte der Spalte A-Spalte C enthält. Also A2-C2, A3- C3 usw. Aber weil es eine Formel ist, wird es einfach nicht funktionieren, obwohl ich den 'Match Case/Match Gesamten Inhalt' sowie andere Kombinationen in Optionen ausprobiert habe. Dies ist eine einfache Frage, aber schwer, eine Antwort zu finden, da alle Fragen darauf gerichtet sind, einen Teil einer Formel zu finden und durch etwas anderes zu ersetzen.Suchen und Ersetzen von Werten in Zellen, die Formeln für Excel 2016 enthalten

+0

Warum versuchen Sie Formeln zu entfernen, die in Nullen führen? Was passiert, wenn sich die Daten ändern? Sollten Sie die Formel (en) ersetzen? Warum werden Nullen nicht einfach über ein benutzerdefiniertes Zahlenformat oder 'ActiveWindow.DisplayZeros = False' angezeigt? [edit] Wie wäre es mit einem ereignisgesteuerten Makro wie Worksheet_Change, das ganz auf Formeln verzichtet? Was ist, wenn die Formel (en) einfach eine Null-Länge-Zeichenfolge (z.B. "" ") anstelle von Nullen zurückgibt? – Jeeped

Antwort

1

Wenn Sie keine "0" oder "#VALUE!" Sehen möchten In diesen Spalten würde ich die Formel so umschreiben, dass sie diese Werte als Ausgaben ausschließt (was bedeutet, dass jede Summe oder diese Funktion diese Zellen ausschließt). Verwenden Sie entweder die Formeln "iferror" oder "if", um auszuschließen, siehe Beispiele unten.

  • ohne 0 mit if-Anweisung: =IF(H8*G8 = 0,"",H8*G8)
  • ohne #value! mit IFERROR: =IF(H8*G8 = 0,"",H8*G8)
  • ohne 0 und #value mit kombinierten IFERROR/if-Anweisung: =IFERROR(IF(G20*H20 = 0," ",G20*H20),"")

Wenn Sie beide 0er und #value ausschließen möchten! Sie die Formeln kombinieren können: enter image description here

enter image description here

0

Angenommen, Sie wollen nicht die ganze Bandbreite der Formeln neu zu schreiben, Sie dan es über VBA tun (Hit Alt + F11) .Just Paste Code irgendwo dort. Wählen Sie nun den Bereich, den Sie aus 0's leeren möchten und #Errors und den Code ausführen:

Sub RemZeroErr() 
    Dim rng As Range 
    For Each rng In Intersect(Selection, Selection.Parent.UsedRange).Cells 
    If IsError(rng) Then 
     rng.Value = "" 
    ElseIf rng.Value = 0 Then 
     rng.Value = "" 
    End If 
    Next 
End Sub