Suchfunktion (INDEX-AGGREGATE) leere Suchfelder ignorieren
#1
Hallo zusammen

Ausgangslage
(Excel 2010 ohne VBA, da ich es auch auf dem Smartphone verwenden möchte)

Ich habe mir eine Suchfunktion (mit Ausgabe mehrer Ergebnissen) für meine Comics-Bestandesliste gebastelt. Das Herzstück sieht vorerst wie folgt aus:

=WENNFEHLER(INDEX(Gesamtliste[Zeile];AGGREGAT(15;6;ZEILE(Gesamtliste[Zeile])/((Gesamtliste[Kategorie]=Suche!$B$3)*(Gesamtliste[Reihe]=Suche!$C$3)*(Gesamtliste[Nr.]=Suche!$E$3)*(Gesamtliste[Jahr]=Suche!$F$3));ZEILE()-5)-1;1);"")

Dabei werden 4 Suchwerte auf der Gesamtliste abgeglichen und es gibt mir dann auch zuverlässig aus was übereinstimmt.

Mein Problem
Es sollten auch Ergebnisse ausgespuckt werden wenn eines der beiden hinteren Suchfelder (Nr. und Jahr) oder sogar beide leer sind.

Wenn ich also nur die Kategorie und die Reihe angebe sollten alle aus dieser Reihe angezeit werden, oder wenn ich die Kategorie, die Reihe und das Jahr angebe soll es mir alle Nummer dieses Jahres ausgeben.

Meine bisherigen Versuche mit WENNDANNSONST sind kläglich gescheitert.  *WENN([i][i]$E$3>0;[/i](Gesamtliste[Nr.]=Suche!$E$3;1)[/i]

Meine Frage
Kann mir jemand sagen was ich ich falsch überlege mit meinem Lösungsansatz oder mit was ich es sonst probieren könnte?

Bei denjenigen die bis hier gelesen habe möchte ich mich bereits mal ganz herzlich bedanken.
Euer Disney Fan Blush



Bitte verzeit mir wenn ich etwas vergessen habe anzugeben oder wenn etwas nicht verständlich genug ist.

Ps: den 5ten Suchfaktor (Bestand) habe ich bis jetzt mal noch nicht mit einbezogen, weil ich befürchte dass das ganze mir dann definitiv zu komplex wird. Ich könnte die Liste sicher vorerst auch mal ohne diese Funktion verwenden.


Angehängte Dateien
.xlsx   Bestandesliste_V4.xlsx (Größe: 100,08 KB / Downloads: 5)
Top
#2
Moin

Das Verwenden von Datenschnitten ist wohl zu einfach?
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

[-] Folgende(r) 1 Nutzer sagt Danke an shift-del für diesen Beitrag:
  • Frog10
Top
#3
Hallo F...,

zB. so:

=WENNFEHLER(@INDEX(Gesamtliste[Zeile];AGGREGAT(15;6;ZEILE(Gesamtliste[Zeile])/(((Gesamtliste[Kategorie]=Suche!$B$3)+($B$3="")>0)*((Gesamtliste[Reihe]=Suche!$C$3)+($C$3="")>0)*((Gesamtliste[Nr.]=Suche!$E$3)+($E$3="")>0)*((Gesamtliste[Jahr]=Suche!$F$3)+($F$3="")>0));ZEILE()-5)-1;1);"")


Angehängte Dateien
.xlsx   Bestandesliste_V4.xlsx (Größe: 109,24 KB / Downloads: 5)
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





[-] Folgende(r) 1 Nutzer sagt Danke an Ego für diesen Beitrag:
  • Frog10
Top
#4
Hallo Ihr beide

Das ging ja schnell...

Datenschnitte kannte ich ehrlich gesagt bis anhin nicht Undecided, laut meiner kurzen Recherche würde dies vermutlich auch gehen. Der Nachteil wäre vermutlich die eher unübersichtliche Bedienung auf dem Smartphone.

Die Lösung von Ego funz aber perfekt 18 

Ich begreife aber nicht ganz wie Sie funktioniert...
+(($B$3="")>0) was macht dies genau?

Sorry für meine dumme Frage, aber ich komme gerade nicht selbst drauf.

Und wenn ich mir das so anschaue könnte ich dies vielleicht auch für den letzten "Filter" verwenden, aber dazu müsste ich es zuerst verstehen...
Top
#5
Hallo F...,

mit dem zweiten Summand und der Prüfung grösser 0 in
Zitat:((Gesamtliste[Kategorie]=Suche!$B$3)+($B$3="")>0)
schalte ich den Filter aus, wenn die Zelle leer ist.


Durch den ersten Vergleich erhalte ich eine Liste mit Wahrheitswerten (WAHR und FALSCH) und daraus wird vor der Summenbildung eine Liste mit 1en und 0en.
Wenn ich darauf das Ergebnis aus dem zweiten Vergleich addiere erhalte ich wenn
a) die Zelle nicht leer ist (+0) die gleiche Liste. Und sie ändert sich auch nicht, wenn sie nach dem äußeren Vergleich und vor der Multiplikation wieder in Zahlen umgewandelt wird.
b) die Zelle leer ist (+1) eine Liste von 2en und 1en. Da jetzt alle Elemente der Liste größer als 0 sind erhalte ich vor der Multiplikation eine Liste mit lauter 1en.
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





[-] Folgende(r) 1 Nutzer sagt Danke an Ego für diesen Beitrag:
  • Frog10
Top
#6
Hallo F...,

anstelle der Konstruktion

Zitat:((Gesamtliste[Nr.]=Suche!$E$3)+($E$3="")>0)
kannst du auch

Zitat:{
(WENN($E$3="";1;Gesamtliste[Nr.]=Suche!$E$3))
}
nutzen (Eingabe ohne geschweifte Klammern). Du must dann nur (da Matrixfunktion) jede Bearbeitung mit Strg+Umsch+Enter abschließen.
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





[-] Folgende(r) 1 Nutzer sagt Danke an Ego für diesen Beitrag:
  • Frog10
Top
#7
Vielen herzlichen Dank für die Erklärung.

Somit lag ich zumindest mit der Erkentniss dass es eine 1 geben muss wenn das Suchfeld leer ist richtig.
Und dank deiner Hilfe klappt es jetzt auch mit der Umsetzung.

Die zweite Variante kann ich sogar genau nachvollziehen um damit auch noch mein 5tes Dropdown mit ein zu beziehen. Da ich aber noch keine Erfahrung mit Matrixformeln habe will ich es vorab mal testen und etwas damit experimentieren.
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste