2012-03-25 7 views
1

Ich versuche, eine MATCH von Spalten unter Verwendung mehrerer Kriterien, wie im Beispiel zu machen:Spiel Spalt mit mehreren Kriterien POI mit

A1: Part B1: Code C1: Price D1: Find Part E1: Find Code 
A2: x  B2: 11  C2: 5.00 D2: y   E2: 12 
A3: x  B3: 12  C3: 6.00 
A4: y  B4: 11  C4: 7.00 
A5: y  B5: 12  C5: 8.00 

Wo D2 und E2 sind Kriterien. Wenn D2 und E2 Spiel mit Spalten A bzw. B, soll ich das Ergebnis bekommt von Spalte C entspricht (in diesem Beispiel: 8.00)

Für dieses Beispiel habe ich versucht, die folgenden Formeln auf Excel:

=LOOKUP(D2&E2;A2:A5&B2:B5;C2:C5) 
{=INDEX($C$2:$C$5;MATCH(D2&E2;$A$2:$A$5&$B$2:$B$5;0))} 
=SUMPRODUCT(--(A2:A5=D2);--(B2:B5=E2);INDEX(C2:C5;0;0)) 
=SUMPRODUCT(--(A2:A5=D2);--(B2:B5=E2);C2:C5) 

Alle von ihnen geben mir das richtige Ergebnis in Excel und OOCalc. Aber wenn POI verwendet wird, erhalte ich den Fehlercode 15 vom ersten. Ausnahme Unerwarteter Eval-Typ von der zweiten und Ausnahme Ungültiger Arg-Typ für SUMMENPRODUKT von der dritten und letzten Formeln.

Kann jemand Spalten mit mehreren Kriterien zusammenbringen, indem er eine Formel verwendet, die von Apache POI analysiert werden kann?

Hinweis: Mit Apache POI bin ich erfolgreich übereinstimmende Spalten mit einem einzigen Kriterium. Also, ich schätze, der Fehler ist nicht in meinem Code, aber vielleicht wird das Format dieser obigen Formeln nicht von POI unterstützt.

Vielen Dank im Voraus

Antwort

1

http://poi.apache.org/spreadsheet/formula.html sagt Formeln Array werden noch nicht unterstützt (Ihre 1., 3. und 4. Formeln sind Aliase nur für Array-Formeln, ich bin affraid)

, wenn Sie eine neue Spalte einfügen mit Formeln wie =A2&B2 und passen Sie diese neue Spalte, die Ihr Problem lösen würde.

+0

Nun, das stimmt, aber ich war nicht erlaubt, die .xls-Datei vom Kunden zu ändern. Außerdem konnte ich die Formel in meinem Arbeitsbuch aufgrund schwerer Spezifikationen nicht virtuell erstellen. Am Ende musste ich sie überzeugen, diese Spalte hinzuzufügen. = ( – rafaelrezend