Clever-Excel-Forum

Normale Version: Kategorien mehrerer Gerichte ausgeben
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,

Die Suche konnte mir leider nicht helfen. Vielleicht habe ich auch falsch gesucht. Ich muss auch gestehen, dass ich seit 9:00 Uhr am Exceln bin und mein Hirn langsam aber sicher Matsche ist!

Es geht um die angehängte Tabelle. Ich möchte den Gerichten in L2:L23 die in der Tabelle A2:H2 genannten Kategorien in K2-K23 zuweisen bzw. ausgeben.   z.B. Anti Pasti steht unter "Kalte Vorspeisen", also soll in K2 "Alte Vorspeisen" stehen usw.

In Zukunft können mehr Gerichte in die Matrix A1:H11 bzw Spalte L aufgenommen werden, daher ist mein Ziel, alles mit einer Verschachtelten Formel abzudecken, um diese nur noch runterziehen zu müssen. 

Ich habe verschiedenste Sachen ausprobiert, SVERWEIS, INDEX, SUCHEN, FINDEN, VERGLEICH, aber es klappt nicht so wie es soll. 

Jemand einen Rat?

Danke und Gruß
Kazuyaa Huh
Hallo,

wieder ein Excelanwender der in "Papier" denkt und handelt. Solch eine "Liste" kann eine Ergebnisdarstellung sein, aber keine Grundlage für die Datenhaltung bzw. Datenverarbeitung.
(11.12.2021, 15:43)Kazuyaa schrieb: [ -> ]Ich habe verschiedenste Sachen ausprobiert, SVERWEIS, INDEX, SUCHEN, FINDEN, VERGLEICH, aber es klappt nicht so wie es soll. 
Versuche es mal mit diesen Funktionen:
INDEX
MMULT
SEQUENZ
SPALTE
SUMME
ZEILEN
Zitat:also soll in K2 "Alte Vorspeisen" stehen usw.


Hallo,

endlich gibt es mal jemand zu....



Excel – Listen dynamisch per Funktion filtern – AGGREGAT und FINDEN | at Excel-Blog - Andreas Thehos (thehosblog.com)
Hallo,

einen Lösungsvorschlag mit VBA kann ich anbieten:

Code:
Option Explicit

Sub uebertrag()
    Dim intZeile As Integer
    Dim c As Range
    Dim firstAddress As String
    For intZeile = 2 To Range("L2").End(xlDown).Row
        With Tabelle1.Range("A3:H10")
            Set c = .Find(Tabelle1.Cells(intZeile, 12).Text, LookIn:=xlValues)
            If Not c Is Nothing Then
                firstAddress = c.Address
                Tabelle1.Cells(intZeile, 11) = Tabelle1.Cells(2, c.Column).Text
            End If
        End With
    Next intZeile
End Sub
Danke Klaus-Dieter,

das hilft mir zwar nicht direkt weiter, motiviert mich aber dennoch endlich in VBA einzusteigen  Exclamation 

Dann muss ich mir was anderes einfallen lassen. 

@ rate mit, das sollte natürlich Kalte heißen xD
@ shift-del, danke ich versuchs mal.
Hallo

Oder meine Alternative als PQ Lösung mit ein paar Änderungen.
Für Alte Vorspeisen:

Code:
=WENN(AGGREGAT(15;6;SPALTE($A$2:$H$20)/(FINDEN(L2;$A$2:$H$20)>0);1)=1;"Alte Vorspeisen";INDEX($A$2:$H$2;AGGREGAT(15;6;SPALTE($A$2:$H$20)/(FINDEN(L2;$A$2:$H$20)>0);1)))


Für Kalte Vorspeisen:

Code:
=INDEX($A$2:$H$2;AGGREGAT(15;6;SPALTE($A$2:$H$20)/(FINDEN(L2;$A$2:$H$20)>0);1))
@Ivan 16, danke, auch ein interessanter Ansatz. Wieder etwas, mit dem ich mich noch auseinandersetzen muss.

@rate mit, Big Grin  Ich schulde dir ein Glas Gehirnschmalz. Das ist genau das, wonach ich gesucht habe.  Vielen Dank. Die Formeln werde ich mir nun genau anschauen, damit ich es beim nächsten Mal selbst hinbekomme.  18
Hallo Kazuyaa,


Zitat:das hilft mir zwar nicht direkt weiter



und warum nicht? Deine Anfrage hatte ich so verstanden.

Nachtrag: im Prinzip macht die Formel von rate mit genau das gleiche, wie mein Makro. 

Nachtrag 2: mit diesem Makro im Modul des Tabellenblattes trägt sich die Kategorie automatisch ein, wenn in Spalte L ein Gericht eingegeben wird:

Code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim intZeile As Integer
    Dim c As Range
    Dim firstAddress As String
        With Tabelle1.Range("A3:H10")
            Set c = .Find(Target.Text, LookIn:=xlValues)
            If Not c Is Nothing Then
                firstAddress = c.Address
                Cells(Target.Row, 11) = Cells(2, c.Column).Text
            End If
        End With
End Sub
Seiten: 1 2