2012-03-25 72 views
1

我試圖讓使用多個條件列的匹配,如下面的例子多個條件:匹配列使用POI

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 

其中D2和E2是指標分析。如果分別D2和E2匹配列A和B,我應該從對應列C(在該實例中:8.00)得到的結果

在這個例子中我試圖在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) 

所有這些都給了我在Excel和OOCalc中的正確結果。但是當使用POI時,我會從第一個錯誤碼中得到錯誤碼15。異常意外的eval類型從第二個和異常第三個和最後一個公式的SUMPRODUCT無效的參數類型。

有誰知道如何通過使用可以被Apache POI解析的公式匹配具有多個條件的列?

注意:使用Apache POI,我成功地將列與單個條件匹配。所以,我猜這個錯誤不在我的代碼中,但也許POI不支持上述那些公式的格式。

在此先感謝

回答

1

http://poi.apache.org/spreadsheet/formula.html說數組公式尚不支持(你的第一,第三和第四的公式只是別名,數組公式,我是affraid)

,如果你可以插入一個新列與公式如=A2&B2和匹配這個新的列,這將解決您的問題..

+0

嗯,這是真的,但我沒有被允許從客戶更改.xls文件。另外,由於規格繁重,我無法在我的工作簿中創建公式。最後,我不得不說服他們添加這個專欄。 =( – rafaelrezend 2012-04-19 21:35:07