2017-01-02 3 views
-1

Ich habe zwei Tabellen mit Daten. Die erste enthält Daten mit einer höheren Detailebene, da sie eine weitere Dimension enthält. Ich benötige eine Methode, um den niedrigsten Wert in Tabelle1 Spalte D zu finden, wobei Kriterium1 und Kriterium2 mit dem entsprechenden Wert in Spalte A und Spalte B übereinstimmen. Beispiel: Für Kriterium1 = A und Kriterium2 = F, sowohl Zeile 2 als auch Zeile 3 in Tabelle 1 Mache. Der niedrigste Wert (12) in Spalte D befindet sich in Zeile 3. Der passende Wert (in diesem Fall 12) sollte in eine neue Spalte in Tabelle 2 eingefügt werden.VBA (Excel): Array nach mehreren Kriterien filtern und den niedrigsten Wert finden

Tabelle1

Column A Column B Column C Column D (Value) 
A    F   X   13 
A    F   Y   12 
B    F   Y   15 
B    G   Z   17 
B    G   X   12,5 

Table2

Criteria1 Criteria2 
A    F 
B    F 
B    G 

Table2 mit eingesetztem niedrigsten Wert

Criteria1 Criteria2 Lowest Value (new column) 
A    F   12 
B    F   15 
B    G   12,5 

Meine Annahme ist, dass dies entweder durch eine Kombination von INDEX und MATCH oder durch erweiterte Filter geschehen könnte. Der Tisch ist 7000 Reihen, also nicht riesig. Wie auch immer, ich brauche Unterstützung, um das zu lösen, da es so aussieht, als ob eine zweistufige Methode benötigt wird.

Antwort

-1

Pseudocode für eine Funktion, die nach dem Mindestwert in Spalte C sucht, der den Kriterien der Spalte A und B entspricht.

Function GetMinValue(criteriumA as String, criteriumB As String) As Long 

    With Table1Range 'haeders row included 
     .Autofilter Field:=1, Criteria1:= criteriumA 
     .Autofilter Field:=2, Criteria1:= criteriumB 
     If (condition to check for any filtered Cells) Then GetMinValue=WorksheetFunction.Min(.Columns(4).SpecialCells(onlyVisibleCells)) 
     removeAutofilter 
    End With 

End Sub 

Sie viel Hilfe bekommen beide in SO und in der Bahn für beide Autofilter() und SpecialCells() Methoden der Range Objekt

+0

Würde der tapfere downvoter jemals kümmern, den Grund seiner Stimme zu erklären, und beide haben mich möglicherweise verbessern meine Antwort und andere Menschen von seinem Denken lernen lassen? – user3598756

Verwandte Themen