Clever-Excel-Forum

Normale Version: Suchen mit SVERWEIS in variabler Matrix
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen

Ich muss in einer variablen Matrix einen bestimmten Begriff suchen und scheitere 20

Spalte A: Rückmeldung "OK" oder "Check"
Spalte B: Markierung des ersten Artikel "1. Artikel"
Spalte C: Artikelnummer (kann einmalig oder x-fach vorkommen, Spalte ist sortiert)

Meine Idee war jetzt folgende:
Über Vergleich finde ich die Start- und End-Zeile der gesuchten Artikelnummer.
So dachte ich, easy verketten und in den SVERWEIS:

=SVERWEIS("Check";VERKETTEN("A";VERGLEICH(G2;C:C;);":";"A";VERGLEICH(G2;C:C;1));1;FALSCH)

Ergebnis: #WERT!
Wenn ich das Ergebnis der Vergleiche von Hand als Matrix in die Formel einfüge (A9:A15) funktioniert es.

Was mache ich falsch bzw. wie kann ich die Aufgabe lösen?
Versuche es mal mit der Erweiterung Indirekt, also so: 
SVERWEIS("Check";Indirekt(VERKETTEN("A";VERGLEICH(G2;C:C;);":";"A";VERGLEICH(G2;C:C;1)));1;FALSCH)LS
Vielen Dank TingelTangel89 das funktioniert hervorragend  19
Hi,

Brrr.... INDIREKT!

=SVERWEIS("Check";VERKETTEN("A";VERGLEICH(G2;C:C;);":";"A";VERGLEICH(G2;C:C;1));1;FALSCH)
Zitat:Über Vergleich finde ich die Start- und End-Zeile der gesuchten Artikelnummer.

Niemals! Start ja , Ende nur wenn gleich Start.

siehe hier

SVERWEIS über eine Spalte macht auch wenig Sinn.

Ich würde eher das empfehlen (ohne Datei aber nur geraten):

Code:
=Index(A:A;vergleich(G2;C:C;0))


sollte die Artikelnummer mehrfach vorkommen, dann kannst Du mit dieser Formel alle Treffer auflisten:

Code:
=Index(A:A;Aggregat(15;6;Zeile(A:A)/(C:C=G$2)/(A:A="Check");Zeile(a1)))


Allerdings schreiben alle diese Formeln nur Check in die Zelle. Was hast Du damit gewonnen?
Hi,

leider ist auch mir nicht wirklich klar, was du suchst. Alles was "Check" und die Artikelnummer hat? Das geht mit 365 ganz einfach mit der FILTER-Funktion:

=FILTER(A:C;(A:A="Check")*(C:C=G2))

Damit bekommst du alle Zeilen aus den Spalten A:C, in denen in Sp. A "Check" und in Sp. C der Wert aus G2 steht.
Vielen Dank an BoskoBiati und HKindler für die weiteren Lösungsvorschlage

Damit ihr euch das ganze besser vorstellen könnt, hier eine erweiterte Erklärung:
Wir erfassen von Hand Produktdaten und füllen diese in unsere Datenbank ab.
Unter anderem sind Felder enthalten, welche mehrere Daten getrennt durch ein Pipe erfasst werden können.
Wir hatten in der Vergangenheit Probleme, dass sich Fehler eingeschlichen haben und somit die Daten in der DB entweder nicht importiert wurden oder mit falschen Daten importiert wurden.

Meine Aufgabe ist es nun Kontrollen zu machen.
Ich habe z.B. eine Liste mit 900 Artikelnummern, welche bis zu 24 Einzel Informationen und 4 Informationsfelder mit mehreren durch Pipe getrennten Informationen.

Im Moment versuche ich die Kontrolle nach dem einlesen zu erstellen, heisst ich kontrolliere ob alle Daten in der DB geschrieben sind.
Die einfachen Felder sind easy und umgesetzt.
Die Felder mit mehreren Informationen getrennt durch Pipe machen mir hier zu schaffen.

Zur Konkreten Problemstellung:
Ich habe ein Arbeitsblatt, genannt Übersicht. Hier werden alle Artikel ab Spalte B einmalig aufgelistet und zu jedem der 28 Informationsfelder wird OK oder Check ausgegeben.
In Spalte A wird Check ausgegeben, wenn eines der 28 Informationsfelder Check zeigt.
Auf weiteren Arbeitsblätter werden dann z.B. die Zusatzartikel (mehrere, durch Pipe getrennt) aufgelistet.
Es kann also sein, dass bei Zusatzartikel eine Artikelnummer 1x oder eben auch beliebig oft vorkommt.
Fürs einfachere verstehen habe ich eine Beispieldatei hochgeladen.

@BoskoBiati
Bei deinem Lösungsvorschlag bekomme ich als Ergebnis immer #ZAHL!

@HKindler
Die Filter Funktion funktioniert super, solange Check nur 1x vorkommt. Sobald Check bei einer Artikelnummer x-fach vorkommt gibt es #ÜBERLAUF! zurück.
Hi,


Zitat:Bei deinem Lösungsvorschlag bekomme ich als Ergebnis immer #ZAHL!


Logisch, es gibt die Kombination nicht und außerdem ist da eine falsche Bezugszelle drin.

[attachment=47020]
Hi,

ist ja auch kein Wunder. Filter braucht prinzipbedingt so viele freie Zeilen (und Spalten, aber hier gibt es eh nur eine), wie es Ergebnisse gibt. Ansonsten gibt es den #ÜBERLAUF!-Fehler. Der #KALK!-Fehler tritt auf, wenn die Filterbedingung nirgends zutrifft und kann durch die Angabe eines eigenen Wertes unterdrückt werden. Hier bietet sich "OK" dafür an.

Da dich ja nur interessiert, ob Check mit der Art.Nr. vorkommt oder nicht, reicht dir die Ausgabe des ersten Wertes der Filter-Ausgabe:

=INDEX(FILTER(A:A;(A:A="Check")*(C:C=E6);"OK");1)

Oder einfach nur:

=WENN(ZÄHLENWENNS(A:A;"Check";C:C;E6);"Check";"OK")
Vielen Dank euch beiden, ich habe wieder einiges gelernt und habe sogar verschiedene Lösungsmöglichkeiten :top: