The GitHub Actions job "Java CI with Ant" on poi.git/trunk has succeeded.
Run started by GitHub user pjfanning (triggered by pjfanning).

Head commit for run:
8c39881fdc4452d8628ac7e7537542830e2faa08 / PJ Fanning 
<[email protected]>
XLOOKUP: accept an array expression such as (B2:B11=G2)*(C2:C11=G3) as 
lookup_array (#1299)

https://bz.apache.org/bugzilla/show_bug.cgi?id=70145

The "multiple criteria" idiom =XLOOKUP(1,(B2:B11=G2)*(C2:C11=G3),D2:D11)
returned #VALUE!. Whether an operator with an area operand is evaluated
element-wise (array mode) is decided in WorkbookEvaluator by looking for
the function that will consume its result and checking it for the ArrayMode
marker. That lookahead only recognised built-in functions: XLOOKUP is a
"future function" invoked through the external-function FuncVarPtg, so the
comparisons were reduced to the single value for the formula's row and
XLOOKUP received a scalar 0/1 instead of a column.

WorkbookEvaluator now walks the remaining RPN tokens tracking the position
of the operator's result on the evaluation stack, so it finds the operation
that actually consumes the result (nested calls no longer confuse it) and,
for an external function, resolves the user-defined function from the
FunctionNameEval already on the stack. XLookupFunction is marked ArrayMode.

Co-authored-by: Claude Opus 5 <[email protected]>

Report URL: https://github.com/apache/poi/actions/runs/35367785318

With regards,
GitHub Actions via GitBox


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to