2012-03-25 4 views
1

Я пытаюсь сделать MATCH столбцов с использованием нескольких критериев, как в примере ниже:Совпадение столбцы с несколькими критериями, используя 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 и Е2 матч с колоннами А и В, соответственно, я должен получить результат из соответствующего столбца 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 со второго и Исключение Недопустимый тип arg для SUMPRODUCT из третьей и последней формул.

Кто-нибудь знает, как сопоставить столбцы с несколькими критериями, используя формулу, которая может быть проанализирована Apache POI?

Примечание: с помощью Apache POI я успешно сопоставляю столбцы с одним единственным критерием. Итак, я думаю, что ошибка не в моем коде, но, возможно, формат этих формул выше не поддерживается POI.

Заранее спасибо

ответ

1

http://poi.apache.org/spreadsheet/formula.html говорит формула массива, пока не поддерживается (ваш первый, 3-й и 4-й формула просто псевдонимы для формул массива, я напуган)

если вы можете вставить новый столбец с формулами вроде =A2&B2 и соответствовать этому новому столбцу, что решит вашу проблему.

+0

Ну, это правда, но мне не разрешили изменять файл .xls от клиента. Кроме того, я не мог создать формулу практически в моей книге из-за тяжелых спецификаций. В конце я должен был убедить их добавить эту колонку. знак равно – rafaelrezend

Смежные вопросы