Сопоставьте столбцы с несколькими критериями, используя POI - PullRequest
1 голос
/ 25 марта 2012

Я пытаюсь сопоставить столбцы, используя несколько критериев, как в примере ниже:

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 Ответ

1 голос
/ 02 апреля 2012

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

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

...