Hallo!
Ich habe folgendes Problem. Ich möchte in einer Matrix nach einem Begriff suchen, der in einer separaten Zelle eingegeben werden kann und dann die Überschrift aus der Spalte, in der dieser Begriff auftaucht, in eine andere Zelle schreiben lassen.
VERWEIS,SVERWEIS und WVERWEIS sowie INDEX leisten das nicht.
Kann mir jemand helfen?
Hallo!
Wenn ich das richtig verstanden habe, müsste es aber mit VERWEIS klappen:
=VERWEIS(H2;A2:F5;A1:F1)
H2 --> Suchbegriff
A2:F5 --> Suchbereich, wo alle Begriffe stehen
A1:F1: --> Spaltenüberschriften
Gruß
Ralf
==============================
Sorry, bin beruflich gerade in USA und kann dir deshalb zeitlich nicht helfgen. Hoffe, es findet sich jmd.
Ma
Hallo svazor,
es ginge evtl. über einige Hilfszellen.
Angenommen, Du hast in Zeile 5 alle Überschriften, Zeile 4 ist leer und in Zeile 3 machst Du eine Abfrage je spalte.
(Zeilen 3 und 4 sind später ausgeblendet)
Nun hast Du in B1 das Feld für den Suchbegriff
Also, in B3 steht z.B. die Abfrage für Spalte B (B6:B60000)
Die Formel lautet dann: =WENN(Vergleich($B$1;A6:A60000;0)>0;B5;A3)
Somit ist in der Zelle B3 entweder die Spaltenüberschrift von B bei einem positiven Ergebnis, oder aber das Ergebnis von A.
Analog sind die Formeln für Spalten C, D, E, …
Angenommen, die Spalten gehen bis X und in D1 soll Excel Dir die korrekte Überschrift aus Zeile 5 anzeigen.
Dann ist die Formel für D1:
= X3
Wenn kein richtiges Ergebnis, zeigt D1 nichts an.
Wenn ein richtiges Ergebnis, zeigt D1 die Spaltenüberschrift an.
Bei mehreren Ergebnisssen, wird die letzte Spalte angezeigt.
Gruss,
e-a-s-y
Sorry, die erste Formel in meinem Post war falsch:
statt =WENN(Vergleich($B$1;A6:A60000;0)>0;B5;A3)
sollte es heissen
=WENN(Istfehler(Vergleich($B$1;B6:B60000;0);A3;B5)
also, noch einmal korrekt:
Hallo svazor,
es ginge evtl. über einige Hilfszellen.
Angenommen, Du hast in Zeile 5 alle Überschriften, Zeile 4 ist leer und in Zeile 3 machst Du eine Abfrage je spalte.
(Zeilen 3 und 4 sind später ausgeblendet)
Nun hast Du in B1 das Feld für den Suchbegriff
Also, in B3 steht z.B. die Abfrage für Spalte B (B6:B60000)
Die Formel lautet dann: =WENN(Istfehler(Vergleich($B$1;B6:B60000;0);A3;B5)
Somit ist in der Zelle B3 entweder die Spaltenüberschrift von B bei einem positiven Ergebnis, oder aber das Ergebnis von A.
Analog sind die Formeln für Spalten C, D, E, …
Angenommen, die Spalten gehen bis X und in D1 soll Excel Dir die korrekte Überschrift aus Zeile 5 anzeigen.
Dann ist die Formel für D1:
= X3
Wenn kein richtiges Ergebnis, zeigt D1 nichts an.
Wenn ein richtiges Ergebnis, zeigt D1 die Spaltenüberschrift an.
Bei mehreren Ergebnisssen, wird die letzte Spalte angezeigt.
Gruss,
e-a-s-y
ps: Einzig in Zelle A3 ist die Formel etwas anders als in allen anderen Spalten in Zeile 3, nämlich nur:
=WENN(Istfehler(Vergleich($B$1;A6:A60000;0);"";A5)
kann leider nicht helfen, weiterhin viel erfolg, gruß
>john
Hallo!
wenn ich es richtig verstanden hab müste das die lösung sein.
Siehe hier
Hallo Ralf,
leider nicht, soweit ich das rcihtig gelesen habe, muss bei VERWEIS der Suchvektor und der Ergebnisvektor gleich groß sein, dein Beispiel liefert zwar Werte, aber leider nicht die richtigen.
Gruß, Svazor
Hallo!
Meinst du mit gleiche Größe die gleiche Breite an Spaltenanzahl?!?
Aber das muss ja so sein, ansonsten findet er eh nicht die passende Spaltenüberschrift zu dem darunter gefundenen Suchbegriff!
Hast du es denn probiert?
Ansonsten bin ich eher das Makro-Typ und könnte dir ein Makro anbieten!
Gruß
Ralf
====================
Vielen Dank!
Das funktioniert bestens!
Vermutlich geht es auch einfacher, aber ich hab das mal so gelöst:
Der Code geht davon aus, das Zelle A1 den Suchstring enthält, und die Ausgabezelle C1 ist.
Außerdem muss der Suchbereich(Range) und der Tabellenname angepasst werden.
Dem Tabellenblatt wird folgender Code zugewiesen:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = „$A$1“ Then
Cells(1,3).Value=SearchEntry(Cells(1,1).Value, „Tabelle2“)
End If
End Sub
In einem Codemodul diesen Code eingeben:
Function SearchEntry(strSearch, strBlatt)
Dim EntryFound
If strSearch = „“ Then
Exit Function
End If
Set EntryFound = Nothing
With Sheets(strBlatt).Range(„A1:I500“)
Set EntryFound = .Find(strSearch, LookIn:=xlValues, LookAt:=xlWhole)
If Not EntryFound Is Nothing Then
SearchEntry = Sheets(strBlatt).Cells(1, EntryFound.Column).Value
Else
SearchEntry = „“
End If
End With
Set EntryFound = Nothing
End Function
Hallo,
bei dieser Frage kann ich leider nicht weiterhelfen.
Viele Grüße
Bawamba
Hallo, das klingt schwierig.
Wenn du in einer Matrix eine Zeichenfolge suchen möchtest, und dann die dazu gehörige Überschrift ausgeben möchtest, ist nie auszuschliessen, dass die Zeichenfolge in mehreren Spalten vorkommen , und damit auch mehreren Überschriften zugeordnet werden kann. Stell dir vor, jemand heist „Müller“, wohnt in einer Strasse in der der Name „Müller“ vorkommt und ist von Beruf „Müller“.
Deshalb:
Vor dem Erstellen einer Matrix sollte man sich genau überlegen, welche Daten man braucht und wie diese anschließend in welcher Form ausgegeben werden sollen. Erst dann macht eine Matrix richtig Sinn.
Excel bietet zu Auslesen bzw. zur Sortierung mehrere Möglichkeiten an, um die Daten zu verwenden.
zB. den Autofilter oder die Pivot-Tabelle, oder die von dir beschriebenen VERWEISE.
in der Hoffnug etwas geholfen zu haben,
Beste Grüsse
Tut mir leid, ich seh keine Möglichkeit, das ohne VBA zu lösen.
vG
Hi
erst mal sorry das ich nicht früher reagiert habe!
Ich denke bei deinem Problem wirst du um eine Programmierung nicht rum kommen.
Solltest du interesse habe das ich dir was programmiere gebe mir bescheid.
Vor allem benötige ich dann einige Testdaten bzw. zumindest den Aufbau der Tabelle (anzahl Spalten Zeilen…)
Gruß
Oh.Weh
Sorry, war im Urlaub, daher jetzt erst eine Reaktion:
Auf die Schnelle kann ich Dir da leider nicht helfen, werde aber versuchen eine Lösung zu finden.
Gruß
Susi
Hallo Susi,
vielen Dank für deine Rückmeldung, das Problem hat sich schon erledigt. Die Lösung von e a s y hat gut funktioniert.
Gruß, Svazor.