Matrix durchsuchen -> Überschrift zurück

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Matrix durchsuchen -> Überschrift zurück
von: Benjamin Mandt
Geschrieben am: 28.07.2015 13:05:05

Hallo zusammen,
in einer Matrix soll ein String gesucht werden, wird er gefunden, soll der Rückgabewert die Spaltenüberschrift oder die Zeilenbeschriftung zurückgegeben werden.
Damit es verständlicher ist, habe ich eine Beispieltabelle angehängt.
https://www.herber.de/bbs/user/99117.xlsx
Schon mal vielen Dank für die Hilfe.
Viele Grüße
Be.

Bild

Betrifft: AW: Matrix durchsuchen -> Überschrift zurück
von: Sepp
Geschrieben am: 28.07.2015 14:25:48
Hallo Benjamin,
Tabelle1

 EFGHI
14     
15 Abnahme Nr.DkComp. 
16 213634Comp. 13 
17 213814Comp. 14 
18 21612   
19 238693Comp. 13 
20 242215Comp. 15 
21 242205Comp. 14 
22 242195Comp. 13 
23 251274Comp. 17 

Formeln der Tabelle
ZelleFormel
G16=WENNFEHLER(INDEX($A$2:$A$11;AGGREGAT(15;6;ZEILE($A$1:$A$10)/($B$2:$X$11=$F16); 1)); "")
H16=WENNFEHLER(INDEX($B$1:$X$1;1;AGGREGAT(15;6;SPALTE($A$1:$W$1)/($B$2:$X$11=$F16); 1)); "")


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
wobei verbundene Zellen dabei zu Problemen führen können!
Gruß Sepp


Bild

Betrifft: AW: Matrix durchsuchen -> Überschrift zurück
von: Benjamin Mandt
Geschrieben am: 28.07.2015 14:40:24
Hallo Sepp,
vielen Dank für Deine Hilfe.
Leider habe ich Excel 2007 und Aggregat gibt es erst ab 2010.
Hast Du eine Idee, wie ich das ohne Aggregat hinbekommen kann?
Danke für Deine Rückmeldung.
Viele Grüße
Benjamin

Bild

Betrifft: AW: Matrix durchsuchen -> Überschrift zurück
von: Sepp
Geschrieben am: 28.07.2015 14:43:51
Hallo Benjamn,
dann als Matrix-Formel.
Tabelle1

 EFGHIJ
13      
14      
15 Abnahme Nr.DkComp.  
16 213634Comp. 13  
17 213814Comp. 14  
18 21612    

Formeln der Tabelle
ZelleFormel
G16{=WENNFEHLER(INDEX($A$2:$A$11;KKLEINSTE(WENN($B$2:$X$11=$F16;ZEILE($A$1:$A$10)); 1)); "")}
H16{=WENNFEHLER(INDEX($B$1:$X$1;1;KKLEINSTE(WENN($B$2:$X$11=$F16;SPALTE($A$1:$W$1)); 1)); "")}
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
Matrix verstehen


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Sepp


Bild

Betrifft: AW: Matrix durchsuchen -> Überschrift zurück
von: Benjamin Mandt
Geschrieben am: 28.07.2015 15:18:00
Hallo zusammen,
danke für Eure Lösungne, die Matrixformel funktioniert.
Das Makro werde ich morgen testen.
Danke und schönen Feierabend.
Viele Grüße
Benjamin

Bild

Betrifft: AW: Matrix durchsuchen -> Überschrift zurück
von: Peter Feustel
Geschrieben am: 28.07.2015 14:42:43
Hallo Benjamin,
ich kann dir ein kleines Makro anbieten, das die Aufgabe erfüllen sollte.
Das kopierst du dir in ein allgemeines Modul und startest es z. B. über Alt + F8
Gruß Peter

Option Explicit
Public Sub Suchen()
Dim WkSh    As Worksheet
Dim rZelle  As Range
Dim lZeile  As Long
   Set WkSh = ThisWorkbook.Worksheets("Tabelle1")
   
   With WkSh.Range("B2:X10")
      For lZeile = 16 To WkSh.Cells(WkSh.Rows.Count, 6).End(xlUp).Row
         Set rZelle = .Find(What:=WkSh.Range("F" & lZeile).Value, LookIn:=xlValues, LookAt:= _
xlWhole)
         If Not rZelle Is Nothing Then
            WkSh.Range("G" & lZeile).Value = WkSh.Range("A" & rZelle.Row)
            WkSh.Range("H" & lZeile).Value = Mid(WkSh.Cells(1, rZelle.Column), 7, 2)
         End If
      Next lZeile
   End With
End Sub


Bild

Betrifft: AW: auch mehrfach Vorkommen berücksichtigen
von: Peter Feustel
Geschrieben am: 28.07.2015 17:52:14
Hallo Benjamin,
dieses Makro listet auch die mehrfach vorkommenden Suchbegriffe an.
Gruß Peter

Public Sub Suchen_I()
Dim WkSh     As Worksheet
Dim rZelle   As Range
Dim sFundst  As String     ' die erste Fundstelle des Suchbegriffs
Dim iSpalte  As Integer: iSpalte = 7
Dim lZeile   As Long
   Set WkSh = ThisWorkbook.Worksheets("Tabelle1")
   
   With WkSh.Range("B2:X10")
      For lZeile = 16 To WkSh.Cells(WkSh.Rows.Count, 6).End(xlUp).Row
         Set rZelle = .Find(What:=WkSh.Range("F" & lZeile).Value, LookIn:=xlValues, LookAt:= _
xlWhole)
         If Not rZelle Is Nothing Then
            sFundst = rZelle.Address   ' die erste Fundstelle merken/speichern
            Do
               WkSh.Cells(lZeile, iSpalte).Value = WkSh.Range("A" & rZelle.Row).Value
               'WkSh.Range(lZeile, iSpalte + 1).Value = Mid(WkSh.Cells(1, rZelle.Column), 7, 2)
               WkSh.Cells(lZeile, iSpalte + 1).Value = WkSh.Cells(1, rZelle.Column).Value
               iSpalte = iSpalte + 2
               Set rZelle = .FindNext(rZelle) ' den evtl. nächsten Begriff suchen
            Loop While Not rZelle Is Nothing And rZelle.Address <> sFundst
          Else
            'MsgBox "Der Begriff  """ & sSuchbegriff & """  wurde nicht gefunden.", _
               48, "   Hinweis für " & Application.UserName
         End If
         iSpalte = 7
      Next lZeile
   End With
End Sub


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Matrix durchsuchen -> Überschrift zurück"