Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

2 Kriterien in Suchmatrix
#11
Hi,

(10.03.2017, 14:27)Monsterbabe schrieb: Leider habe ich waas ganz wichtiges vergessen zu erwähnen.

Wenn es einen Alfa 33 gäbe, welcher von 1995-2002 gebaut wurden ist mit der #ID 9999 soll Excel mir natürlich dies anzeigen, statt 1019.

Dann mache mal eine vollständige Liste in Tabelle 1 (die mit den IDs), so wie es jetzt ist, fehlt da ja einiges.
Antworten Top
#12
Hallo,

hab hier auch mal eine simple Vba Lösung.
Potenzial nach oben ist da.


Code:
Sub tu_mal()
Dim i As Long, j As Long, jj As Long
Dim lngZ As Long

Dim wks As Worksheet
Set wks = Sheets("Tabelle2")
lngZ = Cells(Rows.Count, 1).End(xlUp).Row
jj = 2

Application.ScreenUpdating = False
With Sheets("Tabelle1")
 lngZ = .Cells(.Rows.Count, 1).End(xlUp).Row
 For i = 2 To lngZ
   For j = Year(.Cells(i, 4)) To Year(.Cells(i, 5))
     wks.Cells(jj, 6) = .Cells(i, 1) & "#" & .Cells(i, 3) & "#" & j
     wks.Cells(jj, 7) = .Cells(i, 2)
     jj = jj + 1
   Next j
 Next i
End With

With wks
 lngZ = .Cells(.Rows.Count, 1).End(xlUp).Row
 .Range(.Cells(2, 5), .Cells(lngZ, 5)).FormulaLocal = "=Index($G$2:$G$" & jj - 1 & ";Vergleich(C2&""#""&B2" & "&""#""&D2; $F$2:$F$" & jj - 1 & "; 0))"
 .Range(.Cells(2, 5), .Cells(lngZ, 5)).Value = .Range(.Cells(2, 5), .Cells(lngZ, 5)).Value
 Range("F2:G" & jj - 1).ClearContents
End With
Application.ScreenUpdating = True

End Sub


Ich nutze in Tabelle2 die Spalten F:G als Hilfsspalten.
Das Ergebnis ist auch in Tabelle2
Gruß Atilla
Antworten Top
#13
Hallo

wie ich sehe gibt es auch von Attila eine gute Lösung. 

Mich interessiert wo genau der Fehler auftritt? Wenn man im Fehlerdialog auf "Debuggen" klickt müsste die fehlerhafte  Makrozeile gelb gefaerbt angezeigt werden. Mich interessiert welche Zeile den Fehler verursacht? Danach bitte im "Run Menü" Reset anklicken, oder Datei schliessen. 

mfg  Gast 123
Antworten Top
#14
@Gast 123: Die gelbe Zeile ist hier zu sehen:

bisJahr = CInt (Right (AC.Cells(1, 5) , 4) )

Da scheint etwas nicht zu passen.

Das Makro von Attila funktioniert ist der Testdatei optimal. Ich wende den jetzt bei der großen Originalliste an und lass mich überraschen.

@Attila: Danke schon mal! Sieht gut aus Wink.
Antworten Top
#15
Hi,

(13.03.2017, 09:53)Monsterbabe schrieb: Ich wende den jetzt bei der großen Originalliste an und lass mich überraschen.

am besten immer an einer Kopie der Originaldatei!
Antworten Top
#16
Vielen Dank an alle.

Das Makro funktioniert tadellos!

Ciao
Antworten Top
#17
Oder du arbeitest in VBA:


Code:
Sub M_snb()
    sn = Sheet1.Cells(1).CurrentRegion
    sp = Sheet2.Cells(1).CurrentRegion
    
    For j = 2 To UBound(sp)
       For jj = 2 To UBound(sn)
          If sp(j, 2) & sp(j, 3) = sn(jj, 3) & sn(jj, 1) And sp(j, 4) >= Year(sn(jj, 4)) And sp(j, 4) <= Year(sn(jj, 5)) Then Exit For
       Next
       If jj <= UBound(sn) Then sp(j, 5) = sn(jj, 2)
    Next
    
   Sheet2.Cells(1).CurrentRegion = sp
End Sub

oder du verwendest Excel Formeln:

In Tabelle2, Zelle F2:


Code:
=IFERROR(INDEX(Tabelle1!$B$2:$B$6;SUMPRODUCT((B2&$C2=Tabelle1!$C$2:$C$6&Tabelle1!$A$2:$A$6)*(D2>=YEAR(Tabelle1!$D$2:$D$6))*(D2<=YEAR(Tabelle1!$E$2:$E$6))*ROW($1:$5));1);"")
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste