Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datenüberprüfung ohne leere Zwischenwerte

Forumthread: Datenüberprüfung ohne leere Zwischenwerte

Datenüberprüfung ohne leere Zwischenwerte
08.10.2016 19:49:04
Dietmar
Guten Abend zusammen,
obwohl das Thema ja schon rauf und runter diskutiert wurde, finden ich keine Lösung für meine Aufgabe.
01
Ich möchte aus einer Spalte ('B' der Beispieldatei), in der sich Formelergebnisse befinden, Wert in eine Datenüberprüfung übernehmen. Die Formel zeigt den Wert an, wenn eine Bedingung erfüllt ist; ansonsten ist die jeweilige Zelle leer (jedenfalls bzgl. der Anzeige; die Formel bleibt natürlich).
Dadurch entstehen ja in der Auflistung Lücken; nicht am Ende, sondern zwischendurch.
02
Die Lücken möchte ich über ein Hilfsspalte ('E' in der Beispieldatei) per INDEX-Anweisung aussondern. Und hier beginnt mein 1. Problem: Ich erhalte am Ende der Hilfsspalte #Zahl!
03
In der Zelle ('G2' in der Beispieldatei), in der dann die Werte der Hilfsspalte übernommen werden sollen, sollen dann nun NUR die Werte erscheinen, die tatsächlich in der Spalte zu Ziffer 01 zu SEHEN sind.
Also keine Lücken und am Ende auch keine Leerzeilen. (mein 2. Problem).
Ich habe mal eine Beispieldatei beigefügt:
https://www.herber.de/bbs/user/108675.xls
Herzlichen Dank für jeden Tipp!
Dietmar
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datenüberprüfung ohne leere Zwischenwerte
08.10.2016 19:52:08
Hajo_Zi
Problem 02

Tabelle1
 E
2Mehl
3Milch
4Obst
5Fleisch
6Brot
7 
8 
9 
10 
11 
12 

verwendete Formeln
Zelle Formel Bereich N/A
E2:E12{=WENNFEHLER(WENN(ZEILE(B2)>ANZAHL2($B$2:$B$10001);"";INDEX($B:$B;KKLEINSTE(WENN(B$2:$B$10002<>"";ZEILE($2:$10000));ZEILE(B1))));"")}$E$2 
{} Matrixformel mit Strg+Umschalt+Enter abschließen
Matrixformeln sind durch geschweifte Klammern {} eingeschlossen
Diese Klammern nicht eingeben!!

Excel-Inn.de
Hajo-Excel.de
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 23.05 einschl. 64 Bit



Anzeige
AW: Datenüberprüfung ohne leere Zwischenwerte
08.10.2016 20:06:13
Hajo_Zi
und 03

Tabelle1
 G
1Dropdown zur Hilfsspalte
2 

definierte Namen  
Name Bezieht sich auf Tabelle Z1S1-Formel
Liste=BEREICH.VERSCHIEBEN(Tabelle1!$E$2;0;0;SUMMENPRODUKT((LÄNGE(Tabelle1!E:E)>0)*1)-1) =OFFSET(Tabelle1!R2C5,0,0,SUMPRODUCT((LEN(Tabelle1!C[-2])>0)*1)-1)

Daten, Gültigkeit  
Zelle Zulassen Daten Wert1 Wert2 Leere Zellen ignorieren Zellendropdown Titel Eingabemeldung Eingabemeldung Titel Fehler Fehlermeldung Typ Fehlermeldung
G2Liste   =Liste     Wahr   Wahr           Stopp
Excel-Inn.de
Hajo-Excel.de
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 23.05 einschl. 64 Bit


Gruß Hajo
Anzeige
AW: Datenüberprüfung ohne leere Zwischenwerte
08.10.2016 20:30:03
Dietmar
Hallo Hajo,
beigeisterte Samstag-Abend-Grüße!
Das war's!
Herzlichen Dank!
Dietmar
Danke für Rückmeldung oT
08.10.2016 20:57:25
Hajo_Zi
AW: Datenüberprüfung ohne leere Zwischenwerte
09.10.2016 00:44:05
Luschi
Hallo
vergiß die volatile Funktion Bereich.Verschieben(...), definieren den Namen 'HS_1' so:

=INDEX(Tabelle1!$E$2;1;):INDEX(Tabelle1!$E$2:$E$17;SUMMENPRODUKT((LÄNGE(Tabelle1!E:E)>0)*1)-1;) 
und setze diesen Namen in der Gültigkeitsliste ein.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: ein INDEX() und nur SUMME() reicht aus ...
09.10.2016 16:12:53
...
Hallo Luschi,
... bezogen auf den Beispieldaten einfach den Bereichsnamen wie folgt definieren:
=$E$2:INDEX($E:$E;SUMME(N(LÄNGE($E$1:$E$999)>0)))
Denn SUMMENPRODUKT() bedarf es in einer Bereichsnamensdefinition nicht, weil diese dort eh schon als Matrixformel ausgewertet werden.
Und gemäß ursprünglicher Aufgabenstellung reicht sogar das schnellere:
=$E$2:INDEX($E:$E;1+ZÄHLENWENN(C:C;"ja"))
@Dietmar,
als Formel in E2 reicht:
=WENNFEHLER(INDEX($B:$B;KKLEINSTE(WENN(B$2:$B$10000"";ZEILE(B$2:$B$10000));ZEILE(B1)));"")
Hier hab ich bewusst ZEILE(B$2:$B$10000) anstelle ZEILE($2:$$10000) geschrieben, weil günstiger (schneller in der Auswertung)
Gruß Werner
.. , - ...
Anzeige
AW: ein INDEX() und nur SUMME() reicht aus ...
09.10.2016 20:01:57
Luschi
Hallo Werner,
danke für die Verbesserung, abe aber 2 Anmerkungen
- die Formel für 'E2' funktioniert bei mir nur als Matrix-Funktion
  siehe Spalte F und G
- =$E$2:INDEX($E:$E;1+ZÄHLENWENN(C:C;"ja")) arbeitet bei mir auch nicht korrekt
  siehe Neopa_2
https://www.herber.de/bbs/user/108682.xls
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Formel in E2 ist natürlich eine {}-Formel ...
10.10.2016 07:53:46
...
Guten Morgen Luschi und Dietmar,
... die Formel in E2 muss natürlich eine Matrixformel sein, die notwendige Anzeige der {} um die Formel , welche durch den spez. Formelabschluss mit STRG+SHIFT+RETURN zu erzeugen ist, hatte ich schlicht und einfach vergessen zu schreiben, sorry.
Bzgl. der Formel =$E$2:INDEX($E:$E;1+ZÄHLENWENN(C:C;"ja")) verweise ich auf meine Vorbemerkung: "... gemäß ursprünglicher Aufgabenstellung ..." sowie den Sachverhalt dessen, dass Dietmar die Formel in Spalte B nur bis B10 kopiert hat und diese somit in B11:B12 noch fehlt.
Gruß Werner
.. , - ...
Anzeige
AW: Formel in E2 ist natürlich eine {}-Formel ...
10.10.2016 08:31:37
Luschi
Guten Morgen Werner,
danke für Deine Erklärungen.
Gruß von Luschi
aus klein-Paris
AW: auch Dir einen guten Morgen owT
10.10.2016 08:39:03
...
Gruß Werner
.. , - ...

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Datenüberprüfung ohne leere Zwischenwerte


Schritt-für-Schritt-Anleitung

Um eine Datenüberprüfung in Excel zu erstellen, die leere Zellen ignoriert, folge diesen Schritten:

  1. Hilfsspalte erstellen: Nutze eine Hilfsspalte (z.B. Spalte E), um die Werte aus deiner Ausgangsspalte (z.B. Spalte B) zu filtern. Verwende dazu die folgende Formel in Zelle E2:

    =WENNFEHLER(INDEX($B$2:$B$10000;KKLEINSTE(WENN($B$2:$B$10000<>"";ZEILE($B$2:$B$10000)-ZEILE($B$2)+1);ZEILE(1)));"")

    Drücke Strg+Shift+Enter, um die Formel als Matrixformel einzugeben.

  2. Definierten Namen erstellen: Gehe zu "Formeln" > "Namens-Manager" und erstelle einen neuen Namen (z.B. "Liste"), der sich auf den Bereich in der Hilfsspalte bezieht:

    =BEREICH.VERSCHIEBEN(Tabelle1!$E$2;0;0;ANZAHL2(Tabelle1!$E$2:$E$10000);1)
  3. Dropdown erstellen: Wähle die Zelle aus, in der du das Dropdown-Menü haben möchtest (z.B. G2), und gehe zu "Daten" > "Datenüberprüfung". Wähle "Liste" als Zulassung und gebe als Quelle =Liste ein. Aktiviere die Option "Leere Zellen ignorieren".

  4. Fertigstellen: Jetzt solltest du ein Dropdown haben, das nur die Werte anzeigt, die in der Hilfsspalte stehen, ohne leere Zellen zu berücksichtigen.


Häufige Fehler und Lösungen

  • Fehler: Dropdown ignoriert leere Zellen nicht: Überprüfe, ob die Datenüberprüfung richtig eingerichtet ist. Stelle sicher, dass die Option "Leere Zellen ignorieren" aktiviert ist.

  • Fehler: Formel gibt #Zahl! zurück: Dies kann passieren, wenn der Bereich in der INDEX-Anweisung nicht korrekt definiert ist. Stelle sicher, dass du die Zeilenanzahl und Bezug korrekt angegeben hast.

  • Fehler: Dropdown zeigt keine Werte an: Stelle sicher, dass der definierte Name korrekt auf die Hilfsspalte verweist und dass die Formel in E2 als Matrixformel eingegeben wurde.


Alternative Methoden

Eine andere Möglichkeit, die Datenüberprüfung ohne leere Zellen zu realisieren, ist die Verwendung von VBA. Hier ist ein einfaches Beispiel:

Sub DropdownOhneLeere()
    Dim rng As Range
    Set rng = Range("B2:B100") ' Der Bereich, der überprüft wird
    Dim cell As Range
    Dim values As String

    For Each cell In rng
        If cell.Value <> "" Then
            values = values & cell.Value & ","
        End If
    Next cell

    values = Left(values, Len(values) - 1) ' Letztes Komma entfernen
    Range("G2").Validation.Delete
    Range("G2").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:=values
End Sub

Praktische Beispiele

  • Beispiel 1: Setze die Formel in Spalte E, um nur Werte von Spalte B anzuzeigen, die nicht leer sind. Erstelle dann ein Dropdown in Zelle G2, das diese Werte anzeigt.

  • Beispiel 2: Wenn du eine Liste von Produkten hast, und einige davon nicht verfügbar sind (leere Zellen), kannst du mit obiger Methode nur die verfügbaren Produkte in deinem Dropdown anzeigen.


Tipps für Profis

  • Verwende die Funktion BEREICH.VERSCHIEBEN um dynamische Bereiche zu erstellen, die sich automatisch anpassen, wenn du Daten hinzufügst oder entfernst.

  • Achte darauf, dass du bei der Eingabe von Matrixformeln die Tasten Strg+Shift+Enter verwendest, um die korrekte Funktionalität sicherzustellen.

  • Du kannst auch die bedingte Formatierung nutzen, um leere Zellen visuell hervorzuheben, bevor du sie in deiner Datenüberprüfung verwendest.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass meine Dropdown-Liste immer aktuell bleibt? Wenn du die Hilfsspalte dynamisch definierst (z.B. mit BEREICH.VERSCHIEBEN), wird die Dropdown-Liste automatisch aktualisiert, wenn du Werte hinzufügst oder entfernst.

2. Was mache ich, wenn die Dropdown-Liste immer noch leere Zellen anzeigt? Stelle sicher, dass du die Option "Leere Zellen ignorieren" in den Einstellungen der Datenüberprüfung aktiviert hast und überprüfe die Formel in der Hilfsspalte auf Richtigkeit.

3. Funktioniert diese Methode in allen Excel-Versionen? Die beschriebenen Methoden funktionieren in Excel-Versionen ab 2007 und höher. Achte darauf, dass die verwendeten Funktionen in deiner Excel-Version verfügbar sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige