Clever-Excel-Forum

Normale Version: Aus Matrix von 51 Kriterien die richtige Zeile finden
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo liebe Leute,

und zwar wurde ich damit beauftragt ein Tool zu erstellen, bei dem es verschiedene Anlagen gibt, die gewisse Kriterien (insgesamt 51) besitzen.
Nun gibt es eine Matrix, die verschiedenste Variationen (nach unten, Zeilen) dieser 51 Kriterien benennt und den jeweiligen Vergütungsanspruch für diese Anlagen benennt. Bisher musste man immer manuell schauen auf welche Vergütung diese Anlage zutrifft. Dieses Tool soll nun automatisch den passenden Betriber herausfinden.

Ich habe mal meinen Ansatz hochgeladen.

In der ersten Tabelle wird das angezeigt, was immer dort reinkopiert werden würde, in der zweiten die offizielle Matrix und in der dritten könnte dann die Vergütung pro Anlage angezeigt werden.

Könnt Ihr mir da helfen? Ich tappe nämlich komplett im Dunkeln.. Confused
Hola,

da ist keine Datei.

Gruß,
steve1da
Ups, hatte nicht 'Attachment hinzufügen' geklickt, dachte, dass es das automatisch hochlädt..  Blush
Hola,

kannst du bitte mal an einem konkreten Beispiel aufzeigen, was du als Ergebnis erwartest?


Gruß,
steve1da
Im Normalfall würde in dem Reiter "Tabelle2" das reinkopiert was Du da aktuell drin sieht. Pro Chargennummer gibt es hier nun verschiedene erfüllte Kriterien.
Anhand dem Reiter "Matrix" soll nun das/der zutreffende Gesetz/Vergütungsanspruch gefunden werden und schließlich in dem Reiter "Tabelle4" unter "EEG" angezeigt werden.

Zum Beispiel bei Chargennummer 1, Anlagenname a: "EEG 2014, Biomasse"


Verstehst Du was ich meine?

Beste Grüße
meta
Hola,

ich bin mir grad nicht sicher, ob es Textverketten() in deiner Version gibt - aber damit könntest du im Blatt Matrix alle Kriterien in einer Zelle auflisten lassen und leere Zellen auch als Leerzeichen mit in die Auflistung übergeben. Das gleiche dann in Tabelle 2, dann hättest du eine eindeutiges Suchkriterium und könntest dann mit

http://excelformeln.de/formeln.html?welcher=30

die gewünschten Werte in Tabelle 4 ausgeben lassen.
Allerdings habe ich kein Office365 zur Hand so dass das nur Theorie ist :)

Gruß,
steve1da
Die Idee hatte ich auch .. sieht dann so in etwa aus...

Arbeitsblatt mit dem Namen 'Tabelle4'
ABC
1ChargennummerAnlagennameEEG
21aEEG 2014, Biomasse

ZelleFormel
A2=Tabelle2!A2
B2=Tabelle2!B2
C2{=INDEX(Matrix!A:BB;VERGLEICH(INDEX(Tabelle2!A:BB;VERGLEICH(A2&B2;Tabelle2!A:A&Tabelle2!B:B;0);54);Matrix!BB:BB;0);1)&", "&INDEX(Matrix!A:BB;VERGLEICH(INDEX(Tabelle2!A:BB;VERGLEICH(A2&B2;Tabelle2!A:A&Tabelle2!B:B;0);54);Matrix!BB:BB;0);2)}
Achtung, Matrixformel enthalten!
Die geschweiften Klammern{} werden nicht eingegeben.
Verlassen Sie den Zelleneditor mit Strg+Shift + Enter, statt Enter alleine.
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg


Arbeitsblatt mit dem Namen 'Matrix'
AZBABB
1Kriterium 50Kriterium 51
2(x)x x  x  x                   x                        (x) (x)

ZelleFormel
BB2=TEXTVERKETTEN(" ";0;C2:BA2)
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg


Arbeitsblatt mit dem Namen 'Tabelle2'
AZBABB
1Kriterium 50Kriterium 51
2xx x  x x x                   x        (x) (x)                 x

ZelleFormel
BB2=TEXTVERKETTEN(" ";0;C2:BA2)
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg
'Einfach' so in VBA:


Code:
Sub M_snb()
    sn = Sheet1.Cells(1).CurrentRegion
    sp = Sheet2.Cells(1).CurrentRegion
    
    ReDim sq(UBound(sp))
    For j = 2 To UBound(sp)
       sq(j - 2) = Replace(Replace(Join(Application.Index(sp, j), "|"), "|", "_", , 1), "|", "_|", , 1)
    Next
    
    For j = 2 To UBound(sn)
       sn(j, 3) = Replace(Join(Filter(Split(Filter(sq, "_|" & Split(Replace(Join(Application.Index(sn, j), "|"), "|", "_", , 2), "_")(2))(0), "|"), "_")), "_", " ")
    Next
    
    Sheet3.Cells(1, 6).Resize(UBound(sn), 3) = sn
End Sub
Hallo ,

hier könnte der Spezialfilter funktionieren

Unter Daten -> Sortieren und Filtern -> Erweitert -> Spezialfilter -> an anderer Stelle kopieren
Vielen vielen Dank für die Anregungen.

Das sollte vorerst reichen. Ich kriege es jetzt hin! :)
Ich ziehe meinen Hut vor Euch!! :78: 

Viele Grüße
meta
Seiten: 1 2